1. 程式人生 > 其它 >CentOs7下Apache Griffin0.5.0的安裝部署

CentOs7下Apache Griffin0.5.0的安裝部署

一、Apache Griffin介紹

大資料模組是大資料平臺中資料方案的一個功能元件,Griffin(以下簡稱Griffin)是一個開源的大資料資料解決質量模式,它支援批資料流資料方式檢測質量模式,可以從不同維度(不同標準執行完畢後檢查源端和目標端的資料數量是否一致、源表的資料空值數量等)收集資料資產,從而提高資料的準確度、可信度。

在格里芬的架構中,主要分為定義、測量和分析三個部分,如下圖所示:

二、Apache Griffin的安裝依賴

本文所使用到的Griffin的安裝依賴以及版本如下所示:

·Centos7

·JDK-1.8.0

·Mysql-5.7.31

·Hadoop-2.6.5

·Spark-2.3.3

·Scala-2.11.8

·Node-v12.21.0

·Npm-6.14.11

·Apache Hive-2.3.8

·Apache Livy-0.5.0

·Elasticsearch-7.7.1

·Apache Zookeeper-3.5.5

·Apache Kafka-0.8.2

·Apache Maven-3.6.1

·Apache Griffin-0.5.0

其中Apache Zookeeper和Apache Kafka是流模式下才需要安裝的。

三、VMware中三臺虛擬機器的配置資訊

主機名

IP地址

記憶體

硬碟

CPU

Master

192.168.152.131

2G

80G

4

Slave1

192.168.152.132

2G

80G

4

Slave2

192.168.152.133

2G

80G

4

可以先建立好一臺虛擬機器,安裝好JDK之後再克隆出其它兩臺。

具體的克隆過程可以參考本人的另一篇部落格:https://www.cnblogs.com/zrs123/p/14980840.html

三臺虛擬機器建立好之後,要進行以下的操作:

  • 關閉SELINUX以及防火牆;
  • 開啟SSH服務;
  • 三臺虛擬機器可以互相ping通,並能ping通外網(例如下面)。
    ping -c3 Slave1 
    
    ping -c3 www.baidu.com
    

    完成之後基本的實驗平臺就搭建完畢。

四、其它元件的安裝

4.1MySQL資料庫的安裝

MySQL只需要在Master主機上安裝,安裝過程詳見:https://www.cnblogs.com/zrs123/p/14326737.html

建議離線安裝,或者在安裝的時候選擇自己想要的版本。

4.2Hadoop叢集的搭建

參考本人的另一篇部落格:https://www.cnblogs.com/zrs123/p/14335162.html

4.3Spark叢集的搭建

安裝spark之前需要安裝好JDK和Scala。

參考本人的另一篇部落格:https://www.cnblogs.com/zrs123/p/14366759.html

4.4NodeJS安裝

開啟官網https://nodejs.org/en/download/

複製拿到連結,下載nodejs

wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz

解壓

tar -xvf node-v10.15.3-linux-x64.tar.xz

刪除壓縮包

rm node-v10.15.3-linux-x64.tar.xz

配置環境變數

編輯

 vim /etc/profile
# 新增環境變數
export NODE_HOME=/node-v10.15.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules

儲存

:wq

生效環境變數

source /etc/profile

檢查是否安裝成功

node -v

npm -v

有版本號出現則表示成功

4.5Hive的安裝

1、壓縮包下載:http://www.apache.org/dyn/closer.cgi/hive/

2、上傳壓縮包到Master主機的相應目錄下,並解壓;

3、配置環境變數

export HIVE_HOME=/opt/hive/apache-hive-2.3.8-bin

export PATH=$HIVE_HOME/bin:$PATH

生效環境變數

source /etc/profile

4、配置hive元資料庫

配置hive元資料庫要求使用者電腦能夠使用mysql。

1)在mysql中建立hive使用者,並給予hive使用者許可權。

