Apache Atlas 安装部署

  • 1.Atlas 原理及相关概念
  • 2.安装前置条件
  • 3.安装Hbase
  • 4.安装Solr
  • 5.安装kafka
  • 6.编译Atlas
  • 7.安装Atlas
  • 8.集成hive

1.Atlas 原理及相关概念

元数据

元数据其实就是描述数据的数据,比如表,字段,视图等,每个业务系统可能都会自己定义表,字段,视图,这些数据从哪来到往哪去,数据之间是否存在关联,和其他系统的数据是否存在重复和矛盾字段,这些就是元数据管理要解决的问题,也是 Atlas 要解决的问题。

运行原理

Atlas 的原理其实并不难理解,主要是通过内部提供的脚本读取数仓中的数据库结构,生成数据模型,存储到 Atlas的 Hbase 中,同时通过 hook 的方式监听数仓中的数据变化,分析执行的 sql 语句,从而生成表与表,列与列的血缘关系依赖,在前台展示给用户查看。

数仓支持

Atlas 对 Hive 支持最好,我们都知道,Hive 是依赖于 Hadoop 的,数据存储在 HDFS 中,Atlas 有专门的 shell 脚本可以直接运行读取 Hive 的表结构等元数据信息同步到 Atlas 的存储库中,自动生成元数据模型,同时 Atlas 提供的 HiveHook 可以监听 Hive 的数据变化,根据 Hive 执行的 sql 推断出数据与数据之间的关系,生成血缘关系图,如果我们想要分析其他数据存储介质的元数据和血缘关系,Atlas 的支持并不是很理想。但通常情况下,我们会定时把业务库如 mysql,oracle 中的数据定时同步到数仓中整合分析,而数仓我们一般都会采用 Hadoop 的生态体系,所以这一点并不是问题。

架构图解

以下是 Atlas 的架构图解,可以看出,Atlas 所依赖的生态体系是异常庞大的,这也直接导致了它部署起来十分繁琐,本文不再讲解 Atlas 的部署,网上相关的教程有很多,感兴趣的朋友可以自己搜索尝试。

核心组件概念

Atlas 中主要有以下核心组件,这些需要我们着重了解,接下来我们通过 Rest Api 自定义建模其实就是对以下组件的增删查改操作。

1.Type

元数据类型定义,这里可以是数据库,表,列等,还可以细分 mysql 表( mysql_table ),oracle 表( oracle_table )等,atlas自带了很多类型,如 DataSet,Process 等,一般情况下,数据相关的类型在定义类型的时候都会继承 DataSet,而流程相关的类型则会继承 Process,便于生成血缘关系。我们也可以通过调用 api 自定义类型。这是一切的起点,定义完类型之后,才能生成不同类型的元数据实体,生成血缘关系,我个人更喜欢把元数据类型称之为建模。

2.Classification

分类,通俗点就是给元数据打标签,分类是可以传递的,比如 A 视图是基于 A 表生成的,那么如果 A 表打上了 a 这个标签,A 视图也会自动打上 a 标签,这样的好处就是便于数据的追踪。

3.Entity

实体,表示具体的元数据,Atlas 管理的对象就是各种 Type 的 Entity。

4.Lineage

数据血缘,表示数据之间的传递关系,通过 Lineage 我们可以清晰的知道数据的从何而来又流向何处,中间经历了哪些操作,这样一旦数据出现问题,可以迅速追溯,定位是哪个环节出现错误。

2.安装前置条件

软件版本:

软件 版本
Hadoop hadoop-2.6.0-cdh5.16.2
Hbase hbase-1.2.0-cdh5.16.2
Solr solr-5.5.1
Kafka 2.2.1
Atlas apache-atlas-1.1.0

Hadoop和Hbase 采用CDH 版本

Solr 下载地址:https://archive.apache.org/dist/lucene/solr/5.5.1/solr-5.5.1.tgz
Atlas 下载地址:https://atlas.apache.org/#/Downloads

3.安装Hbase

下载地址:http://archive.cloudera.com/cdh5/cdh/5/

安装前提条件:

  • hadoop-2.6.0-cdh5.16.2
  • zookeeper-3.4.5-cdh5.16.2

