前文:通过使用Atlas绑定Hive,可以跨项目在整个集群上看到所有的数据链路,以备下线数据资产时,能够预防下游数据产出故障,或数据质量出现问题时快速排查及定位。

目录

一、应用

1.1 执行SQL

1.2 手写的数据地图

1.3 atlas血缘分析

1.4 打标签

1.4.1 CLASSIFICATION分类

1.4.2 GLOSSARY词汇表

1.5 字段搜索

1.5.1查看表字段

1.5.2 追踪字段关系

二、安装

2.1 编译安装

2.1.1 下载源码

2.1.2 组件修改版本

2.1.3 修改报错代码

2.1.4 编译

2.1.5 编译包

2.1.6 复制包

2.1.7 解压

2.2 部署

2.2.1 修改配置

2.2.2 配置环境变量

三、运行

3.1 启动

3.2 访问

四、配置 HOOK

4.1 Hive Hook

4.1.1 设置Atlas配置目录

4.1.2 设置环境变量

4.1.3 把压缩包上传

4.1.4 解压包

4.1.5 添加Hive的第三方依赖包

4.1.6 导入Hive数据

4.1.7  压缩配置文件到 Jar

4.1.8 软连接 Atlas hook 文件

4.1.9 修改hive-site.xml,配置Hive Hook

4.1.10 重启Hive

4.2 Sqoop Hook

4.2.1 设置Atlas配置目录

4.2.2 设置环境变量

4.2.3 把压缩包上传

4.2.4 解压包

4.2.5  压缩配置文件到 Jar

4.2.6 软连接 Sqoop hook 文件

4.2.7 修改sqoop-site.xml,配置Sqoop Hook


一、应用

1.1 执行SQL

--创建临时表(取出最新一条访问记录)
DROP TABLE IF EXISTS tmp.tmp_ng;
CREATE TABLE tmp.tmp_ng STORED AS parquet AS
SELECT userid,pageid,pagetype,os,terminal_type,pagetime
FROM (SELECT uid userid,CAST(pageid AS INT) pageid,pagetype,os,terminal_type,pagetime,row_number() OVER(PARTITION BY uid,pageidORDER BY pagetime DESC) rkFROM dw.dw_nginxlogWHERE dt = '2020-11-02') t1
WHERE rk = 1 --用户访问各个页面的及设备
;
--统计三个页面的访问及设备
INSERT OVERWRITE TABLE dwd.dwd_hive_fact_nginx_visit_ext_dt PARTITION(dt = '2020-11-03')
SELECT zbid,userid,os,terminal_type
FROM (SELECT zbid,userid,os,terminal_type,row_number() OVER(PARTITION BY zbid,useridORDER BY pagetime DESC) rkFROM (SELECT tp.zbid,t1.userid,t1.os,t1.terminal_type,t1.pagetimeFROM (SELECT userid,pageid,os,terminal_type,pagetimeFROM tmp.tmp_ngWHERE pagetype = 1 --话题类型) t1LEFT JOIN (SELECT zbid,topicidFROM dwd.dwd_minisns_zbtopics_dsWHERE dt = '2020-11-02') tp --快照表ON t1.pageid = tp.topicidUNION ALLSELECT tp.zbid,t2.userid,t2.os,t2.terminal_type,t2.pagetimeFROM (SELECT userid,pageid,os,terminal_type,pagetimeFROM tmp.tmp_ngWHERE pagetype = 2 --频道类型) t2LEFT JOIN dw.dw_zbchannel tp ON t2.pageid = tp.channelid) t3) t4
WHERE rk = 1;

1.2 手写的数据地图

1.3 atlas血缘分析

说明:通过对比,Atlas能够更加准确地解析所有脚本SQL语句,在全局角度能够看到上下游关系,不过自己手动维护的好处的是能够更加方便地迭代维护。可以通过自己对表的理解划分到不同的域和维度,方便维护。

1.4 打标签

1.4.1 CLASSIFICATION分类

说明:按自己项目的需求划分不同得维度

1.4.2 GLOSSARY词汇表

说明:一个数据仓库项目有很多域,域下面还有很多层次,可以按自己项目需求规划。

1.5 字段搜索

1.5.1查看表字段

1.5.2 追踪字段关系

说明:强大地血缘关系可以直接查看出整条字段的数据链路。

