CDH6.3 从0-1搭建部署Apache Atlas2.0 windows hive 元数据治理
这里写自定义目录标题1.编译Atlas源码包:1.1 环境准备:1.1.1 win101.1.2 jdk1.81.1.3 maven 3.6.0 或 以上 (ps:必须使用3.6.0以上版本,我用的是3.6.3)1.编译Atlas源码包:1.1 环境准备:1.1.1 win101.1.2 jdk1.81.1.3 maven 3.6.0 或 以上 (ps:必须使用3.6.0以上版本,我用的是3.6.
·
CDH6.3 从0-1搭建部署Apache Atlas2.0
1. 编译Atlas源码包:
1.1 环境准备:
1.1.1 win10
1.1.2 jdk1.8
1.1.3 maven 3.6.0 或 以上 (ps:必须使用3.6.0以上版本,我用的是3.6.3)
1. 下载 解压 安装 (下载地址:http://maven.apache.org/download.cgi)
2. 配置settings.xml 映射阿里云仓库 (位置MAVEN_HOME/conf/settings.xml 我的位置是 D:\learn\bigdata\apache-maven-3.6.3\conf\settings.xml)
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>ali</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>https://maven.aliyun.com/nexus/content/repositories/central</url>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror>
<id>aliyun-maven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>ali</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
3. 配置maven环境变量
我的电脑–>属性–>高级系统设置–>环境变量–>系统变量模块–>新建–>变量名:MAVEN_HOME 变量值:你的MAVEN_HOME路径
系统变量模块–>双击Path–>新建–>%MAVEN_HOME%\bin
4. 测试
打开黑窗口,输入命令 mvn -v 测试是否配置成功
1.2 编译Atlas源码包:
1.2.1 下载安装与配置
1)下载-解压-安装 (下载地址:http://atlas.apache.org/#/Downloads)
2)修改pom.xml文件 (我的路径是:D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0\pom.xml)
<hadoop.version>3.0.0</hadoop.version>
<hbase.version>2.1.0</hbase.version>
<kafka.version>2.2.1</kafka.version>
<zookeeper.version>3.4.5</zookeeper.version>
修改成与你的CDH相匹配的版本(ps:不要修改hive.version 否则后期会出现错误)
3)修改atlas-application.properties文件 (我的路径是:D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0\distro\src\conf\atlas-application.properties)
# wcb0 wcb1 wcb2 为主机名 若在服务器上没有配置主机名与ip映射 则使用ip地址
# 修改集成hbase的配置(没有则添加,以下都是)
atlas.graph.storage.hostname=wcb0:2181,wcb1:2181,wcb2:2181
# 修改集成solr的配置
atlas.graph.index.search.solr.zookeeper-url=wcb0:2181,wcb1:2181,wcb2:2181
# 修改集成kafka的配置
atlas.notification.embedded=false #false表示使用外置的kafka
atlas.kafka.zookeeper.connect=wcb0:2181,wcb1:2181,wcb2:2181
atlas.kafka.bootstrap.servers=wcb0:9092,wcb1:9092,wcb2:9092
atlas.kafka.zookeeper.session.timeout.ms=60000
atlas.kafka.zookeeper.connection.timeout.ms=30000
atlas.kafka.enable.auto.commit=true
# 修改hive的集成配置
atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=primary
# 修改其他配置
atlas.rest.address=http://wcb0:21000 # 此端口号与impala端口号都为21000,去cm修改impala的端口号而不要修改atlas的端口号 否则后期在导入hive元数据时会发生read time out 错误
atlas.server.run.setup.on.start=false #一定要设为false,否则在服务器启动时将运行安装步骤
atlas.audit.hbase.zookeeper.quorum=wcb0:2181,wcb1:2181,wcb2:2181
4) 修改atlas-env.sh文件 (我的路径是:D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0\distro\src\conf\atlas-env.sh)
# 添加集成hbase的配置(此目录为服务器上atlas的hbase配置,先按照我的配置即可,后面会有专门的软链接命令 ps:/opt/module/是我自定义的目录,读者copy时要注意)
export HBASE_CONF_DIR=/opt/module/apache-atlas-2.0.0/conf/hbase/hbase-conf
# 修改内存指标(根据自己的服务器进行配置)
export ATLAS_SERVER_OPTS="-server -XX:SoftRefLRUPolicyMSPerMB=0
-XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled -XX:+PrintTenuringDistribution
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=dumps/atlas_server.hprof
-Xloggc:logs/gc-worker.log -verbose:gc
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=1m -XX:+PrintGCDetails -XX:+PrintHeapAtGC
-XX:+PrintGCTimeStamps"
# 优化 JDK1.8(以下需要16G内存)
export ATLAS_SERVER_HEAP="-Xms15360m -Xmx15360m
-XX:MaxNewSize=5120m -XX:MetaspaceSize=100M
-XX:MaxMetaspaceSize=512m"
5) 修改atlas-log4j.xml文件 (我的路径是:D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0\distro\src\conf\atlas-log4j.xml)
# 去掉如下代码的注释
<appender name="perf_appender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${atlas.log.dir}/atlas_perf.log" />
<param name="datePattern" value="'.'yyyy-MM-dd" />
<param name="append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d|%t|%m%n" />
</layout>
</appender>
<logger name="org.apache.atlas.perf" additivity="false">
<level value="debug" />
<appender-ref ref="perf_appender" />
</logger>
1.2.2 编译打包
1)打开黑窗口,进入Atlas目录(我的是D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0)
执行指令:mvn clean -DskipTests install (ps:编译失败后,使用mvn clean -DskipTests package -Pdist -X 指令 编译会快一些)
2) ERROR1: (当时出错时没有截图,翻历史记录找到了当时出错时的错误信息)
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-enforcer-plugin:3.0.0-M1:enforce
分析:根据提示信息,可得到是maven-enforcer-plugin这个插件强制约束了一些rules,查看pom文件,找到约束的rules
解决:打开pom.xml文件(我的位置是:D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0\pom.xml)搜索rules 更改maven和java的版本 (我的是3.6.3 和 1.8.0-131)
3)再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X (ps:仿照第一步)
ERROR2:could not find artifact org.restlet.jee:org.restlet:jar:2.3.0
分析:没有下载到这个jar包
解决:更换maven的镜像源 (我的位置是:D:\learn\bigdata\apache-maven-3.6.3\conf\settings.xml)
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>ali</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
4) 再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X
ERROR3:[ERROR] Failed to execute goal on project atlas-graphdb-janus: Could not resolve dependencies for project org.apache.atlas:atlas-graphdb-janus:jar:2.0.0:
Failure to find com.sleepycat:je:jar:7.4.5 in https://maven.aliyun.com/repository/public was cached in the local repository, resolution will not be reattempted until the update interval of aliyunmaven has elapsed or updates are forced
分析:依旧是没有找到jar包
解决: 手动下载该jar包并导入到指定目录
下载地址:https://download.oracle.com/maven/com/sleepycat/je/7.4.5/je-7.4.5.jar
https://download.oracle.com/maven/com/sleepycat/je/7.4.5/je-7.4.5.pom
下载之后将两个文件放到maven仓库对应的目录中(C:\Users\admin\.m2\repository\com\sleepycat\je\7.4.5\)(ps:木有相应文件夹则自行创建)
我的maven仓库地址为:C:\Users\admin\.m2
5) 再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X
ERROR4:Could not find artifact org.pentaho:pentaho-aggdesigner-algorithm:jar:5.1.5-jhyde in alimaven (http://maven.aliyun.com/nexus/content/groups/public/)
分析:依旧是没有找到包包
解决:手动下载该jar包并导入到指定目录
下载地址:https://mvnrepository.com/artifact/org.pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde
下载pom和jar文件 上传C:/Users/admin/.m2/org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde/目录下
6) 再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X
ERROR5:Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: Could not find artifact org.pentaho:pentaho-aggdesigner:pom:5.1.5-jhyde in aliyunmaven (https://maven.aliyun.com/repository/public)
分析:没有找到相应的.pom文件
解决:手动下载该pom文件并导入到指定目录
下载地址:https://mvnrepository.com/artifact/org.pentaho/pentaho-aggdesigner/5.1.5-jhyde
下载pom文件上传到C:/Users/admin/.m2/org/pentaho/pentaho-aggdesigner-algorithm/5.1.5-jhyde/目录下
7)再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X
ERROR6:Failed to run task: 'npm install' failed. org.apache.commons.exec.ExecuteExc
分析:没有安装npm
解决:安装npm即可
安装太过简单,就不在这里赘述了 具体请看https://www.cnblogs.com/hualess/p/11541908.html
执行最后一步时,可能会出现一个错误:
ERROR:rollbackFailedOptional: verb npm-session 202ea7f8ff206e70
解决:所用为自己网络不需要代理,则要把npm代理和git代理去掉
1、去掉npm代理
npm config delete proxy
npm config delete https-proxy
2、去掉git代理
git config --global --unset http.proxy
git config --global --unset https.proxy
8) 再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X
ERROR7:Could not find artifact org.apache.sqoop:sqoop:jar:1.4.6.2.3.99.0-195 in aliyunmaven (https://maven.aliyun.com/repository/public)
分析:依旧是没有下载到包包
解决:手动下载该pom文件并导入到指定目录
下载地址:https://mvnrepository.com/artifact/org.apache.sqoop/sqoop/1.4.6.2.3.99.0-195
将下载好的jar包和.pom文件导入到C:\Users\admin\.m2\repository\org\apache\sqoop\sqoop\1.4.6.2.3.99.0-195\目录下
(ps:只下载sqoop-1.4.6.2.3.99.0-195.jar 和 sqoop-1.4.6.2.3.99.0-195.pom两个文件就好)
9)再次打开黑窗口,进入指定目录,执行指令:mvn clean -DskipTests package -Pdist -X
终于 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
2. 集成 CDH的HBase、Solr、Kafka、Hive
2.1 解压安装apache-atlas-2.0.0-bin.tar.gz
1)将编译好的apache-atlas-2.0.0-bin.tar.gz上传至服务器
tar包位置:D:\learn\bigdata\atlas\apache-atlas-sources-2.0.0\distro\target\apache-atlas-2.0.0-bin.tar.gz
上传至:/opt/software/目录下 (ps:这是我自定义的目录 读者可以上传至自己定义的其他目录)
解压: tar -zxvf /opt/software/apache-atlas-2.0.0-bin.tar.gz -C /opt/module/
2.2 集成CDH的HBase
1) **添加hbase集群配置文件到/opt/module/apache-atlas-2.0.0/conf/hbase下(这里连接的路径需要和上面配置中一样)**
ln -s /etc/hbase/conf/ /opt/module/apache-atlas-2.0.0/conf/hbase/
2.3 集成solr
1) **如果自己CDH的solr的版本不是7.5 则不能使用CDH的solr,需自行下载Apache的开源版本 这里我将着重介绍一下集成Apache的solr**
下载地址:http://archive.apache.org/dist/lucene/solr/7.5.0/
官网推荐的solr节点数为3,内存为32G
下载好之后上传至:/opt/software/
解压:tar -zxvf /opt/software/solr-7.5.0.tgz -C /opt/module/
2)主节点修改: vi /opt/module/solr-7.5.0/bin/solr.in.sh
ZK_HOST="wcb0:2181,wcb1:2181,wcb2:2181"
SOLR_HOST="wcb0"
SOLR_PORT=8983
3)主节点分发:
scp -r /opt/module/solr-7.5.0 root@wcb1:/opt/module/
scp -r /opt/module/solr-7.5.0 root@wcb2:/opt/module/
分发完,将SOLR_HOST改为对应机器
4)集成solr:
将apache-atlas-2.0.0/conf/solr文件拷贝到/opt/module/solr-7.5.0/,更名为atlas-solr
scp -r /opt/module/apache-atlas-2.0.0/conf/solr/ root@wcb0:/opt/module/solr-7.5.0/
scp -r /opt/module/apache-atlas-2.0.0/conf/solr/ root@wcb1:/opt/module/solr-7.5.0/
scp -r /opt/module/apache-atlas-2.0.0/conf/solr/ root@wcb2:/opt/module/solr-7.5.0/
所有solr节点操作:
cd /opt/module/solr-7.5.0/
mv solr/ atlas-solr
所有节点创建用户附权限:
useradd atlas && echo atlas | passwd --stdin atlas
chown -R atlas:atlas /opt/module/
所有节点执行启动(cloud模式):
su atlas
/opt/module/solr-7.5.0/bin/solr start
5)创建collection (随便solr节点)
/opt/module/solr-7.5.0/bin/solr create -c vertex_index -d /opt/module/solr-7.5.0/atlas-solr -shards 3 -replicationFactor 2
/opt/module/solr-7.5.0/bin/solr create -c edge_index -d /opt/module/solr-7.5.0/atlas-solr -shards 3 -replicationFactor 2
/opt/module/solr-7.5.0/bin/solr create -c fulltext_index -d /opt/module/solr-7.5.0/atlas-solr -shards 3 -replicationFactor 2
6) 验证创建collection成功
登录 solr web控制台: http://wcb0:8983 验证是否启动成功
2.4 集成CDH的Kafka
1) 创建Kafka Topic
kafka-topics --zookeeper wcb0:2181,wcb1:2181,wcb2:2181 --create --replication-factor 3 --partitions 3 --topic _HOATLASOK
kafka-topics --zookeeper wcb0:2181,wcb1:2181,wcb2:2181 --create --replication-factor 3 --partitions 3 --topic ATLAS_ENTITIES
kafka-topics --zookeeper wcb0:2181,wcb1:2181,wcb2:2181 --create --replication-factor 3 --partitions 3 --topic ATLAS_HOOK
2)查看topic
bin/kafka-topics.sh --list --zookeeper wcb0:2181,wcb1:2181,wcb2:2181
2.5 集成CDH的Hive
1) 将atlas-application.properties配置文件加入到atlas-plugin-classloader-1.0.0.jar中
zip -u /opt/module/apache-atlas-2.0.0/hook/hive/atlas-plugin-classloader-0.8.4.jar /opt/module/apache-atlas-2.0.0/conf/atlas-application.properties
原因:这个配置不能参照官网,将配置文件考到hive的conf中。参考官网的做法一直读取不到atlas-application.properties配置文件,看了源码发现是在classpath读取的这个配置文件,所以将它压到jar里面。
2)修改hive的相关配置文件
进入CM web控制台--> 进入hive的配置界面
1> 搜索 hive-site.xml
修改【hive-site.xml的Hive服务高级代码段(安全阀)】
名称:hive.exec.post.hooks
值:org.apache.atlas.hive.hook.HiveHook
修改【hive-site.xml的Hive客户端高级代码段(安全阀)】
名称:hive.exec.post.hooks
值:org.apache.atlas.hive.hook.HiveHook
2> 搜索 hive-env
修改 【hive-env.sh 的 Gateway 客户端环境高级配置代码段(安全阀)】
HIVE_AUX_JARS_PATH=/opt/module/apache-atlas-2.0.0/hook/hive
3> 搜索 hive_aux
修改 【hive-site.xml 的 HiveServer2 高级配置代码段(安全阀)】
ps:此配置一共增加两块代码段
名称:hive.exec.post.hooks
值:org.apache.atlas.hive.hook.HiveHook
名称:hive.reloadable.aux.jars.path
值:/opt/module/apache-atlas-2.0.0/hook/hive
修改 【HiveServer2 环境高级配置代码段(安全阀)】
HIVE_AUX_JARS_PATH=/opt/module/apache-atlas-2.0.0/hook/hive
3)将配置好的atlas包发往各个hive节点 (ps:注意是有hive的节点 )
scp /opt/module/apache-atlas-2.0.0 root@wcb1:/opt/module/
scp /opt/module/apache-atlas-2.0.0 root@wcb1:/opt/module/
4)将atlas配置文件copy到/etc/hive/conf下(集群各个节点)
scp /opt/module/apache-atlas-2.0.0/conf/atlas-application.properties root@wcb0:/etc/hive/conf
scp /opt/module/apache-atlas-2.0.0/conf/atlas-application.properties root@wcb1:/etc/hive/conf
scp /opt/module/apache-atlas-2.0.0/conf/atlas-application.properties root@wcb2:/etc/hive/conf
5)重启hive集群
2.6 启动Atlas
cd /opt/module/apache-atlas-2.0.0
./bin/atlas_start.py
登录 atlas web控制台: http://wcb0:21000 验证是否启动成功!
3. 将Hive元数据导入Atlas
3.1配置hive环境变量
1) 各个节点都要配置
vi /etc/profile
export HIVE_HOME=/opt/cloudera/parcels/CDH/lib/hive
export HIVE_CONF_DIR=/etc/hive/conf
export PATH=$HIVE_HOME/bin:$PATH
source /etc/profile
3.2 将hive元数据导入 Atlas
1)执行shell 命令
cd /opt/module/apache-atlas-2.0.0
./bin/import-hive.sh
系统默认用户名密码:admin admin 若修改过请用修改过的
2)ERROR:hive.exec.post.hooks Class not found: org.apache.atlas.hive.hook.HiveHook
Caused by: java.net.ConnectException: Connection refused (Connection refused)
分析:很明显,缺少jar包
解决:
1> 将/opt/module/apache-atlas-2.0.0/hook/hive下所有jar包拷贝/opt/cloudera/parcels/CDH/lib/hive/lib目录下
2> 将/opt/module/apache-atlas-2.0.0/hook/hive/atlas-hive-plugin-impl 拷贝到/opt/cloudera/parcels/CDH/lib/hive/lib目录下
3)再次执行导入命令
./bin/import-hive.sh
Enter username for atlas :- admin
Enter password for atlas :-
Hive Meta Data import was successful!!!
终于!!! !!! successful !!!! ┭┮﹏┭┮
4)登录 atlas web控制台: http://wcb0:21000 验证我们的成果
ps:介于数据为内部数据 我就找张网图代替了
emmmm 就是这个样子!!!!!
更多推荐
所有评论(0)