首先,在官网下载源码包
上传到linux,解压
[root@h2 ~]# tar -zxf apache-atlas-2.0.0-sources.tar.gz -C /opt/app/
进入源码目录,进行maven编译打包
mvn clean -DskipTests package -Pdist,embedded-hbase-solr
编译完成之后,会产生打包结果,所在位置是:源码目录中的新出现的distro/target目录
拥有maven-3.6.3以上版本的环境
为maven配置国内镜像源,vi $M2_HOME/conf/settings.xml
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
上传安装包到linux
解压
修改依赖的版本及相关包下载地址
atlas父工程pom文件
<zookeeper.version>3.4.14</zookeeper.version>
<hbase.version>2.2.2</hbase.version>
<solr.version>7.7.2</solr.version>
distro工程pom文件
<hbase.tar>http://mirrors.tuna.tsinghua.edu.cn/apache/hbase/${hbase.version}/hbase-${hbase.version}-bin.tar.gz</hbase.tar>
<solr.tar>http://mirrors.tuna.tsinghua.edu.cn/apache/lucene/solr/${solr.version}/solr-${solr.version}.tgz</solr.tar>
执行maven编译打包
注意,atlas可以使用内嵌的hbase-solr作为底层索引存储和搜索组件,也可以使用外置的hbase和solr
如果要使用内嵌的hbase-solr,则使用如下命令进行编译打包
cd /opt/atlas2.0
export MAVEN_OPTS="-Xms2g -Xmx2g"
mvn clean -DskipTests package -Pdist,embedded-hbase-solr
视网络速度,耐心等待,并且可能要反复重试几次,最好是能开一个速度不错的
挪出atlas编译好之后的安装包
mv distro/target/apache-atlas-2.0.0/ /opt/app/
启动atlas
cd /opt/app/
cd apache-atlas-2.0.0/
bin/atlas_start.py
然后访问21000端口,发现报错503错误,shit!
杀掉atlas进程,手动启动solr服务
cd apache-atlas-2.0.0/solr/
bin/solr start -c -z localhost:2181 -p 8984 -force
为solr创建初始化index库
bin/solr create -c vertex_index -shards 1 -replicationFactor 1 -force
然后打开浏览器访问solr的web服务如下,则solr启动成功
再次重新启动atlas
[root@h1 apache-atlas-2.0.0]# bin/atlas_start.py
The Server is no longer running with pid 102331
configured for local hbase.
hbase started.
configured for local solr.
solr started.
setting up solr collections...
starting atlas on host localhost
starting atlas on port 21000
.............................
Apache Atlas Server started!!!
访问h1的21000端口
然后,无奈的发现,可能还是503
检查atlas的服务日志
发现如下报错信息:
org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error from server at http://192.168.33.21:8984/solr: Can not find the specified config set: fulltext_index
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:627)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:253)
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:242)
at org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:4
重复之前步骤创建报错中提示的索引index库
然后再次重启atlas,访问端口,终于大功告成
总结,atlas的安装真的让人很困扰,该软件还极其不完善!
修改hive-env.sh
export HIVE_AUX_JARS_PATH=/opt/app/apache-atlas-2.0.0/hook/hive
修改hive-site.xml
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
启动hive,创建一个库
hive> create database atlasdemo;
OK
Time taken: 0.267 seconds
在atlas上搜索刚刚创建的库
完美!atlas部署成功
配置了hive的钩子后,在hive中做任何操作,都会被钩子所感应到,并生成相应的atlas元数据发往atlas进行存储管理;
但是,在atlas安装之前,hive中已存在的表,钩子是不会自动生成相关元数据的;
可以通过atlas的一个工具,来对已存在的hive库或表进行元数据导入;
Usage 1: <atlas package>/hook-bin/import-hive.sh
Usage 2: <atlas package>/hook-bin/import-hive.sh [-d <database regex> OR --database <database regex>] [-t <table regex> OR --table <table regex>]
Usage 3: <atlas package>/hook-bin/import-hive.sh [-f <filename>]
Apache Atlas UI 功能详解
ApacheAtlasUI功能包括3部分:SEARCH、CLASSIFICATION、GLOSSARY
SEARCH
Search模块包括Base Search、Advanced Search两种Entity查询功能和Entity创建功能。
查询条件有Type、Classification、Term、Text。还可以保存常用的查询条件组合。
查询条件包括:Term、Query。也可以保存常用的查询条件组合。
常用的Term值:Asset、avro_collection、avro_enum、avro_field、avro_fixed、avro_primitive、avro_record、avro_schema、avro_type
Classification模块包括:Classification列表(扁平结构、树状结构)、Classification创建功能。
扁平结构,如下图所示:
树状结构,如下图所示
创建Classification,如下图所示:
Atlas WebUI Tags添加自定义分类标签,这里添加了fact_table 事实表Tag、dim_table 维度表Tag、agg_table 聚合表Tag。
然后给各Hive表添加对应Tags标签即可,添加完的结果的维度表Tag如下。
Glossary模块包括:Glossary列表查询(Term、Category),创建Glossary。
Glossary列表查询,如下图所示:
创建Glossary,如下图所示:
Atlas WebUI 搜索到某个表后,可以看到这个表的Lineage,如上边创建的agg_monthbrandsalesamount表。