Apache atlas 在CDH集群下的搭建问题及措施

     从apache atlas 下载指定版本的源码,通过查看源码,特别是hive/hbase bridge模块,发现其相关依赖为原生的hbase client客户端,直接编译源码,则无法在hbase同步元数据,并且上述模块存在缺少jar的情况。综合同步CDH5.7.1 hive和hbase经验,总结以下修改步骤:

    (1) import-hive.sh 和import-hbase.sh 

    路径 :addons\hbase-bridge\src\bin ,addons\hive-bridge\src\bin

"${JAVA_BIN}" ${JAVA_PROPERTIES} -Datlas.conf=/etc/hvie/conf  -cp "${CP}" org.apache.atlas.hive.bridge.HiveMetaStoreBridge $IMPORT_ARGS

   添加atlas.conf属性,执行atlas-application.properties所在路径,执行import-hive.sh 和import-hbase.sh时会出现找不到application location的问题。

org.apache.atlas.AtlasException: Failed to load application properties
 at org.apache.atlas.ApplicationProperties.get(ApplicationProperties.java:109)
 at org.apache.atlas.ApplicationProperties.get(ApplicationProperties.java:71)
 at org.apache.atlas.hive.bridge.HiveMetaStoreBridge.main(HiveMetaStoreBridge.java:119)
Caused by: org.apache.commons.configuration.ConfigurationException: Cannot locate configuration source null
 at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:259)
 at org.apache.commons.configuration.AbstractFileConfiguration.load(AbstractFileConfiguration.java:238)
 at org.apache.commons.configuration.AbstractFileConfiguration.<init>(AbstractFileConfiguration.java:197)
 at org.apache.commons.configuration.PropertiesConfiguration.<init>(PropertiesConfiguration.java:284)
 at org.apache.atlas.ApplicationProperties.<init>(ApplicationProperties.java:54)
 at org.apache.atlas.ApplicationProperties.get(ApplicationProperties.java:100)

 (2)增加相关依赖

    在  hbase-bridge和hive-bridge的pom.xml中增加以下依赖。

                                        <dependency>
                                            <groupId>com.fasterxml.jackson.jaxrs</groupId>
                                            <artifactId>jackson-jaxrs-json-provider</artifactId>
                                            <version>${jackson.version}</version>
                                        </dependency>
                                        <dependency>
                                            <groupId>com.fasterxml.jackson.module</groupId>
                                            <artifactId>jackson-module-jaxb-annotations</artifactId>
                                            <version>${jackson.version}</version>
                                        </dependency>
                                        <dependency>
                                            <groupId>com.fasterxml.jackson.jaxrs</groupId>
                                            <artifactId>jackson-jaxrs-base</artifactId>
                                            <version>${jackson.version}</version>
                                        </dependency>

  如果不添加上述相关依赖,则会出现找不到相关方法的错误,如

Exception in thread "main" java.lang.NoClassDefFoundError: com/fasterxml/jackson/jaxrs/json/JacksonJaxbJsonProvider
 at org.apache.atlas.AtlasBaseClient.getClient(AtlasBaseClient.java:253)
 at org.apache.atlas.AtlasBaseClient.initializeState(AtlasBaseClient.java:425)
 at org.apache.atlas.AtlasBaseClient.initializeState(AtlasBaseClient.java:420)
 at org.apache.atlas.AtlasBaseClient.<init>(AtlasBaseClient.java:115)
 at org.apache.atlas.AtlasClientV2.<init>(AtlasClientV2.java:77)
 at org.apache.atlas.hive.bridge.HiveMetaStoreBridge.main(HiveMetaStoreBridge.java:131)
Caused by: java.lang.ClassNotFoundException: com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider
 at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
 at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
 at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
 ... 6 more

 (3) 修改hbase bridge 调用接口

    hbase bridge 采用的hbase-client原生jar,而在CDH中采用的jar包为hbase-client-1.2.0-cdh5.7.1.jar,由于CDK对其中的方法进行了重写,需进行修改。

   修改文件:HBaseAtlasHook.java HBaseBridge.java
  将 getKeepDeletedCells 变为getKeepDeletedCellsAsEnum() 。

 并删除 hbase bridge模块pom.xml中hbase-common的依赖,添加hbase-client-1.2.0-cdh5.7.1.jar  相关依赖,hbase-client-1.2.0-cdh5.7.1.jar 引用的是hbase-common-1.2.0-cdh5.7.1.jar,而非原生 hbase-common-1.2.0.jar, 未删除会出现以下错误。

java.io.IOException: java.lang.reflect.InvocationTargetException
 at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:240)
 at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:218)
 at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:119)
 at org.apache.hadoop.hbase.client.HBaseAdmin.checkHBaseAvailable(HBaseAdmin.java:3006)
 at org.apache.atlas.hbase.bridge.HBaseBridge.<init>(HBaseBridge.java:202)
 at org.apache.atlas.hbase.bridge.HBaseBridge.main(HBaseBridge.java:148)
Caused by: java.lang.reflect.InvocationTargetException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
 at org.apache.hadoop.hbase.client.ConnectionFactory.createConnection(ConnectionFactory.java:238)
 ... 5 more
Caused by: java.lang.NoSuchFieldError: HBASE_CLIENT_PREFETCH
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:713)
 at org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.<init>(ConnectionManager.java:652)
 ... 10 more

经过上述修改,即可重新编译atlas,进行部署和同步。

Apache Atlas是一个开源的数据治理和元数据管理平台,用于支持数据跟踪、数据流程管控、数据信任和数据合规性等任务。它提供了一套完整的数据治理解决方案,包括数据发现、数据分类、数据关系建模和元数据管理等功能。 CDH(Cloudera Distribution for Hadoop)是由Cloudera公司提供的一种分布式的Hadoop生态系统。CDH整合了许多Apache开源项目,如Hadoop、Hive、HBase等,以及Cloudera自己的一些增强功能,提供了一个完整的Hadoop解决方案。CDH可用于大规模数据处理和分析,并具备高可靠性、高可扩展性和高性能等特性。 Apache Atlas和CDH是可以进行整合使用的。Apache Atlas可以通过集成CDH,实现对CDH平台上的数据进行元数据管理和数据治理。具体来说,Apache Atlas可以通过自动识别CDH平台上的各种数据源,并将其元数据信息进行抓取和管理。同时,Apache Atlas可以通过数据分类和关系建模等功能,对这些数据进行进一步的理解和分析,帮助用户更好地管理和利用数据。 例如,Apache Atlas可以通过集成CDH中的Hive,自动发现并抓取Hive表的元数据信息,并提供搜索和浏览功能,方便用户查找和访问这些表。此外,Apache Atlas还支持定义和管理数据标签、数据血缘关系等功能,帮助用户更好地理解和追踪数据的来源和去向。 总之,Apache Atlas和CDH的整合可以帮助用户更好地进行数据治理和元数据管理,提升数据的价值和可信度,同时也提供了更强大的数据分析和处理能力。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值