1.修改 hbase-site.xml 文件

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!--hbase.rootdir的前端与$HADOOP_HOME/conf/core-site.xml的fs.defaultFS一致 --><property><name>hbase.rootdir</name><value>hdfs://hadoop01:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><!--本地文件系统的临时文件夹。可以修改到一个更为持久的目录上。(/tmp会在重启时清除) --><property><name>hbase.tmp.dir</name><value>/home/hadoop/tmp/hbase</value></property><!--如果只设置单个 Hmaster,那么 hbase.master 属性参数需要设置为 master:60000 (主机名:60000) --><!--如果要设置多个 Hmaster,那么我们只需要提供端口 60000,因为选择真正的 master 的事情会有 zookeeper 去处理 --><property><name>hbase.master</name><value>60000</value></property><!--这个参数用户设置 ZooKeeper 快照的存储位置,默认值为 /tmp,显然在重启的时候会清空。因为笔者的 ZooKeeper 是独立安装的,所以这里路径是指向了 $ZOOKEEPER_HOME/conf/zoo.cfg 中 dataDir 所设定的位置 --><property><name>hbase.zookeeper.property.dataDir</name><value>/home/hadoop/tmp/zookeeper</value></property><property><name>hbase.zookeeper.quorum</name><value>hadoop01</value></property><!--表示客户端连接 ZooKeeper 的端口 --><property><name>hbase.zookeeper.property.clientPort</name><value>2181</value></property><!--ZooKeeper 会话超时。Hbase 把这个值传递改 zk 集群,向它推荐一个会话的最大超时时间 --><property><name>zookeeper.session.timeout</name><value>120000</value></property><!--当 regionserver 遇到 ZooKeeper session expired , regionserver 将选择 restart 而不是 abort --><property><name>hbase.regionserver.restart.on.zk.expire</name><value>true</value></property><!-- 以下是phoenix的参数 占时用不到
<property><name>hbase.table.sanity.checks</name><value>false</value>
</property>
<property><name>hbase.regionserver.wal.codec</name><value>org.apache.hadoop.hbase.regionserver.wal.IndexedWALEditCodec</value>
</property>
<property><name>phoenix.schema.isNamespaceMappingEnabled</name><value>true</value>
</property>
<property><name>phoenix.schema.mapSystemTablesToNamespace</name><value>true</value>
</property><!--
<property><name>phoenix.query.dateFormatTimeZone</name><value>Asia/Shanghai</value>
</property>
--><property><name>hbase.online.schema.update.enable</name><value>true</value>
</property><property><name>hbase.coprocessor.abortonerror</name><value>false</value>
</property>
</configuration>

2.修改hbase-env.sh

# The directory where pid files are stored. /tmp by default.
export HBASE_PID_DIR=/home/hadoop/tmp# 若使用hbase内置的zookeeper 则修改为true
# Tell HBase whether it should manage it's own instance of Zookeeper or not.
export HBASE_MANAGES_ZK=false

3.修改regionservers

hadoop01

4.启动

bin/start-hbase.sh

5.web界面查看:

http://hadoop01:60010/master-status

4.安装Solr

1.下载之后解压solr

mkdir /home/hadoop/server
bin/install_solr_service.sh /home/hadoop/software/solr-5.5.1.tgz -s solr -u root -p 8983 -d /home/hadoop/solrdata -i /home/hadoop/server

安装完成以后会自动启动,可以通过浏览器测试 8983 端口访问 Admin UI
另外可以使用 Linux 的服务开关 Solr 服务 service solr restart

访问:http://hadoop01:8983

问题1.:web界面创建core失败

1.先去solr-6.5.1/server/solr/ 创建一个名字为new_core的文件夹

2.然后拷贝当前目录下solr-6.5.1/server/configsets/basic_configs下的conf目录拷贝到new_core目录下
即可在web界面成功创建core

同理拷贝 vertex_index 、edge_index、fulltext_index

cp -r configsets/basic_configs/conf ./vertex_index/
cp -r configsets/basic_configs/conf ./edge_index/
cp -r configsets/basic_configs/conf ./fulltext_index/# 创建atlas所需要的的solr core
./bin/solr create -c vertex_index -d /home/hadoop/app/solr-5.5.1/server/solr/vertex_index -shards 2 -replicationFactor 2  -force./bin/solr create -c edge_index -d /home/hadoop/app/solr-5.5.1/server/solr/edge_index -shards 2 -replicationFactor 2  -force./bin/solr create -c fulltext_index -d /home/hadoop/app/solr-5.5.1/server/solr/fulltext_index -shards 2 -replicationFactor 2  -force

删除可以通过命令行:

./bin/solr delete -c vertex_index

重要:启动solr 一定要使用命令行指定的方式 否则报错& 需手动执行下面命令:

Failed to obtain graph instance, retrying 3 times, error: java.lang.IllegalArgumentException: Could not instantiate implement。。。。

./bin/solr start -c -z hadoop01:2181 -p 8983

5.安装kafka

