目录
前言
Atlas能够提供开放式的元数据管理和治理功能,能够构建表与表之间的血缘关系,并且支持对表和构建表的过程进行分类管理。对于平台数据量越来越大,元数据管理显得至关重要,元数据有效的表达了数据的来源和流向以及依赖,Atlas的出现,有效的解决了元数据的管理问题。
环境依赖
Atlas2.2.0的编译,依赖环境如下:
- JDK_8u151及以上版本
- Maven3.5.0及以上
- Python2.7(centos7.5自带,无需安装)
编译
编译说明
由于我的大数据环境是CDH6.2.1,需要修改Atlas的相关版本与CDH6.2.1组件版本一致,调整如下:
<hadoop.version>3.0.0</hadoop.version>
<hbase.version>2.1.0</hbase.version>
<kafka.version>2.1.0</kafka.version>
<zookeeper.version>3.4.5</zookeeper.version>
源码下载
mkdir /opt/software
cd /opt/software
wget https://archive.apache.org/dist/atlas/2.0.0/apache-atlas-2.0.0-sources.tar.gz
tar xzvf apache-atlas-2.0.0-sources.tar.gz
环境优化
程序猿们总所周知国内的网络环境访问国外的速度是怀疑人生的,故而对Maven和Atlas依赖的Hbase和Solr进行一定的处理。具体措施就是修改Maven的下载仓库和预先下载对应版本的Hbase和Solr。我第一次编译没有预先下载好Hbase和Solr,在阿里云环境(100M宽带),下载Hbase花了3个小时还没下完,被迫中止编译,多么痛的领悟
- 修改Maven的下载仓库,并将Maven的settings.xml拷贝到用户目录的.m2目录下,我用的是root用户编译,故而将settings.xml移动到/root/.m2/下
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo</id>
<name>Mirror from Maven Repo2</name>
<url>https://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
</mirrors>
- 预先下载好Atlas依赖的Hbase和Solr,注意浏览器下载也是很慢的,可以采用迅雷下载,下载地址如下:
# Hbase
http://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz
# Solr
http://archive.apache.org/dist/lucene/solr/7.5.0/solr-7.5.0.tgz
温馨提示:下载Hbase和Solr的版本是和源码包父pom文件里面定义的版本号对应的
- 将下载好的Hbase和Solr上传至源码包的指定位置
# 进入到源码包中的disto目录
mkdir hbase
mkdir solr
温馨提示:将hbase-2.1.0-bin.tar.gz上传到hbase目录之后需要更名为hbase-2.1.0.tar.gz,不然编译的时候找不到,还是会去外网下载
编译安装
- 编译
export MAVEN_OPTS="-Xms4g -Xmx4g"
mvn clean -DskipTests package -Pdist,embedded-hbase-solr
等待......
由于这是我第二次编译,很多jar包都已经下载好了,只用了6分钟左右。出现如下画面,则编译成功:
编译的文件在disto下面target目录下,红框中就是我们要的安装包:
本人基于以上配置编译好的包可供下载:编译包,但是还是建议如果有时间自己编译,毕竟官方只提供源码,以后不论任何CDH环境、HDP环境、Apache环境,都能做到适配,岂不乐哉
- 安装
# 将安装包移动至/opt/module下
cp -r apache-atlas-2.0.0-bin /opt/module
# 更名
mv apache-atlas-2.0.0-bin atlas-2.0.0
# 修改端口号
vi atlas-2.0.0/conf/atlas-application.properties
# 修改配置项如下
atlas.server.http.port=21001
atlas.rest.address=http://hadoop01:21001
温馨提示:由于Impala已占用21000端口,故而需要修改Atlas的端口号
集成CDH组件
集成Hbase
vi atlas-2.0.0/conf/atlas-application.properties
# 配置项如下
atlas.graph.storage.hostname=hadoop01:2181,hadoop02:2181,hadoop03:2181
# 将Hbase的配置文件软连接到Atlas的conf/hbase目录下
ln -s /etc/hbase/conf/ /opt/module/atlas-2.0.0/conf/hbase/
集成Solr
vi atlas-2.0.0/conf/atlas-application.properties
# 配置项如下
atlas.graph.index.search.solr.zookeeper-url=hadoop01:2181/solr
# 将Atlas的conf目录下Solr文件夹同步到Solr的目录下,更名,然后发到各个节点
cp -r /opt/module/atlas-2.0.0/conf/solr /opt/cloudera/parcels/CDH/lib/solr/
cd /opt/cloudera/parcels/CDH/lib/solr/
# 更名
mv solr atlas_solr
# 同步到其他节点
scp -r /opt/cloudera/parcels/CDH/lib/solr/atlas_solr hadoop02:/opt/cloudera/parcels/CDH/lib/solr/
scp -r /opt/cloudera/parcels/CDH/lib/solr/atlas_solr hadoop03:/opt/cloudera/parcels/CDH/lib/solr/
# Solr创建collection
solr create -c vertex_index -d /opt/cloudera/parcels/CDH/lib/solr/aatlas_solr -force -shards 5 -replicationFactor 1
solr create -c edge_index -d /opt/cloudera/parcels/CDH/lib/solr/atlas_solr -force -shards 5 -replicationFactor 1
solr create -c fulltext_index -d /opt/cloudera/parcels/CDH/lib/solr/atlas_solr
-force -shards 5 -replicationFactor 1
集成Kafka
vi atlas-2.0.0/conf/atlas-application.properties
# 配置项如下
atlas.notification.embedded=false
atlas.kafka.zookeeper.connect=hadoop01:2181,hadoop02:2181,hadoop03:2181
atlas.kafka.bootstrap.servers=hadoop01:9092,hadoop02:9092,hadoop03:9092
atlas.kafka.zookeeper.session.timeout.ms=4000
atlas.kafka.zookeeper.connection.timeout.ms=2000
atlas.kafka.enable.auto.commit=true
# 创建主题(也可以不要创建,Kafka会自动创建,但是topic分区数是1,生产环境必须创建)
kafka-topics --zookeeper hadoop01:2181 --create --replication-factor 2 --partitions 3 --topic ATLAS_HOOK
kafka-topics --zookeeper hadoop01:2181 --create --replication-factor 2 --partitions 3 --topic ATLAS_ENTITIES
集成Hive
- 将配置文件atlas-application.properties添加到atlas-2.0.0/hook/hive的atlas-plugin-classloader-2.0.0.jar
# 切换到Atlas的conf目录下
cd /opt/module/atlas-2.0.0/conf
# 添加
zip -u /opt/module/atlas-2.0.0/hook/hive/atlas-plugin-classloader-2.0.0.jar atlas-application.properties
# 将配置文件添加到hive的配置目录下
cp atlas-application.properties /etc/hive/conf
- 搜索hive-site,修改相关配置
# 前两个配置内容
名称:hive.exec.post.hooks
值:org.apache.atlas.hive.hook.HiveHook,org.apache.hadoop.hive.ql.hooks.LineageLogger
# 后一个配置内容
名称:hive.exec.post.hooks
值:org.apache.atlas.hive.hook.HiveHook,org.apache.hadoop.hive.ql.hooks.LineageLogger
名称:hive.reloadable.aux.jars.path
值:/opt/module/atlas-2.0.0/hook/hive
- 搜索hive-env,修改相关配置
# 配置内容
HIVE_AUX_JARS_PATH=/opt/module/atlas-2.0.0/hook/hive
- 搜索HIVE_AUX_JARS_PATH
# 配置内容
HIVE_AUX_JARS_PATH=/opt/module/atlas-2.0.0/hook/hive
- 修改完配置需要重启Hive及Hive相关的组件
- 添加环境变量
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
- 导入Hive的元数据
cd /opt/module/atlas-2.0.0
bin/import-hive.sh
-
启动Atlas
bin/atlas_start.py
页面展示
温馨提示:最后一张图是跑了Oozie调度任务才有的血缘图,刚刚导入Hive的元数据是没有这样复杂的图