Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)
1、编译阶段
组件信息:
| 组件名称 | 版本 |
|---|---|
| Atals | 2.2.0 |
| HBase | 2.2.6 |
| Hive | 3.1.2 |
| Hadoop | 3.1.1 |
| Kafka | 2.11_2.4.1 |
| Zookeeper | 3.6.2 |
| ElasticSearch | 7.12.1 |
架构: x86 (已知arm编译时会报node-sass缺少的问题,git上没有对应arm架构的包)
操作系统:CentOS 7.6
说明:
1、编译不包括其内嵌的HBase和Solr,只编译Atlas本身
2、下面的步骤中有些并非编译过程报错,而是具体使用中或导入hive元数据时报的错,提前修改
步骤:
step1:官网下载Atlas-2.2.0源码,解压
step2:配个国内源。可以在maven的conf目录下settings.xml里配置,也可以在项目的pom.xml里配置,这里贴阿里源做参考
step3:提前从Here下一个nodejs的包放到maven仓库下,目录参考
$MAVEN_REPOSITORY/com/github/eirslett/node/12.16.0/node-12.16.0-linux-x64.tar.gz
注意下下来的包名字叫node-v12.16.0-linux-x64.tar.gz,放在maven仓库里的时候要把里面的v去掉。如果不提前下,编译时候自己下载的速度很慢
step4:主pom.xml里添加下面两个依赖
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet</artifactId>
<version>2.4.0</version>
</dependency>
<dependency>
<groupId>org.restlet.jee</groupId>
<artifactId>org.restlet.ext.servlet</artifactId>
<version>2.4.0</version>
</dependency>
step5:修改./intg/src/main/java/org/apache/atlas/ApplicationProperties.java
注释掉line 365 LOG.info("Setting " + SOLR_WAIT_SEARCHER_CONF + " = " + getBoolean(SOLR_WAIT_SEARCHER_CONF));
这步是因为我们采用es作为查询引擎,solr的相关配置都会注释掉,而这行调用会在导入hive元数据的时候报错
step6:把项目里的jsr311-api改成javax.ws.rs-api (6处,可以直接在项目目录下grep -rn搜), 并修改主pom.xml中jsr.version为2.0.1
这步主要影响六个支持的组件的数据导入及后续,包括
hbase、hive、sqoop、impala、falcon、storm
主要原因:jsr311-api包中javax.ws.rs.core包中没有Link类,而Atlas以HBase作为元数据存储,HBase本身使用的为javax.ws.rs-api包中的core包,其中有Link类,所以调用脚本导入数据时会报以下错误
step7:执行编译命令mvn clean package -DskipTests -Drat.skip=true -Pdist
编译后的包在./distro/target目下,server包即为Atlas部署包,bin包为集成了常用hook(如hbase-hook)的部署包
2、部署阶段
前置条件:
集群内有正常运行且可用的hadoop、hive、hbase、kafka、zk、es,且atlas所在节点必须有hbase及hive的配置文件目录
步骤:
step1:解压atlas-bin包(这里以/data/apps为例,顺便改个名
tar -zxvf apache-atlas-2.2.0-bin.tar.gz -C /data/apps
mv apache-atlas-2.2.0 atlas-2.2.0
step2:解压hook包(这里以hive-hook为例),并拷贝内容到atlas安装目录下
tar -zxvf apache-atlas-2.2.0-hive-hook.tar.gz -C /data/apps/
/usr/bin/cp /data/apps/apache-atlas-hive-hook-2.2.0/* /data/apps/atlas-2.2.0/
step3:修改atlas配置文件(有的配置是已有的,修改即可;有的配置没有,需要加)
atlas-application.properties:
#atlas server config
atlas.rest.address=http://atlas-ip:21000
atlas.server.run.setup.on.start=false
#hbase config
atlas.audit.hbase.tablename=apache_atlas_entiry_audit
atuls.audit.zookeeper.session.timeout.ms=1000
atlas.audit.hbase.zookeeper.quorum=zk地址
atlas.graph.storage.hostname=zk地址
#solr config
#注释掉所有和solr相关的配置项
#es config
atlas.graph.index.search.backend=elasticsearch
atlas.graph.index.search.hostname=es-ip:9200
atlas.graph.index.search.elasticsearch.client-only=true
atlas.graph.index.search.elasticsearch.http.auth.type=basic
atlas.graph.index.search.elasticsearch.http.auth.basic.username=elastic
atlas.graph.index.search.elasticsearch.http.auth.basic.password=Cestc!666
#kafka config
atlas.nofification.embedded=false
atlas.kafka.data=/data/log/kafka
atlas.kafka.zookeeper.connect=zk地址/kafkaCluster
atlas.kafka.bootstrap.servers=kafka地址
#hive config
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=primary
atlas-env.sh:
export HBASE_CONF_DIR=/data/apps/hbase-2.2.6/conf
atlas-log4j.xml:
#去掉org.apache.log4j.DailyRollingFileAppender一块的注释来暴露性能指标
step4:将atlas-application.properties分发到所有hive所在节点的hive/conf目录下
step5:分发hive-hook目录到hive节点下,并修改hive配置文件
ssh hive-node "mkdir -p /data/apps/atlas-2.2.0/hook"
scp -r /data/apps/atlas-2.2.0/hook/hive hive-node:$PWD
hive-site.xml
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
hive-env.sh
export HIVE_AUX_JARS_PATH=/data/apps/atlas-2.2.0/hook/hive
step6:重启Hive
step7:调用atlas启动脚本启动服务
$ATLAS_HONE/bin/atlas_start.py
启动过程如下图所示

该过程会耗时较久,包含index创建、数据的初始化等操作
此时可以跟一下atlas的启动日志,直到日志不再刷新,再lsof或netstat查一下21000是否已经监听了,如已存在,则打开浏览器输入ip:21000登录atlas页面
千万不要相信他提示的Apache Atlas Server started!!!和jps显示的Atlas进程,因为启动脚本超过一定时间后一定会报成功,但此时21000端口还未被监听,服务是不可用的,真正可用还是以21000被成功监听,可以进到Atlas登录页面为准
3、使用阶段
说明:
此处我们以Hive的元数据导入及使用为例,其它数据源使用类似
步骤:
step1:进入atlas安装目录下,执行hook-bin中的import-hive.sh脚本
$ATLAS_HOME/hook-bin/import-hive.sh
执行后如下图

过程中会提示输入atlas用户名和密码,都输入admin即可
成功后会提示

该过程时间视hive现有数据量大小而定
step2:登录Atlas Web页面
打开浏览器输入ip:21000登录atlas页面

登录后如下图

此时可以点击右上角小图标

查看总体数据情况

查看所有hive表

随便点击一个表查看详情



可以清楚地看到这个表的各项信息、字段及血缘图等
我们也可以通过左侧搜索栏检索过滤想要查找的项

以上就是我在生产环境中部署Atlas-2.2.0并集成es、hive的过程,使用时可以点击页面操作,也可通过调用Rest API集成到自己系统里用
本文首发于博客园,作者榆天紫夏,希望对大家有所帮助。原文地址https://www.cnblogs.com/yutianzixia/p/16257916.html。如有遗漏或问题欢迎补充指正
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)的更多相关文章
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14
准备篇: CentOS 7.0系统安装配置图解教程 http://www.osyunwei.com/archives/7829.html 一.配置防火墙,开启80端口.3306端口 CentOS 7. ...
- centos 7.0 编译安装php 7.0.3
php下载页面 http://cn2.php.net/downloads.php 7.0.3多地区下载页面 http://cn2.php.net/get/php-7.0.3.tar.gz/from/a ...
- Valgrind 3.11.0编译安装
Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...
- CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享
一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...
- Redis 3.0 编译安装
Redis 3.0 编译安装 http://www.xuchanggang.cn/archives/991.html
- centos 7.0 编译安装php 5.6.7
编译安装php参考资料 MySQL PHP API http://dev.mysql.com/doc/apis-php/en/index.html nginx + php +mysql 最简单安装 官 ...
- centos 7.0 编译安装mysql 5.6.22 再次总结 成功编译安装~ 越来越熟练了~
查找php.ini文件所在位置 [root@localhost /]# find -name php.ini ./usr/etc/php/etc/php.ini mysql官网的安装说明http:// ...
- hadoop2.1.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
- hadoop2.1.0和hadoop2.2.0编译安装教程
由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...
随机推荐
- 自启动Servlet
自启动servlet也叫自动实例化servlet 特点 该Servlet的实例化过程不依赖于请求,而依赖于容器的启动,当Tomcat启动时就会实例化该Servlet 普通Servlet是在浏览器第一次 ...
- BMZCTF simple_pop
simple_pop 打开题目得到源码 这边是php伪协议的考点,需要去读取useless.php 解码获得源码 <?php class Modifier { protected $var; p ...
- Numpy中重要的广播概念
Numpy中重要的广播概念 广播:简单理解为用于不同大小数组的二元通用函数(加.减.乘等)的一组规则 广播的规则: 如果两个数组的维度数dim不相同,那么小维度数组的形状将会在左边补1 如果shape ...
- transformjs 污染了 DOM?是你不了解它的强大
原文链接:https://github.com/AlloyTeam/AlloyTouch/wiki/Powerful-transformjs 写在前面 上星期在React微信群里,有小伙伴觉得tran ...
- Chrome 已经原生支持截图功能,还可以给节点截图!
昨天 Chrome62 稳定版释出,除了常规修复各种安全问题外,还增加很多功能上的支持,比如说今天要介绍的强大的截图功能. 直接截图 打开开发者工具页面,选择左上角的元素选择按钮(Inspect) W ...
- Vue-cli的打包初体验
前言:我司是一个教育公司,最近要做一个入学诊断的项目,领导让我开始搭建一套基于vue的H5的开发环境.在网上搜集很多的适配方案,最终还是选定flexible方案.选择它的原因很简单: 它的github ...
- java中如果我老是少捕获什么异常,如何处理?
马克-to-win:程序又一次在出现问题的情况下,优雅结束了.上例中蓝色部分是多重捕获catch.马克-to-win:观察上面三个例子,结论就是即使你已经捕获了很多异常,但是假如你还是少捕获了什么异常 ...
- java中Error和Exception用法上有什么区别,Error是怎么回事?
顺便提一句, 和Exception 相对应的,还有Error,Error(错误)表示系统级的错误和程序不必处理的异常,是JRE(java运行环境)的内部错误或者硬件问题,比如,另外 某一处地方的bug ...
- java中方法重载是什么, 实际中到底有什么意义, 用处?请举例
7.3 方法重载(overload) 当几个方法有相同的方法名,但参数个数不同或参数类型不同时,就涉及方法重载 方法重载有什么意义呢?在公司里编程,有时候一个方法名,要用到很多次,而且每次跟每次的参 ...
- pycharm的安装指导教程以及破解
第一步:下载 下载网址:https://www.jetbrains.com/pycharm/download/#section=windows 根据自己的操作系统选择,然后点击download就开始下 ...