二、安装

2.1 编译安装

2.1.1 下载源码

 git clone --branch branch-2.0 https://gitee.com/mirrors/apache-atlas.git apache-atlas_branch-2.0

2.1.2 组件修改版本

        <hadoop.version>2.8.5</hadoop.version><hbase.version>1.4.9</hbase.version><kafka.version>2.0.0</kafka.version><hive.version>2.3.5</hive.version><zookeeper.version>3.4.6</zookeeper.version><falcon.version>0.8</falcon.version><sqoop.version>1.4.6.2.3.99.0-195</sqoop.version><storm.version>1.2.0</storm.version><elasticsearch.version>7.1.0</elasticsearch.version><jackson.version>2.6.5</jackson.version><jackson.databind.version>2.6.5</jackson.databind.version><commons-conf.version>1.6</commons-conf.version>

注意:

去除 pom.xml 的 hbase-zookeeper 依赖

2.1.3 修改报错代码

  • hbase2.X --> hbase1.X
ColumnFamilyDescriptor --> HColumnDescriptor
TableDescriptor --> HTableDescriptor

2.1.4 编译

export MAVEN_OPTS="-Xms2g -Xmx2g"
mvn clean package -Pdist -Dmaven.test.skip=true -Dmaven.javadoc.skip=true -Dmaven.source.skip=true

2.1.5 编译包

distro/target/apache-atlas-{project.version}-bin.tar.gz
distro/target/apache-atlas-{project.version}-falcon-hook.tar.gz
distro/target/apache-atlas-{project.version}-hbase-hook.tar.gz
distro/target/apache-atlas-{project.version}-hive-hook.gz
distro/target/apache-atlas-{project.version}-impala-hook.gz
distro/target/apache-atlas-{project.version}-kafka-hook.gz
distro/target/apache-atlas-{project.version}-server.tar.gz
distro/target/apache-atlas-{project.version}-sources.tar.gz
distro/target/apache-atlas-{project.version}-sqoop-hook.tar.gz
distro/target/apache-atlas-{project.version}-storm-hook.tar.gz

2.1.6 复制包

mkdir -p /opt/package/atlas/

安装 nc

yum install nc -ync -l 33880 > /opt/package/atlas/apache-atlas-2.2.0-SNAPSHOT-bin.tar.gznc 10.0.11.10 33880 < /data/build/apache-atlas/distro/target/apache-atlas-2.2.0-SNAPSHOT-bin.tar.gz

2.1.7 解压

mkdir -p /opt/service/atlas/
rm -rf /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT
tar -zxf /opt/package/atlas/apache-atlas-2.2.0-SNAPSHOT-bin.tar.gz -C /opt/service/atlas/

2.2 部署

2.2.1 修改配置

进入conf 目录

vim atlas-env.sh

export JAVA_HOME=/usr/local/jdkexport HBASE_CONF_DIR=/usr/local/service/hbase/confexport ATLAS_SERVER_HEAP="-Xms2048m -Xmx15360m -XX:MaxNewSize=5120m -XX:MetaspaceSize=100M -XX:MaxMetaspaceSize=512m"

vim atlas-application.properties

