2017-04-18 10 views
0

hbaseバージョン0.98クラスタからhbaseバージョン1.2.0-cdh5にテーブルをコピーしたいとします。 7.3クラスタ"hbase org.apache.hadoop.hbase.mapreduce.Import"を実行すると、行の長さが0になります

hbase org.apache.hadoop.hbase.mapreduce.Import -Dmapreduce.job.queuename= -Dhbase.import.version=0.98 -Dmapreduce.map.speculative=false -Dmapreduce.reduce.speculative=false 

しかし、私はこのようなエラーを持っている:

は、コマンドを実行します。私は、この問題を経験した

Error: java.lang.IllegalArgumentException: Row length is 0 
    at org.apache.hadoop.hbase.client.Mutation.checkRow(Mutation.java:534) 
    at org.apache.hadoop.hbase.client.Put.<init>(Put.java:110) 
    at org.apache.hadoop.hbase.client.Put.<init>(Put.java:68) 
    at org.apache.hadoop.hbase.client.Put.<init>(Put.java:58) 
    at org.apache.hadoop.hbase.mapreduce.Import$Importer.processKV(Import.java:199) 
    at org.apache.hadoop.hbase.mapreduce.Import$Importer.writeResult(Import.java:164) 
    at org.apache.hadoop.hbase.mapreduce.Import$Importer.map(Import.java:149) 
    at org.apache.hadoop.hbase.mapreduce.Import$Importer.map(Import.java:132) 
    at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145) 
    at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787) 
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341) 
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693) 
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158) 
+0

誰でも問題を解決する方法を提案できますか?実際には、元のテーブルには空またはヌルキーの行が含まれていません。 –

+0

行キーが一致する行もありません^/s + $ –

答えて

0

- HDPに旧IBMビッグ・インサイト・システムからデータを移行します。私はこれが(100のキー値の段階で)HBaseのテーブルをステップ実行するHappyBaseプログラムを書く

た解決するためにやった

....

毎週数百万かそこら - Pythonのコードは、 ....

hbaseシェルでは、私は同じキー範囲でスキャンを実行しましたが、私は列に不正な形式のデータがあることがわかりました。

私の特定のデータは不正な形式のutf-8データであり、コーデックに問題があります。

I手動列の除去 - 及び手順を繰り返し....

「スキャン」することができるテーブルは、私は今のHBaseインポート続いHBaseのエクスポートを行う場合 - それすべてが働きました。

Sparkを使用して、copyToLocalというデータをエクスポートし、Sequence FileをRDDとして読み取るSparkを使用して、これを改善することができます。次に、データフィルタリングルールを適用します。

関連する問題