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.xmljsr.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数据)的更多相关文章

  1. 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. ...

  2. 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 ...

  3. Valgrind 3.11.0编译安装

    Valgrind 3.11.0编译安装 Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind遵守GNU通用公共许可证条款,是一款自由软件. 到3.3.0版本为 ...

  4. CentOS 7.0编译安装Nginx1.6.0+MySQL5.6.19+PHP5.5.14方法分享

    一.配置防火墙,开启80端口.3306端口 CentOS 7.0默认使用的是firewall作为防火墙,这里改为iptables防火墙. 1.关闭firewall: systemctl stop fi ...

  5. Redis 3.0 编译安装

    Redis 3.0 编译安装 http://www.xuchanggang.cn/archives/991.html

  6. centos 7.0 编译安装php 5.6.7

    编译安装php参考资料 MySQL PHP API http://dev.mysql.com/doc/apis-php/en/index.html nginx + php +mysql 最简单安装 官 ...

  7. centos 7.0 编译安装mysql 5.6.22 再次总结 成功编译安装~ 越来越熟练了~

    查找php.ini文件所在位置 [root@localhost /]# find -name php.ini ./usr/etc/php/etc/php.ini mysql官网的安装说明http:// ...

  8. hadoop2.1.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

  9. hadoop2.1.0和hadoop2.2.0编译安装教程

    由于现在hadoop2.0还处于beta版本,在apache官方网站上发布的beta版本中只有编译好的32bit可用,如果你直接下载安装在64bit的linux系统的机器上,运行会报一个INFO ut ...

随机推荐

  1. Flink调优

      第1章 资源配置调优 Flink性能调优的第一步,就是为任务分配合适的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略. ...

  2. python学习笔记(七)——内置函数

    builtins.py模块,是python的内建模块,在运行时会自动导入该模块.在该模块中定义了很多我们常用的内置函数,比如print,input 等. 在 builtins.py 模块中给出如下注释 ...

  3. C++ | 虚函数表内存布局

    虚表指针 虚函数有个特点.存在虚函数的类会在类的数据成员中生成一个虚函数指针 vfptr,而vfptr 指向了一张表(简称,虚表).正是由于虚函数的这个特性,C++的多态才有了发生的可能. 其中虚函数 ...

  4. 位运算符 按位与 &——整数n的二进制数中1的个数

    整数n的二进制数中1的个数 编写一个函数,输入是一个整数,返回其二进制表达式中数字位数为 '1' 的个数 代码如下: int func(int n)//char ch { int count = 0; ...

  5. Matlab解析LQR与MPC的关系

    mathworks社区中的这个资料还是值得一说的. 1 openExample('mpc/mpccustomqp') 我们从几个角度来解析两者关系,简单的说就是MPC是带了约束的LQR. 在陈虹模型预 ...

  6. 《CSS世界》笔记二:盒模型四大家族

    上一篇:<CSS世界>笔记一:流/元素/尺寸下一篇:<CSS世界>笔记三:内联元素与对齐 写在前面 在读<CSS世界>第四章之前,粗浅的认为盒模型无非是margin ...

  7. 小程序web开发框架-weweb介绍

    weweb是一个兼容小程序语法的前端框架,你可以用小程序的写法,来写web单面应用.如果你已经有小程序了,通过它你可以将你的小程序运行在浏览器中.在小程序大行其道的今天,它可以让你的小程序代码得到最大 ...

  8. Android开发小经验

    1. TextView中的getTextSize返回值是以像素(px)为单位的, 而setTextSize()是以sp为单位的. 所以如果直接用返回的值来设置会出错,解决办法是 用setTextSiz ...

  9. Androd点击一个选框取消其他选框

    说明: 我做的体温填报系统需要在填报体温时勾选有无特殊情况 当勾选'无'时需要将用户勾选的其他选框取消 当勾选其他选框时需要将'无'这个选框取消 效果: 代码: addTem.xml <Line ...

  10. 小程序中引入iconfont

    注释:本人喜欢 font class,  你们可以依葫芦画瓢unicode和 symbol,,下面是 font class   演示: 1.选择好图标,然后: font class 2.步骤二: 复制 ...