create user 'hive' identified by '12345';

grant all privileges on *.* to 'hive'@'%' with grant option;

grant all privileges on *.* to hive@Master identified by '12345';

flush privileges;

2)建立hive專用的元資料庫

create database hive;

5、修改hive中的配置檔案

5.1修改hive-site.xml檔案

將hive-default.xml.template檔案複製一份並改名為hive-site.xml

在hive-site.xml檔案中有如下配置

執行hadoop命令"hadoop dfs -mkdir -p /user/hive/warehouse"新建/user/hive/warehouse目錄

並給新建的/user/hive/warehouse目錄賦予讀寫許可權"hdfs dfs -chmod 777 /user/hive/warehouse"

檢視修改後的許可權"hdfs dfs -ls /user/hive"

執行hadoop命令"hadoop dfs -mkdir -p /tmp/hive"新建/tmp/hive目錄

給/tmp/hive目錄賦予讀寫許可權"hdfs dfs -chmod 777 /tmp/hive"

檢視建立並授權的目錄"hdfs dfs -ls /tmp"

5.2修改hive-site.xml中的臨時目錄

將檔案中的所有${system:java.io.tmpdir}替換成/usr/local/hive/tmp

首先在命令列中輸入"vi hive-site.xml",然後在命令列中輸入”:%s#${system:java.io.tmpdir}#/usr/local/hive/apache-hive-2.3.3-bin/tmp#g“替換所有的臨時目錄

若沒有臨時目錄,需要先建立,並賦予其讀寫許可權

將檔案中所有的${system:user.name}替換成root

6、把mysql的驅動包上傳至hive的lib目錄下

7、修改hive-site.xml資料庫相關配置

修改javax.jdo.option.connectionURL,將name對應的value修改為mysql的地址

修改javax.jdo.option.ConnectionDriverName,將name對應的value修改為mysql驅動類路徑

修改javax.jdo.option.ConnectionUserName,將對應的value修改為MySQL資料庫登入名

修改javax.jdo.option.ConnectionPassword,將對應的value修改為MySQL資料庫的登入密碼

修改hive.metastore.schema.verification,將對應的value修改為false

8、在conf目錄下,拷貝hive-env.sh.template存為hive-env.sh

修改hive-env.sh檔案


9、啟動和測試

1)hive元資料庫初始化

schematool -dbType mysql –initSchema

2)出現下圖所示情況表明hive安裝成功:

參考自部落格:https://blog.csdn.net/qq_28854219/article/details/81185610

4.6Livy的安裝

1、下載Livy(可以自己下載原始碼進行編譯)
http://livy.incubator.apache.org/download/
原始碼在git 上能夠找到apache 版本和cloudera 兩個版本
https://github.com/cloudera/livy 有比較詳細的說明文件。

2、解壓下載好的壓縮包到相應的目錄下;

3、配置環境變數

vim /etc/profile

export LIVY_HOME=/usr/local/livy/livy-0.5.0-incubating-bin

export PATH=$PATH:$LIVY_HOME/bin

 執行如下命令生效環境變數

source /etc/profile

4、配置livy-env.sh

export JAVA_HOME=/usr/lib/jvm/java

export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5

export SPARK_HOME=/opt/spark/spark-2.3.3-bin-hadoop2.6

export SPARK_CONF_DIR=$SPARK_HOME/conf

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export LIVY_LOG_DIR=/usr/local/livy/livy-0.5.0-incubating-bin/logs

export LIVY_SERVER_JAVA_OPTS="-Xmx2g"

/usr/local/livy/livy-0.5.0-incubating-bin/logs需要自己建立。

5、配置livy.conf

livy.environment = production

livy.server.host = 192.168.152.131

livy.server.port = 8998

livy.spark.master = yarn

livy.spark.deploy-mode = cluster

livy.server.session.timeout = 3600000

livy.impersonation.enabled = true

livy.server.recovery.mode = recovery

