元数据管理atlas导入hive和hbase元数据以及生成血缘

2023-10-24 01:50

本文主要是介绍元数据管理atlas导入hive和hbase元数据以及生成血缘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本文主要讲解导入hive和hbase元数据遇到的坑,以及hive生成列血缘遇到的问题和解决方式。

Atlas版本0.8.4

Hive版本1.2.1

HBase版本1.3.1

1.安装和集成

略略略

服务名称

子服务

HDP-001

HDP-002

HDP-003

HDP-004

HDP-005

HDP-006

HDP-007

HDP-008

HDFS

NameNode

 

 

 

 

 

 

 

DataNode

 

SecondaryNameNode

 

 

 

 

 

 

 

Yarn

ResourceManager

 

 

 

 

 

 

 

NodeManager

 

JobHistoryServer

 

 

 

 

 

 

 

Zookeeper

QuorumPeerMain

 

 

 

 

 

Hive

RunJar

 

 

 

 

 

 

 

Hbase

HMaster

 

 

 

 

 

 

 

HRegionServer

 

Solr

Jar

 

 

 

 

 

Kafka

Kafka

 

 

 

 

 

MySQL

MySQL

 

 

 

 

 

 

 

Atlas

atlas

 

 

 

 

 

 

 

2.导入Hive元数据

1.进入/opt/module/atlas/conf/目录,修改配置文件atlas-application.properties

gw@HDP-001:/data/module/apache-atlas-0.8.4/conf$ vim atlas-application.properties#添加如下配置######### Hive Hook Configs #######atlas.hook.hive.synchronous=falseatlas.hook.hive.numRetries=3atlas.hook.hive.queueSize=10000atlas.cluster.name=primary

2、将atlas-application.properties配置文件加入到atlas-plugin-classloader-1.0.0.jar中

gw@HDP-001:/data/module/apache-atlas-0.8.4$ cd hook/hivegw@HDP-001:/data/module/apache-atlas-0.8.4/hook/hive$ zip -u atlas-plugin-classloader-0.8.4.jar /data/module/apache-atlas-0.8.4/conf/atlas-application.propertiesgw@HDP-001:/data/module/apache-atlas-0.8.4/hook/hive$ cp /data/module/apache-atlas-0.8.4/conf/atlas-application.properties /data/module/hive/conf/

3、在/data/module/hive/conf/hive-site.xml文件中设置Atlas hook

gw@HDP-001:/data/module/hive/conf$ vim hive-site.xml<property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value></property>

4.追加hive插件相关jar

gw@HDP-001:/data/module/hive/conf$ vim hive-env.shexport HIVE_AUX_JARS_PATH=/data/module/apache-atlas-0.8.4/hook/hive/atlas-plugin-classloader-0.8.4.jar,/data/module/apache-atlas-0.8.4/hook/hive/hive-bridge-shim-0.8.4.jar

5、导入Hive元数据

gw@HDP-001:/data/module/apache-atlas-0.8.4$ bin/import-hive.sh

输入用户admin,密码admin

3.导入HBase元数据

1、进入/opt/module/atlas/conf/目录,修改配置文件atlas-application.properties

gw@HDP-001:/data/module/apache-atlas-0.8.4/conf$ vim atlas-application.properties#添加如下配置######### HBase Hook Configs #######atlas.hook.hbase.synchronous=falseatlas.hook.hbase.numRetries=3atlas.hook.hbase.queueSize=10000atlas.cluster.name=primary

2、将atlas-application.properties配置文件加入到atlas-plugin-classloader-1.0.0.jar

gw@HDP-001:/data/module/apache-atlas-0.8.4$ cd hook/hbasegw@HDP-001:/data/module/apache-atlas-0.8.4/hook/hbase$ zip -u atlas-plugin-classloader-0.8.4.jar /data/module/apache-atlas-0.8.4/conf/atlas-application.propertiesgw@HDP-001:/data/module/apache-atlas-0.8.4/hook/hbase$ cp /data/module/apache-atlas-0.8.4/conf/atlas-application.properties /data/module/hbase-1.3.1/conf/

3、在/data/module/hbase-1.3.1/conf/hbase-site.xml文件中设置Atlas hook

gw@HDP-001:/data/module/hbase-1.3.1/conf$ vim hbase-site.xml<property><name>hbase.coprocessor.master.classes</name><value>org.apache.atlas.hbase.hook.HBaseAtlasCoprocessor</value></property>

4、在HBase类路径中链接Atlas hook jars