# hbase 配置
atlas.graph.storage.hbase.table=apache_atlas_janus_testatlas.graph.storage.hostname=10.0.11.6# 使用 elasticsearch 存储索引
atlas.graph.index.search.backend=elasticsearch
atlas.graph.index.search.index-name=test_janusgraph# elasticsearch 配置
# elasticsearch 地址
atlas.graph.index.search.hostname=10.0.12.47,10.0.12.47:9201,10.0.12.47:9202
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=Qaz@4321# kafak 配置
atlas.notification.embedded=false
# atlas.kafka.data=${sys:atlas.home}/data/kafka
atlas.kafka.zookeeper.connect=10.0.11.6:2181
atlas.kafka.bootstrap.servers=10.0.12.95:9092
atlas.kafka.zookeeper.session.timeout.ms=400
atlas.kafka.zookeeper.connection.timeout.ms=200
atlas.kafka.zookeeper.sync.time.ms=20
atlas.kafka.auto.commit.interval.ms=1000
atlas.kafka.hook.group.id=atlasatlas.kafka.enable.auto.commit=false
atlas.kafka.auto.offset.reset=earliest
atlas.kafka.session.timeout.ms=30000
atlas.kafka.offsets.topic.replication.factor=2
atlas.kafka.poll.timeout.ms=1000atlas.notification.hook.topic.name=ATLAS_HOOK_TEST
atlas.notification.entities.topic.name=ATLAS_ENTITIES_TESTatlas.notification.hook.consumer.topic.names=ATLAS_HOOK_TEST
atlas.notification.entities.consumer.topic.names=ATLAS_ENTITIES_TESTatlas.notification.create.topics=false
atlas.notification.replicas=2
atlas.notification.topics=ATLAS_HOOK_TEST,ATLAS_ENTITIES_TEST
atlas.notification.log.failed.messages=true
atlas.notification.consumer.retry.interval=500
atlas.notification.hook.retry.interval=1000# 服务地址
atlas.rest.address=http://10.0.11.10:21000# hbase zookeeper地址
atlas.audit.hbase.tablename=apache_atlas_entity_audit_test
atlas.audit.hbase.zookeeper.quorum=10.0.11.6
atlas.audit.hbase.zookeeper.property.clientPort=2181atlas.ui.default.version=v2
vim atlas-log4j.xml
    <appender name="perf_appender" class="org.apache.log4j.DailyRollingFileAppender"><param name="file" value="${atlas.log.dir}/atlas_perf.log" /><param name="datePattern" value="'.'yyyy-MM-dd" /><param name="append" value="true" /><layout class="org.apache.log4j.PatternLayout"><param name="ConversionPattern" value="%d|%t|%m%n" /></layout></appender><logger name="org.apache.atlas.perf" additivity="false"><level value="debug" /><appender-ref ref="perf_appender" /></logger>

2.2.2 配置环境变量

vim /etc/profile

export ATLAS_HOME=/opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT
export PATH=$PATH:$ATLAS_HOME/binexport JAVA_TOOL_OPTIONS="-Datlas.conf=/opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/conf"

source /etc/profile

三、运行

3.1 启动

atlas_start.py

说明:第一次启动,开始初始化安装,需要大约一个小时

3.2 访问

http://localhost:21000/

用户名: admin

密码: admin

四、配置 HOOK

4.1 Hive Hook

说明:每个Hive节点都配置

4.1.1 设置Atlas配置目录

mkdir -p /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/conf把安装Atlas节点 atlas-application.properties , atlas-env.sh , atlas-log4j.xml  拷贝放在conf目录下

4.1.2 设置环境变量

vim /etc/profileexport ATLAS_HOME=/opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT
export JAVA_TOOL_OPTIONS="-Datlas.conf=/opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/conf"source /etc/profile

4.1.3 把压缩包上传

mkdir -p /opt/package/atlas/
#把压缩包上传到 /opt/package/atlas/  目录下

安装nc

yum install nc -y
nc -l 33880 > /opt/package/atlas/apache-atlas-2.2.0-SNAPSHOT-hive-hook.tar.gz
nc 10.0.12.114 33880 < /data/build/apache-atlas/distro/target/apache-atlas-2.2.0-SNAPSHOT-hive-hook.tar.gz

4.1.4 解压包

mkdir -p /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOTunalias rmrm -rf /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-hive-hook-2.2.0-SNAPSHOTtar -zxf /opt/package/atlas/apache-atlas-2.2.0-SNAPSHOT-hive-hook.tar.gz -C /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT

4.1.5 添加Hive的第三方依赖包

第三方依赖包目录:  $HIVE_HOME/auxlib

4.1.5.1  elasticsearch-hive 依赖:

elasticsearch-hadoop-hive-7.1.0.jar

移除 elasticsearch-hadoop.jar

4.1.5.2  Hive-kudu 依赖:

hive-kudu-handler-1.10.0.jar

4.1.6 导入Hive数据

cd /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-hive-hook-2.2.0-SNAPSHOT./hook-bin/import-hive.sh

说明:输入用户名和密码,大约两个小时就导完,视表的量决定

4.1.7  压缩配置文件到 Jar

cd $ATLAS_HOME/conf/zip -u $ATLAS_HOME/apache-atlas-hive-hook-2.2.0-SNAPSHOT/hook/hive/atlas-plugin-classloader-2.2.0-SNAPSHOT.jar    atlas-application.properties

4.1.8 软连接 Atlas hook 文件

