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