gw@HDP-001:/data/module/apache-atlas-0.8.4$ ln -s /data/module/apache-atlas-0.8.4/hook/hbase/* /data/module/hbase-1.3.1/lib/

5、导入HBase元数据

gw@HDP-001:/data/module/apache-atlas-0.8.4$ hook-bin/import-hbase.sh

 

         注意:此处有个bug,导入HBase元数据报错,如下,经过查找原因发现是编译的时候没有将jersey- multipart.jar包下载下来,手动去maven仓库下载jersey-multipart-1.19.3.jar,拷贝到HBASE_HOME/lib目录下

         导入成功,能看到kafka topic有数据写入:

4.界面查看

4.1查询Hive库

1、查询Hive库,类型选择hive_db

         属性包含qualifiedName, name, description, owner, clusterName, location, parameters, ownerName

2.查询Hive表,类型选择hive_table

 

         属性包含:qualifiedName, name, description, owner, db, createTime, lastAccessTime, comment, retention, sd, partitionKeys, columns, aliases, parameters, viewOriginalText, viewExpandedText, tableType, temporary

3.查询hive表的列,类型选择hive_column

 

4.查询hive表的存储描述,类型选择hive_storagedesc

5.查询hive进程,类型选择hive_process

6.查看表级血缘关系

选择一个表,点击Lineage,显示血缘关系图

         点击Audits,可显示表修改的时间和详情

         点击Schema,可以看到表字段信息

7.查看列级血缘关系

官网笔记:Column level lineage works with Hive version 1.2.1 after the patch for HIVE-13112 is applied to Hive source

列级血缘需要打补丁才能在hive 1.2.1上使用,下面开始尝试打补丁-编译,下载HIVE-13112.01.patch和apache-hive-1.2.1-src.tar.gz源码包。

gw@HDP-001:/data/software$ tar xf apache-hive-1.2.1-src.tar.gzgw@HDP-001:/data/software$ cd apache-hive-1.2.1-src#上传HIVE-13112.01.patch到/data/software/apache-hive-1.2.1-srcgw@HDP-001:/data/software/apache-hive-1.2.1-src$ patch -p1 < HIVE-13112.01.patchcan't find file to patch at input line 5Perhaps you used the wrong -p or --strip option?The text leading up to this was:--------------------------|diff --git ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java|index 6fca9f7..0fe09aa 100644|--- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java|+++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java--------------------------File to patch:Skip this patch? [y] ySkipping patch.3 out of 3 hunks ignored#使用patch打补丁报错,下面使用-p0参数gw@HDP-001:/data/software/apache-hive-1.2.1-src$ patch -p0 < HIVE-13112.01.patchpatching file ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.javaHunk #1 succeeded at 93 with fuzz 1.Hunk #2 succeeded at 4134 (offset 219 lines).patching file ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.javaHunk #1 succeeded at 6671 (offset -225 lines).Hunk #2 FAILED at 11302.1 out of 2 hunks FAILED -- saving rejects to file ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java.rejpatching file ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.javaHunk #1 succeeded at 79 with fuzz 2 (offset -8 lines).Hunk #2 succeeded at 104 (offset -8 lines).Hunk #3 FAILED at 611.1 out of 3 hunks FAILED -- saving rejects to file ql/src/java/org/apache/hadoop/hive/ql/plan/CreateTableDesc.java.rej

 #显示第3步还是报错,尝试根据HIVE-13112.01.patch文件内容手动修改java文件,将+号内容添加到指定件中,如:

#修改完成后,开始编译hive源码
gw@HDP-001:/data/software/apache-hive-1.2.1-src$ mvn clean package -Phadoop-2 -DskipTests –Pdist

 #编译完成后,会在packaging/target/目录下产生以下几个文件

#备份已安装好的hive/lib目录,将新编译的lib文件包拷贝并替换到已安装好的hive目录中

gw@HDP-001:/data/module/hive$ cp -rp lib/ lib_bakgw@HDP-001:/data/software/apache-hive-1.2.1-src/packaging/target$ cp -rp apache-hive-1.2.1-bin/apache-hive-1.2.1-bin/bin /data/module/hive/lib演示列级血缘关系,hive cli里操作:create table t1 (id int, name string);create table t2 as select id,name from t1;查看t2的id列血缘:

 4.2查询HBase库

 1.查询hbase命名空间,类型选择hbases_namespace

 属性包含:qualifiedName, name, description, owner, clusterName, parameters, createTime, modifiedTime

 2.查询hbase表,类型选择hbase_table

          属性包含:qualifiedName, name, description, owner, namespace, column_families, uri, parameters, createtime, modifiedtime, maxfilesize, isReadOnly, isCompactionEnabled, isNormalizationEnabled, ReplicaPerRegion, Durability

3.查看hbase列族,类型选择hbase_column_family

这篇关于元数据管理atlas导入hive和hbase元数据以及生成血缘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/271908

相关文章

浅析如何使用Swagger生成带权限控制的API文档

《浅析如何使用Swagger生成带权限控制的API文档》当涉及到权限控制时,如何生成既安全又详细的API文档就成了一个关键问题,所以这篇文章小编就来和大家好好聊聊如何用Swagger来生成带有... 目录准备工作配置 Swagger权限控制给 API 加上权限注解查看文档注意事项在咱们的开发工作里,API

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

java如何通过Kerberos认证方式连接hive

《java如何通过Kerberos认证方式连接hive》该文主要介绍了如何在数据源管理功能中适配不同数据源(如MySQL、PostgreSQL和Hive),特别是如何在SpringBoot3框架下通过... 目录Java实现Kerberos认证主要方法依赖示例续期连接hive遇到的问题分析解决方式扩展思考总

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate