首页 > 技术文章 > CentOs7下Apache Griffin0.5.0的安装部署

zrs123 2021-07-29 12:48 原文

一、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-29 12:48:10

推荐阅读