hadoop - Sqoop2 Hbase导入:无法为行键列插入具有空值的行

标签 hadoop mapreduce hbase sqoop

我正在尝试使用sqoop job将数据从oracle迁移到Hbase,看起来已经成功导出,但是在Hbase中导入相同数据时却抛出错误。

职位1:

​ `​sqoop import --verbose --connect *** --username *** --password *** --table 'abc' --columns "MID,EID,RTIMESTAMP,VALUE,UTIMESTAMP" --split-by 'abc.ID' --hbase-table "HPVSQOOP" --column-family "cf1" --hbase-row-key MID,EID,RTIMESTAMP --num-mappers 4 --hbase-bulkload​

其中ID是Oracle中的主键,但我希望我的HBase行键为MID_EID_RTIMESTAMP

Map-Reduced因抛出错误而失败:

​INFO mapreduce.Job: Task Id : attempt_1492489711789_0014_m_000003_2, Status : FAILED Error: java.io.IOException: Could not insert row with null value for row-key column: MID,EID,RTIMESTAMP at org.apache.sqoop.hbase.ToStringPutTransformer.getPutCommand(ToStringPutTransformer.java:146) at org.apache.sqoop.mapreduce.HBaseBulkImportMapper.map(HBaseBulkImportMapper.java:83)



使用--query的另一个Job不适用于Hbase导入。

工作2:
​sqoop import --verbose --connect *** --username *** --password **' --query "select MID,EID,VALUE,RTIMESTAMP,UTIMESTAMP,ID from database.abc where \$CONDITIONS" --split-by 'abc.ID' --hbase-table "HPVSQOOP" --column-family "cf1" --hbase-row-key "MID,EID,RTIMESTAMP" --num-mappers 4 --hbase-bulkload

最终抛出一个错误:

ERROR sqoop.Sqoop: Got exception running Sqoop: java.lang.NullPointerException java.lang.NullPointerException

最佳答案

如果列名称在数据库中为小写,则应在命令行中使用小写名称,例如--hbase-row-key "mid,eid..."

关于hadoop - Sqoop2 Hbase导入:无法为行键列插入具有空值的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635153/

相关文章:

java - 相同的关键不同的 reducer (HADOOP)?

java - 当您不关闭 HBase 表时会发生什么?

hadoop - 在ambari主机上进行配置单元安装会引发错误

hadoop - 是否可以从druid恢复Hadoop数据?

hadoop - 将rbms映射到dfs

hbase - HBase 中的随机访问性能和 HDFS 中的 block 大小

java - Hbase shell 命令抛出错误

hadoop - mapreduce:可以减少阶段 "emit"吗?

sql - 在 Hadoop MapReduce 中缓存 Map 应用程序?

mysql - Sqoop 导出到 MySQL 导出作业失败工具.ExportTool 但得到记录