Sqoop HBase 导入:java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HTableDescriptor.addFamily

Posted

技术标签:

【中文标题】Sqoop HBase 导入:java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HTableDescriptor.addFamily【英文标题】:Sqoop HBase Import: java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily 【发布时间】:2016-12-13 14:57:14 【问题描述】:

我在 Ubuntu 14.04 上将 Hadoop 作为伪分布式集群运行。我也安装了 HBase,一切正常。现在我想使用 Sqoop 中的“import”命令将数据从本地 mysql Server 导入 HBase

Hadoop 版本:2.7.3 HBase 版本:1.2.4 Sqoop 版本:1.4.6(Hadoop 2.0.4-alpha)

Hadoop 和 HBase 工作正常,没有问题,但运行命令

./sqoop import --connect jdbc:mysql://localhost:3306/company --table people --username mysqluser -P --hbase-table people_import --column-family peoplecf --hbase-create-table

导致以下错误

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V
at org.apache.sqoop.mapreduce.HBaseImportJob.jobSetup(HBaseImportJob.java:222)
at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:264)
at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:673)
at org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:118)
at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:497)
at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:605)
at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
at org.apache.sqoop.Sqoop.main(Sqoop.java:236)

有人可以帮帮我吗?

【问题讨论】:

【参考方案1】:

Sqoop 还不支持最新版本的 Hbase。 最新的 Sqoop 与 Hbase issue (SQOOP-2759)。

【讨论】:

以上是关于Sqoop HBase 导入:java.lang.NoSuchMethodError:org.apache.hadoop.hbase.HTableDescriptor.addFamily的主要内容,如果未能解决你的问题,请参考以下文章

Sqoop 导入安全 hbase 失败

04 使用Sqoop将mysql数据导入hbase

Exception in thread “main“ java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.HBaseAdmin.

Sqoop_具体总结 使用Sqoop将HDFS/Hive/HBase与MySQL/Oracle中的数据相互导入导出

HBase sqoop 导入冻结

使用sqoop将MySQL数据库中的数据导入Hbase