ln -s /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-hive-hook-2.2.0-SNAPSHOT/hook/hive/atlas-plugin-classloader-2.2.0-SNAPSHOT.jar /usr/local/service/hive/lib/atlas-plugin-classloader-2.2.0-SNAPSHOT.jarln -s /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-hive-hook-2.2.0-SNAPSHOT/hook/hive/hive-bridge-shim-2.2.0-SNAPSHOT.jar /usr/local/service/hive/lib/atlas-hive-bridge-shim-2.2.0-SNAPSHOT.jarln -s /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-hive-hook-2.2.0-SNAPSHOT/hook/hive/atlas-hive-plugin-impl /usr/local/service/hive/lib/atlas-hive-plugin-impl

4.1.9 修改hive-site.xml,配置Hive Hook

<property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value>
</property><property><name>hive.metastore.event.listeners</name><value>org.apache.atlas.hive.hook.HiveMetastoreHook</value>
</property>

4.1.10 重启Hive

4.2 Sqoop Hook

说明:每个Hive节点都配置

4.2.1 设置Atlas配置目录

mkdir -p /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/conf
#把安装Atlas节点 atlas-application.properties , atlas-env.sh , atlas-log4j.xml  拷贝放在conf目录下

4.2.2 设置环境变量

vim /etc/profileexport ATLAS_HOME=/opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT
export JAVA_TOOL_OPTIONS="-Datlas.conf=/opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/conf"source /etc/profile

4.2.3 把压缩包上传

mkdir -p /opt/package/atlas/#把压缩包上传到 /opt/package/atlas/  目录下

安装nc

yum install nc -y
nc -l 33880 > /opt/package/atlas/apache-atlas-2.2.0-SNAPSHOT-sqoop-hook.tar.gz
nc 10.0.12.114 33880 < /data/build/apache-atlas/distro/target/apache-atlas-2.2.0-SNAPSHOT-sqoop-hook.tar.gz

4.2.4 解压包

mkdir -p /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOTunalias rmrm -rf /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-sqoop-hook-2.2.0-SNAPSHOTtar -zxf /opt/package/atlas/apache-atlas-2.2.0-SNAPSHOT-sqoop-hook.tar.gz  -C /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT

4.2.5  压缩配置文件到 Jar

cd $ATLAS_HOME/conf/zip -u $ATLAS_HOME/apache-atlas-sqoop-hook-2.2.0-SNAPSHOT/hook/sqoop/atlas-plugin-classloader-2.2.0-SNAPSHOT.jar    atlas-application.properties

4.2.6 软连接 Sqoop hook 文件

ln -s /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-sqoop-hook-2.2.0-SNAPSHOT/hook/sqoop/atlas-plugin-classloader-2.2.0-SNAPSHOT.jar /usr/local/service/sqoop/lib/atlas-plugin-classloader-2.2.0-SNAPSHOT.jarln -s /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-sqoop-hook-2.2.0-SNAPSHOT/hook/sqoop/sqoop-bridge-shim-2.2.0-SNAPSHOT.jar /usr/local/service/sqoop/lib/atlas-sqoop-bridge-shim-2.2.0-SNAPSHOT.jarln -s /opt/service/atlas/apache-atlas-2.2.0-SNAPSHOT/apache-atlas-sqoop-hook-2.2.0-SNAPSHOT/hook/sqoop/atlas-sqoop-plugin-impl /usr/local/service/sqoop/lib/atlas-sqoop-plugin-impl

4.2.7 修改sqoop-site.xml,配置Sqoop Hook

     <property><name>sqoop.job.data.publish.class</name><value>org.apache.atlas.sqoop.hook.SqoopHook</value></property>

