Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
行长度为0的问题在运行时出现;hbase org.apache.hadoop.hbase.mapreduce.Import;_Hbase_Hadoop2 - Fatal编程技术网

行长度为0的问题在运行时出现;hbase org.apache.hadoop.hbase.mapreduce.Import;

行长度为0的问题在运行时出现;hbase org.apache.hadoop.hbase.mapreduce.Import;,hbase,hadoop2,Hbase,Hadoop2,我想将一个表从hbase版本0.98群集复制到hbase版本1.2.0-cdh5.7.3群集 运行以下命令: hbase org.apache.hadoop.hbase.mapreduce.Import -Dmapreduce.job.queuename= -Dhbase.import.version=0.98 -Dmapreduce.map.speculative=false -Dmapreduce.reduce.speculative=false 但我有这样的错误: Error: jav

我想将一个表从hbase版本0.98群集复制到hbase版本1.2.0-cdh5.7.3群集

运行以下命令:

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)
错误:java.lang.IllegalArgumentException:行长度为0
位于org.apache.hadoop.hbase.client.Mutation.checkRow(Mutation.java:534)
位于org.apache.hadoop.hbase.client.Put.(Put.java:110)
位于org.apache.hadoop.hbase.client.Put.(Put.java:68)
位于org.apache.hadoop.hbase.client.Put.(Put.java:58)
位于org.apache.hadoop.hbase.mapreduce.Import$Importer.processKV(Import.java:199)
位于org.apache.hadoop.hbase.mapreduce.Import$Importer.writeResult(Import.java:164)
位于org.apache.hadoop.hbase.mapreduce.Import$Importer.map(Import.java:149)
位于org.apache.hadoop.hbase.mapreduce.Import$Importer.map(Import.java:132)
位于org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:145)
位于org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:787)
位于org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
位于org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:164)
位于java.security.AccessController.doPrivileged(本机方法)
位于javax.security.auth.Subject.doAs(Subject.java:415)
位于org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1693)
位于org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:158)

我刚刚遇到了这个问题—将数据从旧的IBM Big Insight系统迁移到HDP中

我为解决这个问题所做的是

编写一个HappyBase程序逐步浏览hBase表(以100个键值为单位)

每隔几百万左右,Python代码就会停止

在hbase外壳中,我在相同的键范围内进行了扫描,我可以看到列中的数据格式不正确

我的特定数据是格式错误的utf-8数据,导致编解码器出现问题

我手动删除了列-并重复了这些步骤

当一个表可以被“扫描”时,我现在执行了Hbase导出,然后是Hbase导入,这一切都起了作用


您可以使用Spark改进这一点,方法是导出数据、复制本地,然后使用Spark将序列文件作为RDD读取。然后应用您的数据筛选规则。

有人能就如何解决此问题提供一些建议吗?实际上,原始表不包含任何rowkey为空或为null的行。甚至没有任何rowkey匹配的行^s+$