概述
Apache Atlas是开源的元数据治理框架,可以为Hive、HBase、Kafka等提供元数据管理功能,如:
- 数据分类
- 查看和更新Lineage
- 元数据搜索
- 与Apache Ranger集成控制权限
注意:为便于安装配置,以及后续的管理维护,建议用HDP Ambari等工具来部署Atlas。这里用HDP-2.6.4 Ambari部署Atlas 0.8.0元数据治理服务。
架构
注意:
- Atlas 内部用Graph图模型来保存元数据。
- Atlas 1.0.0之前默认使用Titan图数据库(后来叫JanusGraph图数据库)来存储Graph图模型。
- Titan图数据库可以用HBase、Cassandra、Berkeley DB 作为Storage Backend来存储图数据,用Elasticsearch、Solr、Lucene作为Index Backend来索引图数据。Atlas-Titan默认使用HBase来存储元数据,用Solr来索引元数据。
- Atlas 使用Kafka作为通知服务。Hook将元数据变化发送到Kafka Topic,Atlas根据这些通知更新元数据库。
Atlas HA部署
由上述Atlas架构可知,要实现Atlas HA,则要实现Atlas 各组件的HA。
- Atlas Web Server HA
- Titan Storage Backend HA,这里即HBase HA(已实现)。
- Titan Index Backend HA,这里即Solr HA。
- Atlas Notification Server HA,这里即Kafka HA(已实现)。
注意:这里只需再实现Titan Index Backend HA(即Solr HA)与Atlas Web Server HA即可。
- Solr HA通过SolrCloud集群实现。
- Atlas Web Server HA通过Zookeeper实现。
节点规划
节点 | 角色 |
---|---|
node1 | ZooKeeper、Kafka、HBase Master |
node2 | ZooKeeper、Kafka、HBase RegionServer、Solr、Atlas Web Service |
node3 | ZooKeeper、Kafka、HBase RegionServer 、Solr、Atlas Web Service |
node4 | HBase Maste、HBase RegionServer、Solr |
Solr HA
Solr集群,也叫SolrCloud,提供分布式索引和搜索功能。这里通过Ambari Infra Solr Instance实现。
第一步: 配置node2
通过Ambari-Add Service在node2添加Infra Solr Instance
第二步: 配置node3
通过Ambari-Host Add 添加Infra Solr Instance
第三步: 配置node4
通过Ambari-Host Add 添加Infra Solr Instance
第四步:启动所有Infra Solr Instance服务
第五步:简单验证
1、任意一台solr机器,创建solr collection,查看WebUI
A、创建collection
[root@node2 ~]# /usr/lib/ambari-infra-solr/bin/solr create_collection -c test_collection -shards 3 -replicationFactor 2
B、删除collection
[root@node2 ~]# /usr/lib/ambari-infra-solr/bin/solr delete -c test_collection
2、挂掉任意一台Infra Solr Instance服务
A、查看zookeeper /infra-solr/live_nodes
[root@node2 ~]# /usr/hdp/2.6.4.0-91/zookeeper/bin/zkCli.sh -server node1:2181
B、Solr WebUI Query
Atlas Web Server HA
这里通过Ambari Atlas Service服务来部署。
第一步: 配置node2
通过Ambari-Add Service在node2添加Atlas Web Server
注意,以下参数使用如下推荐值即可,也可安装后再修改参数。
hive.atlas.hook=true
hive.exec.post.hooks=org.apache.atlas.hive.hook.HiveHook
atlas.rest.address= http://node2:21000
第二步:配置node3
通过Ambari-Host Add 添加Atlas Web Server
注意,以下参数使用如下推荐值即可,也可安装后再修改参数。
atlas.rest.address=http://node2:21000,http://node3:21000
第三步:配置HA,并启动
通过Ambari Atlas Custom application-properties添加如下参数。
atlas.server.ha.enabled=true
atlas.server.ids=id1,id2
atlas.server.address.id1=node2:21000
atlas.server.address.id2=node3:21000
atlas.server.ha.zookeeper.connect=node1:2181,node2:2181,node3:2181
第四步:配置Hive Hook
1、检查hive-site.xml并添加如下配置
hive.exec.post.hooks=org.apache.atlas.hive.hook.HiveHook
2、拷贝atlas-application.properties至Hive Conf目录
cp /usr/hdp/2.6.4.0-91/atlas/conf/atlas-application.properties /usr/hdp/2.6.4.0-91/hive/conf/
[root@node3 ~]# cp /usr/hdp/2.6.4.0-91/atlas/conf/atlas-application.properties /usr/hdp/2.6.4.0-91/hive/conf/
第五步:验证
1、验证HA
A、查看状态
通过Rest API查看
curl -XGET http://node2:21000/api/atlas/admin/status 如:ACTIVE、PASSIVE
通过Zookeeper查看
[root@node2 ~]# /usr/hdp/2.6.4.0-91/zookeeper/bin/zkCli.sh -server node1:2181
get /apache_atlas/active_server_info
挂掉一台,通过WebUI查看是否正常工作
2、验证Hive Hook
A、Hive中创建表
create external table page_browsing
(
page_id bigint comment '页面ID',
page_url string comment '页面URL'
)
PARTITIONED BY (dt string)
LOCATION '/data/hive/test2'
B、在Kafka Topic ATLAS_ENTITIES 中可看到建表产生的Notification
C、WebUI查看LINEAGE