Atlas的使用案例相关推荐

  1. apache atlas 案例_Apache Atlas

    Atlas Core •Type System:Atlas 允许用户为他们想要管理的元数据对象定义一个模型.该模型由称为"类型" 的定义组成."类型" (类)的 ...

  2. apache atlas 案例_元数据治理 Apache Atlas

    Apache Atlas是Hadoop社区为解决Hadoop生态系统的元数据治理问题而产生的开源项目,它为Hadoop集群提供了包括 数据分类.集中策略引擎.数据血缘.安全和生命周期管理在内的元数据治 ...

  3. apache atlas 案例_大数据元数据开源解决方案apache atlas

    [实例简介] 大数据元数据开源解决方案apache atlas,提供数据治理,元数据管理等功能 [实例截图] [核心代码] apache-atlas-1.1.0-sources.tar └── apa ...

  4. Atlas血缘分析在数据仓库中的实战案例

    目录 一.应用 1.1 执行SQL 1.2 手写的数据地图 1.3 atlas血缘分析 1.4 打标签 1.4.1 CLASSIFICATION分类 1.4.2 GLOSSARY词汇表 1.5 字段搜 ...

  5. Atlas机器人再秀逆天操作!波士顿动力科研or商业化,将何去何从?

    来源:物联网智库 在众多机器人相关的技术公司里,波士顿动力的核心特点在于,他们始终将「仿生」看作机器人设计的最高宗旨.其创始人Raibert 也称自己的目的是建造一种能和动物以及人一模一样的,完成一切 ...

  6. Dataset之HiggsBoson:Higgs Boson(Kaggle竞赛)数据集的简介、下载、案例应用之详细攻略

    Dataset之HiggsBoson:Higgs Boson(Kaggle竞赛)数据集的简介.下载.案例应用之详细攻略 目录 Higgs Boson比赛简介 Higgs Boson数据集的下载 Hig ...

  7. OpenCL用于计算机领域的13个经典案例

    摘要:当使用加速器和OpenCL时,哪种类型的算法更加快速?来自弗吉尼亚理工大学的Wu Feng教授和他的团队例举了一份算法列表,分享了OpenCL常被用于计算机领域的13个经典案例. 哪种算法可以最 ...

  8. 大型网站电商网站架构案例和技术架构的示例

    大型网站架构是一个系列文档,欢迎大家关注.本次分享主题:电商网站架构案例.从电商网站的需求,到单机架构,逐步演变为常用的,可供参考的分布式架构的原型.除具备功能需求外,还具备一定的高性能,高可用,可伸 ...

  9. 解救开发者!鲲鹏、ModelArts、Atlas、5G MEC硬核来袭……

    这是一个充满机遇与挑战的时代,人工智能.智能计算.边缘计算--各种各样的创新技术在数字化浪潮中快速生根发芽,面对火热的前沿科技,众多企业与开发者,一面虎视眈眈想要登上前沿科技的快车,一面又不得不面对现 ...

最新文章

  1. win10安装虚拟机提示主IP地址显示网络信息不可用
  2. 我的个人博客搭建记录
  3. 用apktool批量反编译apk文件
  4. 高响应比优先算法代码_以梦为码丨让每一行代码都充满温情
  5. 【拓扑排序】【堆】CH Round #57 - Story of the OI Class 查错
  6. 白话Elasticsearch46-深入聚合数据分析之Cardinality Aggs-cardinality去重算法以及每月销售品牌数量统计
  7. docker-compose部署kafka
  8. dubbo-admin构建报错
  9. TypeScript Never 与 Unknown
  10. Vue 3.0 Beta
  11. eclipse 安装和使用AmaterasUML
  12. 类的反射实例(servlet的抽取)
  13. 黑客入侵电脑网络四大步骤全面曝光
  14. zigbee学习之JN5169 ADC外设
  15. 识别图片验证码内容 -- ddddocr识别
  16. PRCV2021 第四届中国模式识别与计算机视觉大会开放注册
  17. 豆瓣高分电影信息分析(数据分析)
  18. 【亲测有效】解决电脑不能复制粘贴的几种方法
  19. 从零搭建uniapp app,适合小白,傻瓜化,页面搭积木可视化创建
  20. Presto常用语句整理

热门文章

  1. 通过PC获取Tello无人机视频图像和发送控制命令
  2. 赶紧注册你的@live.xx邮箱吧!
  3. 最新阿里、腾讯、华为、字节跳动等大厂的薪资和职级对比
  4. 目前大数据在金融行业的应用主要体现在哪些方面?
  5. 地球半径约多少米多少千米
  6. 真实生活的记录:我三年的外企生涯(1)出处:天涯虚拟社区
  7. 2021各显卡满载功耗天梯图 显卡能耗比天梯图
  8. 手把手教你做多重线性逐步回归
  9. BiDi 算法详解及应用(一)
  10. python槽怎么用_PyQt4信号与槽详解