livy.server.recovery.state-store = filesystem

livy.server.recovery.state-store.url =/usr/local/livy/livy-0.5.0-incubating-bin/tmp

livy.spark.deployMode = cluster

livy.repl.enable-hive-context = true

6、啟動livy

/usr/local/livy/livy-0.5.0-incubating-bin/livy-server start

4.7Elasticsearch叢集搭建

1、壓縮包下載地址:https://elasticsearch.cn/download/

2、建立普通使用者es,因為root使用者不能啟動elasticsearch叢集,並修改許可權

3、將壓縮包上傳至Master主機相應目錄下,並解壓;

4、配置環境變數

vim /etc/profile

export ES_HOME=/usr/local/elasticsearch/elasticsearch-7.7.1
export PATH=$PATH:$ES_HOME/bin 

 執行如下命令生效環境變數

source /etc/profile

5、配置elasticsearch.yml

預設位置位於$ES_HOME/config/elasticsearch.yml

cluster.name: my-application
node.name: node-1
path.data: /usr/local/elasticsearch/elasticsearch-7.7.1/data #需要自己建立
path.logs: /usr/local/elasticsearch/elasticsearch-7.7.1/logs #需要自己建立
network.host: 192.168.152.131
http.port: 9200
discovery.seed_hosts:["192.168.152.131", "192.168.152.132","192.168.152.133"]
cluster.initial_master_nodes: ["node-1"]
http.cors.enabled: true
http.cors.allow-origin: "*"

6、/etc/security/limits.conf檔案配置

新增如下內容:
* soft nofile 65536 
* hard nofile 65536

7、sysctl.conf檔案配置

在命令列中執行如下命令:

echo “vm.max_map_count=262144” >> /etc/sysctl.conf

8、將安裝目錄以及環境變數的配置同步至Slave1和Slave2

scp -r ./elasticsearch/ root@Slave1:$PWD

scp -r ./elasticsearch/ root@Slave2:$PWD

同步完成後,分別更改Slave1和Slave2的elasticsearch.yml檔案,將node.name和network.host修改成本節點的。

9、啟動叢集

切換至es使用者,分別在三臺機器的elasticsearch安裝目錄的bin目錄下執行如下命令

bin/elasticsearch -d

啟動成功後,可在瀏覽器上輸入相應的IP和埠號得到上圖結果。

4.8Griffin的配置部署

1、Apache Griffin下載地址:https://griffin.apache.org/

上傳壓縮包到Master主機的相應目錄下,並配置環境變數

vim /etc/profile

export GRIFFIN_HOME=/opt/griffin/griffin-0.5.0

export PATH=$PATH:$GRIFFIN_HOME/bin

  執行如下命令生效環境變數

source /etc/profile

2、在mysql中建立griffin使用者,更改相應的使用者名稱和密碼;

如下的命令適用於MySQL5.7,如果安裝的是最新的MySQL8.0,則不適用

create user 'griffin' identified by '12345';
grant all privileges on *.* to 'griffin'@'%' with grant option;
grant all privileges on *.* to griffin@Master identified by '12345';
flush privileges;

3、在mysql中建立名為quartz的資料庫。由於Griffin 使用了 Quartz 排程器排程任務,需要在mysql中建立 quartz資料庫。建立結束後,需要執行指令:mysql -u griffin -p <password> quartz < Init_quartz_mysql_innodb.sql來初始化資訊;

4、在Hadoop伺服器上建立/home/spark_conf目錄,並將Hive的配置檔案hive-site.xml上傳到該目錄下:

hadoop fs -mkdir /home/spark_conf

hadoop fs -put $HIVE_HOME/conf/hive-site.xml /home/spark_conf

5、更新livy/conf中的livy.conf檔案,在livy.conf檔案的末尾追加下列內容,隨後啟動livy:

livy.spark.deployMode = cluster

livy.repl.enable-hive-context = true

6、建立ES索引

