sqoop数据迁移的应用
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数据库中。
接下来,我介绍第二种方法:
因为之前将mysql中的teacher表导入到了hbase,我就直接用hbase中的这个myteacherhbase表进行以下操作。
在mysql中新建立一个myteacher表,用来接收hbase导出的数据。
表结构如图:
在hive中创建连接hbase的外部表:
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数据迁移的应用相关推荐
- sqoop 数据迁移
sqoop 数据迁移 1 概述 sqoop是apache旗下一款"Hadoop和关系数据库服务器之间传送数据"的工具. 导入数据:MySQL,Oracle导入数据到Hadoop的H ...
- 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 ...
- Sqoop数据迁移原理及基本框架
目录 Sqoop简介 Sqoop架构 Sqoop导入底层工作原理 Sqoop导出底层工作原理 Sqoop简介 Sqoop旨在协助RDBMS与Hadoop之间进行高效的大数据交流.可以把关系型数据库的数 ...
- Sqoop数据迁移实战
sqoop安装 安装sqoop的前提是已经具备java和hadoop的环境 1.下载并解压 最新版下载地址http://ftp.wayne.edu/apache/sqoop/1.4.6/ 2.修改配置 ...
- sqoop工具数据迁移
sqoop数据迁移工具 Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql.postgresql-)间进行数据的传递,可以将一个关系型数据库(例 ...
- mysql 数据迁移_MySQL海量数据迁移
数据库迁移 本主前一段时间写毕业设计主要使用MySQL,紧锣密鼓的开发了将近一个多月,项目数据层.接口层.数据采集层已经开发完成,算法还在不断的优化提速,由于请了几位大佬帮我做Code Review, ...
- db2 导入数据_IBM BigInsights大数据迁移
依据本平台的IBM BigInsights产品特性及项目建设的要求,整体架构图如下所示: 数据采集 提供多种采集手段,通过Federation做数据联邦,进行小批量数据的处理:针对日志收集采用Flum ...
- 第八章:sqoop数据迁移工具
sqoop是专门用来迁移数据的,它可以把数据库中的数据迁移到HDFS文件系统,当然也可以从HDFS文件系统导回到数据库. 我来说一下Sqoop的使用场景,假如你们公司有个项目运行好长时间了,积累了大量 ...
- svn的代码提交到git服务器_svn服务器代码仓库,数据迁移到git仓库
svn服务器代码仓库,数据迁移到git仓库 1.安装svn [root@tomcat01 ~]# yum install subversion -y 2.初始化仓库 [root@tomcat02 ~] ...
最新文章
- MySQL数据库have_openss_MySQL 关于OpenSSL证书支持检查方式
- 数据中设计中的范式与反范式
- powershell实例第1讲:判断某个文件夹是否存在,存在则删除
- android 图片加载库 Glide 的使用介绍
- 信息系统管理19年真题选择题
- jmx 复用 jmx_JMX:一些入门说明
- Spring AOP解析
- 腾讯云成为国内首家FinOps基金会顶级会员
- python增删改查csv文件_【练习】Python第四次:实现对文件的增删改查
- NSDictionary和NSMutableDictionary
- Android studio 权限大全
- c语言杭电oj1090答案,杭电OJ水题答案.doc
- 关于电的计算机公式,电量计算公式_有关各类电量的计算公式
- Pycharm破解版安装步骤
- Java学习笔记:2021年12月31日下午-2022年1月1日上午
- 操作系统知识点(考试版)
- 大数据时代信息轰炸来袭 购房四大黄金法则
- 《格鲁夫给经理人的第一课》
- centos7下yum出现:已加载插件:fastestmirror Loading mirror speeds from cached hostfile 没有已启用的源。
- 计算机英语教学模式,英语教学模式计算机专业论文
热门文章
- 新浪程序员加班改bug,竟错失77万年会大奖
- TensorFlow 1.8.0正式发布,Bug修复和改进内容都在这里了
- 阿里云首席科学家闵万里:我们为什么敢挑战一百年的制度,因为黑科技能为挽救生命抢来50%的可能性
- 来!一起搭建个永久运行的个人服务器吧!
- ELK 处理 Spring Boot 日志,妙!
- 架构设计的本质:系统与子系统、模块与组件、框架与架构
- 肝一下ZooKeeper实现分布式锁的方案,附带实例!
- 分布式定时任务调度系统技术选型
- 运维想吃透监控系统,就这一篇足够了
- 飞桨领航团 x Datawhale联合Meetup来了!杭州的小伙伴可以见面了!