利用Sqoop实现Hbase的数据与MySQL数据的互导
时间:2022-06-10
本文章向大家介绍利用Sqoop实现Hbase的数据与MySQL数据的互导,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1. MySQL数据导入到HBase中
在服务器(主机名为repo)的mysql数据库中的"test"库中有一张"student"表,其中内容如下:
sid sname sage
1 Tom 15
2 Jack 16
3 Tony 17
4 Bob 18
现在利用sqoop把这张表中的数据导入到hbase中的"h_student"表中
sqoop import
--connect jdbc:mysql://repo/test
--username root
--password root
--table student
--hbase-table h_student
--column-family info
--hbase-row-key sid
--hbase-create-table
sqoop命令中的配置的意思:
--connect jdbc:mysql://repo/test
--username root
--password root
--table student
--hbase-table h_student
--column-family info # 指定hbase表的列族名
--hbase-row-key sid # 指定hbase表的rowkey对应为mysql表的sid
--hbase-create-table # 自动在hbase数据库中创建"h_student"这张表
导入数据后"h_student"表中内容:
1 column=info:sage, timestamp=1516189524784, value=15
1 column=info:sname, timestamp=1516189524784, value=Tom
2 column=info:sage, timestamp=1516189524784, value=16
2 column=info:sname, timestamp=1516189524784, value=Jack
3 column=info:sage, timestamp=1516189524784, value=17
3 column=info:sname, timestamp=1516189524784, value=Tony
4 column=info:sage, timestamp=1516189525029, value=18
4 column=info:sname, timestamp=1516189525029, value=Bob
5 column=info:sage, timestamp=1516189525029, value=55
注意事项
- sqoop命令过长,为了换行,加了
,在
之后不要有空格,直接回车换行
- 如果报以下错误
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop.hbase.HTableDescriptor.addFamily(Lorg/apache/hadoop/hbase/HColumnDescriptor;)
说明hbase与sqoop版本不兼容,无法自动创建"h_student"表,你需要手动在hbase表中创建"h_student"表,然后再运行sqoop命令就可以成功
hbase(main):001:0> create 'h_student','info'
2. HBase表中数据导入到MySQL中
目前没有命令可以直接将 hbase 中的数据导出到 mysql,原因:hbase是大数据生态圈的组件,就是为了存放大数据,直接导出到MySQL,MySQL是否可以承受这么大的压力?
替代方案:
- 先将 hbase 的数据导出到 hdfs,然后再把数据从HDFS导入MySQL中
- 把Hbase表映射为hive表,然后把hive表中数据导出到MySQL中
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解