Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」在数仓项目中,我们常常会选择Apache Atlas进行数据的治理。本文结合笔者在生产环境中遇到的常见问题及解决方法,整合出完整的Atlas编译、部署及使用过程。

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.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类,所以调用脚本导入数据时会报以下错误
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

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

启动过程如下图所示
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

该过程会耗时较久,包含index创建、数据的初始化等操作
此时可以跟一下atlas的启动日志,直到日志不再刷新,再lsof或netstat查一下21000是否已经监听了,如已存在,则打开浏览器输入ip:21000登录atlas页面

千万不要相信他提示的Apache Atlas Server started!!!和jps显示的Atlas进程,因为启动脚本超过一定时间后一定会报成功,但此时21000端口还未被监听,服务是不可用的,真正可用还是以21000被成功监听,可以进到Atlas登录页面为准
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

3、使用阶段

说明:
此处我们以Hive的元数据导入及使用为例,其它数据源使用类似

步骤:
step1:进入atlas安装目录下,执行hook-bin中的import-hive.sh脚本

$ATLAS_HOME/hook-bin/import-hive.sh 

执行后如下图
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

过程中会提示输入atlas用户名和密码,都输入admin即可
成功后会提示
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

该过程时间视hive现有数据量大小而定

step2:登录Atlas Web页面
打开浏览器输入ip:21000登录atlas页面
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

登录后如下图
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

此时可以点击右上角小图标
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

查看总体数据情况
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

查看所有hive表
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

随便点击一个表查看详情
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

可以清楚地看到这个表的各项信息、字段及血缘图等

我们也可以通过左侧搜索栏检索过滤想要查找的项
Atlas2.2.0编译、安装及使用(集成ElasticSearch,导入Hive数据)「终于解决」

以上就是我在生产环境中部署Atlas-2.2.0并集成es、hive的过程,使用时可以点击页面操作,也可通过调用Rest API集成到自己系统里用

本文首发于思创斯聊编程,作者榆天紫夏,希望对大家有所帮助。原文地址https://www.cnblogs.com/yutianzixia/p/16257916.html。如有遗漏或问题欢迎补充指正

原文地址:https://www.cnblogs.com/yutianzixia/archive/2022/05/11/16257916.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5275.html

(0)
上一篇 2023-05-16
下一篇 2023-05-16

相关推荐

  • Python的时间处理模块:让时间操作更便捷

    Python的时间处理模块:让时间操作更便捷在Python中,时间可以表示为字符串、元组或日期对象。其中,最常用的时间格式是字符串格式,例如:

    2024-02-02
    56
  • 清明节日放送:TcaplusDB持续为您保驾护航「建议收藏」

    清明节日放送:TcaplusDB持续为您保驾护航「建议收藏」清明将至,又到一年休闲踏青,祭拜祖先的时机。 清明假期期间,TcaplusDB不停歇,我们将一如既往地守护您的数据,继续做您最坚实的后盾。 在未来,TcaplusDB还将以国产键值型数据库领航者的身…

    2023-04-11
    115
  • rm删除了文件除了跑路还能怎么办「建议收藏」

    rm删除了文件除了跑路还能怎么办「建议收藏」rm删除了文件除了跑路还能怎么办 [toc] 前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵。…

    2023-03-03
    104
  • TDSQL-A与CK的对比[通俗易懂]

    TDSQL-A与CK的对比[通俗易懂]CK介绍 CK是目前社区里面比较热门的,应用场景也比较广泛。 首先,在架构上,集群内划分为多个分片,通过分片的线性扩展能力,支持海量数据的分布式存储计算,每个分片内包含一定数量的节点Node,即进程,

    2023-04-21
    120
  • 提高Python程序执行效率的技巧之多线程应用

    提高Python程序执行效率的技巧之多线程应用随着数据量的不断增加,程序算法的优化已经难以满足对程序运行速度的要求。因此,使用并发编程技术提高程序执行效率已经成为了不可或缺的重要手段。Python中提供了多线程库Thread,为我们实现多线程编程提供了便利。在本文中,我们将介绍如何使用Python的多线程库实现多线程编程,提高程序执行效率。

    2024-03-25
    29
  • 掌握mysql_直击灵魂的拷问

    掌握mysql_直击灵魂的拷问作者 | Jeskson 来源 | 达达前端小酒馆 MySQL管理,数据库管理和数据表管理,用户管理。 初始化数据库,创建数据库,查看数据库,删除数据库。 创建数据表,查看数据表,修改数据表,删除数…

    2022-12-25
    108
  • 猪齿鱼 Choerodon 的数据初始化设计解析「终于解决」

    猪齿鱼 Choerodon 的数据初始化设计解析「终于解决」数智化效能平台猪齿鱼Choerodon 作为一个微服务框架,需要解决微服务数据初始化本身具有的问题和复杂性,同时也需要满足框架本身特有的数据初始化需求,下面为大家介绍一下这方面的设计思想和实现。

    2023-05-05
    102
  • MySQL必知必会–第二十二章~第二十三章「终于解决」

    MySQL必知必会–第二十二章~第二十三章「终于解决」第二十二章–视图 1.视图:是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。视图仅仅是用来查看存储在别处的数据的一种设施,视图本身不包含数据 例如:select cust_n…

    2023-02-16
    102

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注