curl -k -H "Content-Type: application/json" -X PUT http://cdh2:9200/griffin?include_type_name=true \

 -d '{

    "aliases": {},

    "mappings": {

        "accuracy": {

            "properties": {

                "name": {

                    "fields": {

                        "keyword": {

                            "ignore_above": 256,

                            "type": "keyword"

                        }

                    },

                    "type": "text"

                },

                "tmst": {

                    "type": "date"

                }

            }

        }

},

"settings": {

"index": {

"number_of_replicas": "2",

"number_of_shards": "5"

}

 }

}'

7、到/opt/griffin/griffin-0.5.0/service/src/main/resources/目錄下修改配置檔案

1)application.properties

只展示需要修改的內容:

spring.datasource.url=jdbc:mysql://Master:3306/quartz?autoReconnect=true&useSSL=false

spring.datasource.username=griffin

spring.datasource.password=12345

spring.datasource.driver-class-name=com.mysql.jdbc.Driver

# Hive metastore

hive.metastore.uris=thrift://Master:9083

hive.metastore.dbname=hive

# Kafka schema registry

kafka.schema.registry.url=http://Master:8081

# hdfs default name

fs.defaultFS=hdfs://Master:9000

# elasticsearch

elasticsearch.host=Master

elasticsearch.port=9200

elasticsearch.scheme=http

# elasticsearch.user = user

# elasticsearch.password = password

# livy

livy.uri=http://Master:8998/batches

livy.need.queue=false

livy.task.max.concurrent.count=20

livy.task.submit.interval.second=3

livy.task.appId.retry.count=3

# yarn url

yarn.uri=http://Master:8088

2)quartz.properties

需要修改一些內容:

org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate

3)env_batch.json

“api”: “http://Master:9200/griffin/accuracy”

8、然後進入到/griffin-0.5.0/service/目錄,對pom.xml檔案進行修改。編輯 service/pom.xml 檔案第113行,移除 MySQL JDBC 依賴註釋。否則編譯griffin時會報錯;

9、修改./service/pom.xml和./ui/pom.xml檔案中相關元件的版本;

10、啟動hive源資料服務。進入到hive的bin目錄,執行hive --service metastore &,以啟動hive源資料服務;

11、進入到griffin-0.5.0目錄中,使用mvn -Dmaven.test.skip=true clean install指令對griffin進行編譯打包;

12、編譯打包結束後,能在griffin目錄下的service和measure目錄中出現target目錄,在target目錄裡分別看到service-0.5.0.jar和measure-0.5.0.jar兩個包。然後需要將measure-0.5.0.jar這個包改名為griffin-measure.jar(必須更改),然後使用指令: hadoop fs -put griffin-measure.jar /griffin/將griffin-measure.jar上傳到hadoop的griffin目錄中;

# 重新命名measure、service,重新命名的jar要和上面的配置檔案application.properties 裡的name一致
mv measure/target/measure-0.5.0.jar $GRIFFIN_HOME/griffin-measure.jar
mv service/target/service-0.5.0.jar $GRIFFIN_HOME/griffin-service.jar

# 將measure上傳到HDFS
hadoop fs -put $GRIFFIN_HOME/griffin-measure.jar /griffin/

#griffin-service.jar 放入Griffin_home

13、啟動Griffin後臺管理:

#啟動Griffin後臺管理
nohup java -jar $GRIFFIN_HOME/griffin-service.jar>$GRIFFIN_HOME/service.out 2>&1 &

#啟動之後我們可以檢視啟動日誌,如果日誌中沒有錯誤,則啟動成功
tail -f $GRIFFIN_HOME/service.out

訪問192.168.152.131:8082(自己配置的埠)驗證是否配置成功。

圖中的使用者名稱和密碼屬於上文中在mysql中建立griffin使用者的使用者名稱和密碼;

或者賬號/密碼使用test/test登入。

2021-07-2912:48:10