sqoop把mysql数据导入hbase-完整记录

7 篇文章 0 订阅

环境:

软件版本备注
Ubuntu19.10 
sqoop1.4.7 
mysql8.0.20-0ubuntu0.19.10.1 (Ubuntu) 
hbase2.2.4必须启动
hadoop3.1.2必须启动
hive3.0.0之所以和hive有关系是因为需要在.bashrc中设置HCAT_HOME
accumulo2.0.0需要配合sqoop在.bashrc中设置ACCUMULO_HOME

 

数据导入目标:

mysql数据------------->Hbase

##############################################################################

准备MYSQL数据集:

mysql> create database sqoop_hbase;
mysql> use sqoop_hbase;
mysql> CREATE TABLE book(
    -> id INT(4) PRIMARY KEY NOT NULL AUTO_INCREMENT,
    -> NAME VARCHAR(255) NOT NULL,
    -> price VARCHAR(255) NOT NULL);
插入数据集
mysql> INSERT INTO book(NAME, price) VALUES('Lie Sporting', '30');  
mysql> INSERT INTO book (NAME, price) VALUES('Pride & Prejudice', '70');  
mysql> INSERT INTO book (NAME, price) VALUES('Fall of Giants', '50'); 

##############################################################################

需要.bashrc中设置好ACCUMULO_HOME和HCAT_HOME

############################下面是准备迁移##################################################

终端输入命令:

sqoop import --connect jdbc:mysql://Desktop:3306/sqoop_hbase \
--username appleyuchi \
--password appleyuchi \
--table book  \
--columns "id,name,price"  \
--column-family "info"  \
--hbase-create-table  \
--hbase-row-key "id"  \
--hbase-table "hbase_book"  \
--num-mappers 1   \
--split-by id

##############################################################################

hbase shell

scan 'hbase_book'

最终结果如下:

 

#-----------------------------------------------附录-报错解决方案--------------------------------------------------------------------------------------

报错$SQOOP/lib需要补充jar
java.lang.RuntimeException: Could not load db driver class: com.mysql.jdbc.Drivermysql-connector-java-8.0.20.jar
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.client.HBaseAdminhbase-client-1.2.0.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/protobuf/generated/MasterProtos$MasterService$BlockingInterface
hbase-protocol-1.2.0.jar
java.lang.NoSuchMethodError: org.apache.hadoop.hbase.util.Hash.hash([BII)I

hbase-common-1.2.0.jar

java.lang.ClassNotFoundException: com.yammer.metrics.core.Gaugemetrics-core-3.2.6.jar
Caused by: java.lang.ClassNotFoundException: org.apache.htrace.Trace
 
htrace-core-3.1.0-incubating.jar

上述表格虽然有参考[1],但是我还是故意让报错激活出来,以便于选择真正能解决问题的,而不是瞎拷贝

[1]https://stackoverflow.com/questions/51755213/sqoop-import-from-mysql-into-hbase-java-lang-nosuchmethoderror-org-apache-hado

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值