kafka 版本:apache kafka_2.11-2.2.1

vi /home/hadoop/app/kafka_2.11-2.2.1/config/server.properties#broker.id=0
#log.dirs=/tmp/kafka-logsbroker.id=0
host.name=hadoop
port=9090
log.dirs=/home/hadoop/app/kafka_2.11-2.2.1/logs
zookeeper.connect=hadoop01:2181/kafka

6.编译Atlas

1.下载源码解压
2.配置pom 和maven 的mirrors
配置源码包的 pom.xml

<repository><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</repository>
<repository><id>oracleReleases</id><name>Oracle Released Java Packages</name><url>http://download.oracle.com/maven</url><layout>default</layout>
</repository> 

配置maven 的 settings.xml

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> <mirrorOf>central</mirrorOf>
</mirror>

编译命令:

# 内嵌方式打包
mvn clean -DskipTests package -Pdist,embedded-hbase-solr# 使用外部的hbase和solr
mvn clean -DskipTests package -Pdist

编译成功之后拿到distro/target 下面的包部署即可
apache-atlas-1.1.0-server.tar.gz

7.安装Atlas

1.配置atlas-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_231/# indicates whether or not a local instance of HBase should be started for Atlas
export MANAGE_LOCAL_HBASE=false# indicates whether or not a local instance of Solr should be started for Atlas
export MANAGE_LOCAL_SOLR=false# indicates whether or not cassandra is the embedded backend for Atlas
export MANAGE_EMBEDDED_CASSANDRA=false# indicates whether or not a local instance of Elasticsearch should be started for Atlas
export MANAGE_LOCAL_ELASTICSEARCH=false

2.编辑:atlas-application.properties

atlas.graph.storage.backend=hbase
atlas.graph.storage.hbase.table=apache_atlas_janus#Hbase
#For standalone mode , specify localhost
#for distributed mode, specify zookeeper quorum here
atlas.graph.storage.hostname=localhost
atlas.graph.storage.hbase.regions-per-server=1
atlas.graph.storage.lock.wait-time=10000
# Graph Search Index
atlas.graph.index.search.backend=solr#Solr
#Solr cloud mode properties
atlas.graph.index.search.solr.mode=cloud
atlas.graph.index.search.solr.zookeeper-url=localhost:2181
atlas.graph.index.search.solr.zookeeper-connect-timeout=60000
atlas.graph.index.search.solr.zookeeper-session-timeout=60000
atlas.graph.index.search.solr.wait-searcher=true#Solr http mode properties
#atlas.graph.index.search.solr.mode=http
atlas.graph.index.search.solr.http-urls=http://localhost:8983/solr# Solr-specific configuration property
atlas.graph.index.search.max-result-set-size=150

此处不做过多的集成hive kafaka 的赘述

3.配置好之后启动atls,监控日志看是否报错

bin/atlas_start.py

4.启动成功之后访问21000端口
用户名:admin
密码:admin

8.集成hive

1.配置hive-site.xml

<!-- 配置hook 钩子类 -->
<property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value>
</property>

2.配置hive-env.sh

[root@hadoop01 conf]# cp hive-env.sh.template hive-env.sh
[root@hadoop01 conf]# vim hive-env.sh
export HIVE_AUX_JARS_PATH=$ATLAS_HOME/hook/hive/atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000

3.复制$ATLAS_HOME/conf/atlas-application.properties文件到$HIVE_HOME/conf下,并追加内容

#复制atlas-application.properties文件到$HIVE_HOME/conf下cp atlas-application.properties $HVIE_HOME/conf/

4.复制导入Hive元数据必须的jar包

cp $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-base-2.9.9.jar $ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/
cp $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-jaxrs-json-provider-2.9.9.jar $ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/
cp $ATLAS_HOME/server/webapp/atlas/WEB-INF/lib/jackson-module-jaxb-annotations-2.9.9.jar $ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/或者自行下载jar 包到$ATLAS_HOME/hook/hive/atlas-hive-plugin-impl/

不拷贝报的话会报错

五、执行同步Hive 元数据脚本

sh import-hive.sh

5.相关参考链接:


solr 下载地址:https://archive.apache.org/dist/lucene/solr/5.5.1/solr 安装地址:https://www.niuchaoqun.com/2016/solr5-install/solr 创建core 失败:https://blog.csdn.net/kevon_sun/article/details/80711562atlas 采坑记录:https://www.cnblogs.com/tovin/p/12161793.htmlhttps://yerias.github.io/atlas 编译问题:https://blog.csdn.net/L13763338360/article/details/104053480atlas 1.1 编译包:https://blog.csdn.net/weixin_43662454/article/details/90042958https://cloud.tencent.com/developer/article/1977557https://zhuanlan.zhihu.com/p/467934571
二次开发:https://blog.csdn.net/m0_37719874/article/details/124245209

