MySql与HBase之间数据的互导(借助sqoop)

一.将mysql中的数据导入到hbase中,这一步相对来说是比较简单的

1.在mysql中建立一个teacher表,插入5组数据,我这里没有将表建立的太大,可以根据自身数据大小情况改变创建表的大小,表的结构如下图所示:

2.在进行下一步之前,一定要确认mysql的jdbc已经拷贝到sqoop的lib目录下,此处我使用的是 mysql-connector-java-5.0.8-bin.jar,同时需要拷贝hbase目录下的hbase-0.94.18.jar和hbase的lib目录下的zookeeper-3.4.5.jar到sqoop的lib目录下,以上jar包,只要是适合自己版本的就好。

3.转到sqoop的目录下,执行命令:

$bin/sqoop import --connect jdbc:mysql://slave03/sqoop --username sqoop --password sqoop --table teacher --hbase-table myteacherhbase  --column-family info --hbase-create-table

上述命令行的含义:

$bin/sqoop import --connect jdbc:mysql://slave03(自己的机器名,可以是自己机器的ip地址)/sqoop(mysql中的database) --username 用户名 --password 密码 --table teacher(mysql中的table名字) --hbase-table myteacherhbase(导入到hbase中表的名字)  --column-family info --hbase-create-table(使hbase自己创建表)

4.1执行上述命令之前hbase中表的状况:

4.2执行sqoop命令之后hbase里边表的状况:

5.至此,mysql数据库中的数据导入到hbase中成功。

二.将hbase中的数据导出到mysql数据库中。

因为之前在网上查找过很多的信息,了解到hbase中的数据不能够直接导出到mysql数据库中,所以只能借助一个中介实现这个目的,我了解到有以下两种方法可以实现这个功能:

(1)将hbase中的数据导出到HDFS平台上,然后导入到mysql(此方法本人还没有试,只是了解到网上有人说可以)

(2)将hbase中的数据导出到hive(中介),然后通过sqoop将hive中的数据导入到mysql数据库中。

接下来,我介绍第二种方法:

  1. 因为之前将mysql中的teacher表导入到了hbase,我就直接用hbase中的这个myteacherhbase表进行以下操作。

  2. 在mysql中新建立一个myteacher表,用来接收hbase导出的数据。

    表结构如图:

  3. 在hive中创建连接hbase的外部表:

  4. hive> create external table myteacher_external(key int,value string)> STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'> WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:name")> TBLPROPERTIES("hbase.table.name" = "myteacherhbase");

这里我直接在创建外部表的时候指定了primary key,将id设为primary key.如图:

可以查询到hbase中的数据,创建连接hbase外部表成功。

5.    在hive中新建一个内部表,将hive的external外部表数据导入到内部表。

hive>create table myteacher_inner(id int,name string);

建好之后,通过以下命令,执行将hbase中的数据导出到hive中:

hive> insert overwrite table myteacher_inner select * from myteacher_external;

如下图:

相应的内部表中有了数据,说明hbase导出到hive中成功了。

6.    接下来,就是利用sqoop将hive中的数据导入到mysql中了,转到sqoop目录下,执行以下命令:

bin/sqoop export --connect jdbc:mysql://本机ip/sqoop --username sqoop --password sqoop  -m 1 --table myteacher --export-dir hdfs://slave03:9000/home/hadoop/hive/warehouse/myteacher_inner --input-null-string "\\\\N" --input-null-non-string "\\\\N" --input-fields-terminated-by "\\01" --input-lines-terminated-by "\\n"

说明:ip地址之后的sqoop是mysql的database,之后依次是用户名,密码,m 1 是进行一次map,table myteacher是之前建立的接收hbase数据的空表,后边的--export-dir是本机的hive之中表的HDFS地址。至于这地址之后的,是处理防止导入到mysql之中时,出现NULL的现象,导致原因是因为hive里存储的数据和数据之间的间隔与mysql中存储的数据和数据间隔不一致。所以需要处理一下。使mysql可以识别。

sqoop执行命令成功。

7.    在mysql查看myteacher中的数据。

查询成功。导入成功,操作完成啦!

