Talend THBASE连接和MapR的THBASE输入

Talend THBASE连接和MapR的THBASE输入,hbase,talend,mapr,Hbase,Talend,Mapr,我可以访问MapR Hadoop集群的边缘节点。我有一个名为/app/SubscriptionBillingPlatform/Matthew的HBase表,其中包含一些虚假数据。在hbase外壳中对其进行扫描会产生以下结果: 我有一个非常简单的Talend作业,它应该扫描表并记录每一行: 以下是tHBaseConnection的配置。我从/opt/mapr/hbase/hbase-0.94.13/conf/hbase-site.xml文件中获得了zookeeper仲裁和客户端端口: 以下是

我可以访问MapR Hadoop集群的边缘节点。我有一个名为/app/SubscriptionBillingPlatform/Matthew的HBase表,其中包含一些虚假数据。在hbase外壳中对其进行扫描会产生以下结果:

我有一个非常简单的Talend作业,它应该扫描表并记录每一行:

以下是tHBaseConnection的配置。我从/opt/mapr/hbase/hbase-0.94.13/conf/hbase-site.xml文件中获得了zookeeper仲裁和客户端端口:

以下是tHBaseInput的配置:

但是,当我在构建/导出作业并在边缘节点上运行它之后对jar文件进行SCP时,会出现以下错误:

14/08/06 15:51:26 INFO mapr.TableMappingRulesFactory: Could not find MapRTableMappingRules class, assuming HBase only cluster.
14/08/06 15:51:26 INFO mapr.TableMappingRulesFactory: If you are trying to access M7 tables, add mapr-hbase jar to your classpath.
14/08/06 15:51:26 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/08/06 15:51:26 INFO security.JniBasedUnixGroupsMappingWithFallback: Falling back to shell based
...
Exception in component tHBaseInput_1
org.apache.hadoop.hbase.client.NoServerForRegionException: Unable to find region for /app/SubscriptionBillingPlatform/Matthew,,99999999999999 after 10 tries.
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:991)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:896)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.java:998)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:900)
        at org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:857)
        at org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:257)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:187)
        at org.apache.hadoop.hbase.client.HTable.<init>(HTable.java:142)
        at poc2.testhbaseoperations_0_1.TestHBaseOperations.tHBaseInput_1Process(TestHBaseOperations.java:752)
        at poc2.testhbaseoperations_0_1.TestHBaseOperations.tHBaseConnection_1Process(TestHBaseOperations.java:375)
        at poc2.testhbaseoperations_0_1.TestHBaseOperations.runJobInTOS(TestHBaseOperations.java:1104)
        at poc2.testhbaseoperations_0_1.TestHBaseOperations.main(TestHBaseOperations.java:993)
14/08/06 15:51:26 INFO mapr.TableMappingRulesFactory:找不到MapRTableMappingRules类,假设只有HBase群集。
14/08/06 15:51:26 INFO mapr.tablemappingrules工厂:如果您试图访问M7表,请将mapr hbase jar添加到类路径中。
14/08/06 15:51:26警告util.NativeCodeLoader:无法为您的平台加载本机hadoop库。。。在适用的情况下使用内置java类
14/08/06 15:51:26 INFO security.JniBasedUnixGroupsMappingWithFallback:返回到基于shell的
...
组件tHBaseInput_1中出现异常
org.apache.hadoop.hbase.client.NoServerForRegionException:尝试10次后,找不到/app/SubscriptionBillingPlatform/Matthew的区域,99999999999。
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionMeta(HConnectionManager.java:991)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:896)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionMeta(HConnectionManager.java:998)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:900)
位于org.apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.java:857)
位于org.apache.hadoop.hbase.client.HTable.finishSetup(HTable.java:257)
位于org.apache.hadoop.hbase.client.HTable.(HTable.java:187)
位于org.apache.hadoop.hbase.client.HTable.(HTable.java:142)
在poc2.testhbaseoperations\u 0\u 1.testhbaseoperations.tHBaseInput\u 1进程中(testhbaseoperations.java:752)
在poc2.testhbaseoperations\u 0\u 1.testhbaseoperations.tHBaseConnection\u 1进程中(testhbaseoperations.java:375)
在poc2.testhbaseoperations\u 0\u 1.testhbaseoperations.runjobtos(testhbaseoperations.java:1104)
位于poc2.testhbaseoperations\u 0\u 1.testhbaseoperations.main(testhbaseoperations.java:993)
当我告诉不知道Talend是什么的系统管理员时,他们告诉我MapR不像Cloudera那样使用HREGIONServer,并认为我的Talend配置是错误的


有什么想法吗?

我很快就想在中重现这个想法,但恐怕无法理解您的错误

将错误消息插入Google(有一些变体)看起来这是Talend之外的一个半常见错误,所以我想,只要您正确加载了必要的库和驱动程序,并且这些库和驱动程序包含在导出的作业中,那么Hadoop集群上的某个地方就存在配置问题。这似乎也发生在非MapR发行版上

在Cloudera社区板上,似乎有一个令人满意的解决方案,其中Oozie被错误配置,并返回与您相同的错误。可能值得尝试添加以下内容:

<property>
<name>oozie.credentials.credentialclasses</name>
<value>hcat=org.apache.oozie.action.hadoop.HCatCredentials</value>
</property>

oozie.credentials.credentialclass
hcat=org.apache.oozie.action.hadoop.hcat
Oozie服务->配置->Oozie服务器(默认)->高级->Oozie服务器配置安全阀for Oozie site.xml
并重新启动配置单元和Oozie服务

当然,Hadoop集群的管理方式可能会使问题变得复杂,如果您有一个开发集群/本地实例要运行,那么它也会遇到同样的问题


我强烈建议您安装前面提到的Talend大数据沙箱,或者如果您只有一个产品或类似于Hadoop的产品集群可以部署到,则至少安装一个。

关键在于以下两行:

INFO mapr.TableMappingRulesFactory: Could not find MapRTableMappingRules class, assuming HBase only cluster.
mapr.TableMappingRulesFactory: If you are trying to access M7 tables, add mapr-hbase jar to your classpath.
如果作业在类路径上没有mapr hbase jar,它将尝试将作业提交给常规hbase,而不是mapr DB。这就是为什么它永远挂着

您可以将mapr hbase jar从
/opt/mapr/lib
添加到shell脚本的类路径中,也可以将该目录中的所有jar添加到类路径中

#!/bin/sh
cd `dirname $0`
 ROOT_PATH=`pwd`
java -Xms256M -Xmx1024M -cp /opt/mapr/lib/*:$ROOT_PATH/.. 

我根本不知道HBase,但错误日志的前两行看起来与我有关。在作业开始时,尝试使用tLibraryLoad组件加载mapr hbase jar。@ydaetskcoR我使用tLibraryLoad加载了它,但仍然收到前两条消息。不过,谢谢你,因为我认为这是一个必要的步骤,但还有其他步骤。