3

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)

Talendが何であるかを知らないシステム管理者にこのことを話したところ、MapRはClouderaのようにHRegionServerを使用しないとのことで、私のTalend構成が間違っていると判断されました。

何か案は?

4

2 に答える 2

0

Talend Big Data Sandboxでこれを再現しようと簡単に試してみましたが、残念ながらエラーを取得できなかったようです.

エラー メッセージを Google にプラグインすると (いくつかのバリエーションがあります)、これは Talend 以外ではよくあるエラーのように見えるので、必要なライブラリとドライバーを適切にロードし、エクスポートされたジョブにそれらが含まれている限り、これは、Hadoop クラスターのどこかでの構成の問題です。また、MapR 以外のディストリビューションでも発生しているようです。

Cloudera コミュニティ ボードのこの問題は、Oozie が誤って構成され、あなたと同じエラーを返していた問題を解決したようです。追加してみる価値があるかもしれません:

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

Oozie service->Configuration->Oozie Server(default)->Advanced-> Oozie Server Configuration Safety Valve for oozie-site.xmlHive サービスと Oozie サービスを再起動します。

もちろん、Hadoop クラスターの管理方法によっては複雑になる可能性があり、それに対して実行する開発クラスター/ローカル インスタンスがある場合も、同じ問題が発生します。

本番環境またはHadoopクラスタのような本番環境のみにデプロイする場合は、前述のTalend Big Data Sandboxまたは少なくともMapRサンドボックスをインストールすることを強くお勧めします。

于 2014-08-26T12:40:05.443 に答える