mysql之sqoop 从 mysql 导入 hbase : java. lang.NoSuchMethodError : org. apache.hadoop.hbase.client.HBaseAdmin

mengfanrong 阅读:118 2023-08-18 13:40:47 评论:0

我的系统环境:

Ubuntu 18.04 LTS  (64bit) 
Hadoop 2.7.6 
HBase 2.0.1 
Sqoop 1.4.7 
openjdk version 1.8.0_171 

启动hadoop服务和hbase后, 我尝试将表从 mysql 导入到 hbase:

/usr/local/sqoop/bin/sqoop  import  
      --connect jdbc:mysql://localhost:3306/TESTDB   
      --table mytable  
      --username <username>  
      --hbase-table hbmytable  
      --column-family  hbmytable_cf  
      --split-by ID  
      --hbase-create-table  
      --password ######## 

但是,导入失败并显示以下错误消息:

...... 
18/08/08 18:41:28 INFO mapreduce.ImportJobBase: Beginning import of mytable 
18/08/08 18:41:28 INFO Configuration.deprecation: mapred.jar is deprecated. Instead, use mapreduce.job.jar 
18/08/08 18:41:28 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps 
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.HBaseAdmin.<init>(Lorg/apache/hadoop/conf/Configuration;)V 
    at org.apache.sqoop.mapreduce.HBaseImportJob.jobSetup(HBaseImportJob.java:163) 
    at org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:268) 
    at org.apache.sqoop.manager.SqlManager.importTable(SqlManager.java:692) 
    at org.apache.sqoop.manager.MySQLManager.importTable(MySQLManager.java:127) 
    at org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:520) 
    at org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628) 
    at org.apache.sqoop.Sqoop.run(Sqoop.java:147) 
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) 
    at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:183) 
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:234) 
    at org.apache.sqoop.Sqoop.runTool(Sqoop.java:243) 
    at org.apache.sqoop.Sqoop.main(Sqoop.java:252) 

有什么解决方法吗?

请您参考如下方法:

我在从 MySQL 导入数据到 Hbase 时也遇到了这个异常。

似乎依赖冲突。

我正在使用-

Hadoop - 3.2.0 
Hbase - 2.2.0 
Sqoop- 1.4.7 

我已将下面提到的 jars 手动添加到 SQOOP_HOME/lib -

1: hbase-client-1.2.0.jar 
2: hbase-common-1.2.0.jar 
3: hbase-mapreduce-2.2.0.jar 
4: hbase-protocol-1.2.0.jar 
5: hbase-server-1.2.0.jar 
6: hbase-zookeeper-2.2.0.jar 
7: protobuf-java-2.5.0.jar 

并且 Hbase 导入工作正常。

** 我正在使用 Hbase 2.2.0,但我仍然必须使用所有 Hbase-1.2.0 jar。


标签:hadoop
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号