sqoop从mysql导入hbase:java.lang.NoSuchMethodError:org.apache.hadoop.hbase.client.HBaseAdmin
我的系统环境: 启动hadoop服务和hbase后, 我试图将一个表从mysql导入hbase:sqoop从mysql导入hbase:java.lang.NoSuchMethodError:org.apache.hadoop.hbase.client.HBaseAdmin,mysql,hbase,sqoop,Mysql,Hbase,Sqoop,我的系统环境: 启动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
/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 ########
/usr/local/sqoop/bin/sqoop导入
--连接jdbc:mysql://localhost:3306/TESTDB
--表mytable
--用户名
--hbase表hbmytable
--列族hbmytable\u cf
--按ID拆分
--hbase创建表
--密码########
但是,导入失败,并显示以下错误消息:
......
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)
。。。。。。
18/08/08 18:41:28信息mapreduce.ImportJobBase:开始导入mytable
18/08/08 18:41:28信息配置。弃用:mapred.jar已弃用。而是使用mapreduce.job.jar
18/08/08 18:41:28信息配置。弃用:mapred.map.tasks已弃用。相反,请使用mapreduce.job.maps
线程“main”java.lang.NoSuchMethodError中出现异常:org.apache.hadoop.hbase.client.HBaseAdmin。(Lorg/apache/hadoop/conf/Configuration;)V
位于org.apache.sqoop.mapreduce.HBaseImportJob.jobSetup(HBaseImportJob.java:163)
位于org.apache.sqoop.mapreduce.ImportJobBase.runImport(ImportJobBase.java:268)
位于org.apache.sqoop.manager.SqlManager.importable(SqlManager.java:692)
位于org.apache.sqoop.manager.MySQLManager.importable(MySQLManager.java:127)
位于org.apache.sqoop.tool.ImportTool.importTable(ImportTool.java:520)
位于org.apache.sqoop.tool.ImportTool.run(ImportTool.java:628)
位于org.apache.sqoop.sqoop.run(sqoop.java:147)
位于org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
位于org.apache.sqoop.sqoop.runSqoop(sqoop.java:183)
位于org.apache.sqoop.sqoop.runTool(sqoop.java:234)
位于org.apache.sqoop.sqoop.runTool(sqoop.java:243)
位于org.apache.sqoop.sqoop.main(sqoop.java:252)
有什么解决办法吗?在将数据从MySQL导入Hbase时,我也遇到了这个异常 似乎是依赖冲突 我正在使用-
Hadoop - 3.2.0
Hbase - 2.2.0
Sqoop- 1.4.7
我已经在SQOOP_HOME/lib中手动添加了下面提到的jar-
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。检查文件sqoop-env.sh中定义的Hbase_HOME是否存在。当然,此环境变量设置为:
export Hbase_HOME=/usr/local/Hbase
,在尝试使用sqoop之前,hbase已成功启动。我相信sqoop 1.4.7需要hbase 1.2库,而不是2.0库…我安装了hbase 1.2.5以测试这一点,但使用相同的sqoop导入语句,我现在得到错误消息:(..)线程“main”中出现异常java.lang.Class.forName(Class.java:264)处的java.lang.Class.forName(Class.java:264)处的java.lang.Class.forName0(本机方法)处的org/apache/hbase/thirdparty/com/google/protobuf/RpcController处的(..)org.apache.sqoop.hbase.HBaseUtil.isHBaseJarPresent(HBaseUtil.java:46)处的原因是:java.lang.ClassNotFoundException:(..)解决库兼容性问题可能非常乏味。为什么不安装Hortonworks或Cloudera沙箱?
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