如需提供编译好的安装包可私信或评论

Apache Atlas 安装部署相关推荐

  1. Apache Atlas安装部署报错之解决方案

    说明:在按照官网文档安装Atlas的过程中,遇到了各种各样的问题,现将本人在实践中,成功安装部署的过程分享给大家. 一.下载安装包 下载安装JDK.(不要用Linux自带的jdk,且atlas2.0要 ...

  2. Apache Atlas的部署

    Apache Atlas 的部署 个人公众号 编译atlas 你可以下载官方给出的稳定2.0 的稳定版,也可以clone最新的项目编译,本文以clone最新的项目编译为例: git clone htt ...

  3. Apache Atlas 安装及入门

    介绍 Apache Atlas 用来管理hive元数据 安装 # 解压更名 tar xvfz apache-atlas-1.0.0-sources.tar.gz cd apache-atlas-sou ...

  4. PHP7.2与apache环境安装部署详细流程

    php-agent 安装部署详细流程 一.环境 测试机内网IP: 10.128.5.98 用户名口令: root/oneapm21 cat /etc/system-release cat /etc/i ...

  5. Apache Atlas 安装

    1.从官网下载源码http://atlas.apache.org/Downloads.html ,本项目选择source 1.0.0: 2.下载好包后,上传到服务器中某个机器上:解压包: tar -z ...

  6. Apache Livy 安装部署使用示例

    Livy 安装部署使用示例 1. Apache Livy 简介 2. 安装前置要求 3.下载安装包配置相关配置文件 4. 启动服务配置使用 5.提交任务获取运行结果 6.拓展参考 1. Apache ...

  7. Hive(2):Apache Hive 安装部署

    1 元数据相关名词 1.1 Metadata Metadata即元数据.元数据包含用Hive创建的database.table.表的位置.类型.属性,字段顺序类型等元信息.元数据存储在关系型数据库中. ...

  8. Apache Ranger安装部署

    1.下载 $ git clone https://github.com/apache/incubator-ranger.git $ cd incubator-ranger $ git checkout ...

  9. Apache Druid安装部署手册

    一 Apache Druid架构 1. Coordinator 监控Historical处理,负责分配segments到指定的服务,确保存在HIstorical中是自平衡的 2. Overlord 监 ...

最新文章

  1. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六) MiniGUI 提供的非 GUI/GDI 接口...
  2. 【业务】现金贷获客之道业务流程分析
  3. Keil | 解决Keil双击工程名无法打开.map的问题
  4. mysql join原理_MySQL的JOIN(二):JOIN原理
  5. C语言丨求两个正整数的最大公约数
  6. python `__del__`
  7. sql查询初学者指南_适用于初学者SQL Server查询优化技巧与实际示例
  8. 是什么构成了“人工智能”热潮?
  9. 工程电磁场matlab仿真,带电粒子在电磁场中运动的MATLAB仿真.doc
  10. 计算机和游戏建立不了连接,如何建立局域网我们寝室的电脑想连接起来玩游戏我们每个人都有网号我 爱问知识人...
  11. 删除后别人的微信号变成wxid_重磅!只需三步修改微信号,不用设置出生日期...
  12. 解决Chrome或Microsoft Edge浏览器打开时自动跳转到hao123
  13. 计算机核心期刊(北大核心)投稿意见
  14. 计算机浏览器应用程序,电脑打开IE浏览器显示找不到应用程序如何解决
  15. 如何搭建一个网站 -- 搭建一个网站需要多少钱
  16. Unexpected exception parsing XML document from class path resource处理
  17. 产品经理需要具备的知识技能汇总
  18. MySQL查询语句in子查询的优化
  19. 嵌入式系统开发笔记79:电磁波频谱的划分
  20. 快手春节红包pk则么玩 快手拔河拼牛气活动规则介绍

热门文章

  1. 运行时异常与一般异常有何异同
  2. 【左程云Java算法】Chapter1-5:用一个栈实现另一个栈的排序
  3. Java Web应用开发——作业五
  4. 云师大计算机调剂,2018年云南师范大学硕士研究生调剂公告(二)
  5. OA系统,企业的专属协同办公平台
  6. 联想笔记本Manjaro dde 18 安装疑难杂症解决
  7. A-Frame WebVR试玩报告
  8. Java——迭代公式收敛性
  9. 关于雷达信号“相干性”的解释
  10. 转贴:华为加班死人了