sqoop数据迁移的应用相关推荐

  1. sqoop 数据迁移

    sqoop 数据迁移 1 概述 sqoop是apache旗下一款"Hadoop和关系数据库服务器之间传送数据"的工具. 导入数据:MySQL,Oracle导入数据到Hadoop的H ...

  2. Hadoop离线 day18 sqoop数据迁移和java执行shell命令

    sqoop数据迁移和java执行shell命令 3. sqoop数据迁移 3.1.概述 3.2.sqoop1与sqoop2架构对比 3.3.工作机制 3.4 .sqoop实战及原理 3.4.1 sqo ...

  3. Sqoop数据迁移原理及基本框架

    目录 Sqoop简介 Sqoop架构 Sqoop导入底层工作原理 Sqoop导出底层工作原理 Sqoop简介 Sqoop旨在协助RDBMS与Hadoop之间进行高效的大数据交流.可以把关系型数据库的数 ...

  4. Sqoop数据迁移实战

    sqoop安装 安装sqoop的前提是已经具备java和hadoop的环境 1.下载并解压 最新版下载地址http://ftp.wayne.edu/apache/sqoop/1.4.6/ 2.修改配置 ...

  5. sqoop工具数据迁移

    sqoop数据迁移工具 Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql-)间进行数据的传递,可以将一个关系型数据库(例 ...

  6. mysql 数据迁移_MySQL海量数据迁移

    数据库迁移 本主前一段时间写毕业设计主要使用MySQL,紧锣密鼓的开发了将近一个多月,项目数据层.接口层.数据采集层已经开发完成,算法还在不断的优化提速,由于请了几位大佬帮我做Code Review, ...

  7. db2 导入数据_IBM BigInsights大数据迁移

    依据本平台的IBM BigInsights产品特性及项目建设的要求,整体架构图如下所示: 数据采集 提供多种采集手段,通过Federation做数据联邦,进行小批量数据的处理:针对日志收集采用Flum ...

  8. 第八章:sqoop数据迁移工具

    sqoop是专门用来迁移数据的,它可以把数据库中的数据迁移到HDFS文件系统,当然也可以从HDFS文件系统导回到数据库. 我来说一下Sqoop的使用场景,假如你们公司有个项目运行好长时间了,积累了大量 ...

  9. svn的代码提交到git服务器_svn服务器代码仓库,数据迁移到git仓库

    svn服务器代码仓库,数据迁移到git仓库 1.安装svn [root@tomcat01 ~]# yum install subversion -y 2.初始化仓库 [root@tomcat02 ~] ...

最新文章

  1. MySQL数据库have_openss_MySQL 关于OpenSSL证书支持检查方式
  2. 数据中设计中的范式与反范式
  3. powershell实例第1讲:判断某个文件夹是否存在,存在则删除
  4. android 图片加载库 Glide 的使用介绍
  5. 信息系统管理19年真题选择题
  6. jmx 复用 jmx_JMX:一些入门说明
  7. Spring AOP解析
  8. 腾讯云成为国内首家FinOps基金会顶级会员
  9. python增删改查csv文件_【练习】Python第四次:实现对文件的增删改查
  10. NSDictionary和NSMutableDictionary
  11. Android studio 权限大全
  12. c语言杭电oj1090答案,杭电OJ水题答案.doc
  13. 关于电的计算机公式,电量计算公式_有关各类电量的计算公式
  14. Pycharm破解版安装步骤
  15. Java学习笔记:2021年12月31日下午-2022年1月1日上午
  16. 操作系统知识点(考试版)
  17. 大数据时代信息轰炸来袭 购房四大黄金法则
  18. 《格鲁夫给经理人的第一课》
  19. centos7下yum出现:已加载插件:fastestmirror Loading mirror speeds from cached hostfile 没有已启用的源。
  20. 计算机英语教学模式,英语教学模式计算机专业论文

热门文章

  1. 新浪程序员加班改bug,竟错失77万年会大奖
  2. TensorFlow 1.8.0正式发布,Bug修复和改进内容都在这里了
  3. 阿里云首席科学家闵万里:我们为什么敢挑战一百年的制度,因为黑科技能为挽救生命抢来50%的可能性
  4. 来!一起搭建个永久运行的个人服务器吧!
  5. ELK 处理 Spring Boot 日志,妙!
  6. 架构设计的本质:系统与子系统、模块与组件、框架与架构
  7. 肝一下ZooKeeper实现分布式锁的方案,附带实例!
  8. 分布式定时任务调度系统技术选型
  9. 运维想吃透监控系统,就这一篇足够了
  10. 飞桨领航团 x Datawhale联合Meetup来了!杭州的小伙伴可以见面了!