Mysql和hbase的数据互导

Mysql和hbase的数据互导

1.将mysql中的表导入到hbase中

主机hadoop01 的mysql数据库中的的 test数据库下的student表中的数据如下:
±-----±-------±-----------±------+
| s_id | s_name | s_birth | s_sex |
±-----±-------±-----------±------+
| 01 | 赵雷 | 1990-01-01 | 男 |
| 02 | 钱电 | 1990-12-21 | 男 |
| 03 | 孙风 | 1990-05-20 | 男 |
| 04 | 李云 | 1990-08-06 | 男 |
| 05 | 周梅 | 1991-12-01 | 女 |
| 06 | 吴兰 | 1992-03-01 | 女 |
| 07 | 郑竹 | 1989-07-01 | 女 |
| 08 | 王菊 | 1990-01-20 | 女 |
±-----±-------±-----------±------+
将这个表中的数据导入到hbase中
有两种导入的方式

1.直接导入 在导入的过程中创建hbase中的表
sqoop import --connect jdbc:mysql://hadoop01/test --username root --password root --table student --hbase-create-table --hbase-table studenttest --column-family name --hbase-row-key id

下边对这句话进行解析
sqoop import //使用sqoop导入
–connect jdbc:mysql://hadoop01/test --username root --password root 连接hadoop01主机的mysql数据库 数据库的名字是test 用户名数root 密码root

–table student --hbase-create-table --hbase-table studenttest
mysql中的表的名字是student 自动创建hbase中的表 表的名字是student_mysql_hbase
–column-family name 指定hbase中的列簇的名字是name
–hbase-row-key s_id指定mysql中的s_id列的值作为hbase表中的行键

但是输入这段话之后会报错
Exception in thread “main” java.lang.NoSuchMethodError:
org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)V 是由于版本不兼容引起,我们可以通过事先创建好表就可以使用了。

2.直接先在hbase中创建一张表
create “student_mysql_hbase”,“name”

之后使用下边的语句
sqoop import --connect jdbc:mysql://hadoop01/test --username root --password root --table student --hbase-table student_mysql_hbase --column-family name --hbase-row-key s_id

之后执行
执行成功
在这里插入图片描述
查看hbase中的student_mysql_hbase表的数据
在这里插入图片描述

2.将hbase中的数据导出到mysql

目前没有直接的命令将 Hbase 中的数据导出到 mysql,但是可以先将 hbase 中的数据导
出到 hdfs 中,再将数据导出 mysq
替代方案:
先将 hbase 的数据导入到 hdfs 或者 hive,然后再将数据导入到 mysql

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值