通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据

SQOOP的描述

SQOOP是用于对数据进行导入导出的。

(1)把MySQL、Oracle等数据库中的数据导入到HDFS、Hive、HBase中

(2)把HDFS、Hive、HBase中的数据导出到MySQL、Oracle等数据库中

一、Mysql与HDFS互导数据

环境:

环境介绍:3台虚拟机安装centos6.464位、jdk1.7 64位、hadoop2.5.1 64位

192.168.0.108 m1

192.168.0.109 s1

192.168.0.110 s2

SQOOP的安装

解压缩sqoop的tar.gz文件,设置环境变量(source /etc/profile)

把数据从mysql导入到hdfs(默认是/user/<username>)中

1.   复制mysql的驱动到sqoop目录下的lib中

2.   执行导入命令

sqoop import --connect jdbc:mysql://hadoop0:3306/hive  --username root --password admin --table TBLS --fields-terminated-by '\t'  --null-string '**'  -m 1 --append  --hive-import

说明:

ü  执行import命令将mysql的hive数据库中的TBLS表导入到hdfs中(默认目录user/root)

ü  --fields-terminated-by '\t' :表示导入到hdfs中以’\t’进行切割

ü  --null-string ‘**’:表示当字段为null时用’**’替换

ü  -m1:表示只指定一个map任务(map任务的个数关系生成文件的个数)

ü  --append:表示如果执行多次则进行追加(否则多次执行则会报already exsist)

ü  --hive-import:表示导入到hive中(如果只需导入到hdfs中则可不写)

ü

sqoop import --connect jdbc:mysql://hadoop0:3306/hive  --username root --password admin --table TBLS --fields-terminated-by '\t'  --null-string '**'  -m 1 --append  --hive-import  --check-column 'TBL_ID' --incremental append --last-value 6

说明:

ü  执行import命令将mysql的hive数据库中的TBLS表导入到hdfs中(默认目录user/root)

ü  --check-column 'TBL_ID':表示检查’TBL_ID‘列

ü  --incremental:表示增量

ü  --last-value 6:表示开始追加导入的列从第6列开始(不包含第6列)

ü  --check-column 'TBL_ID' --incremental append --last-value 6:整体解释为检查导入的主键列‘TBL_ID’当该列的值(增量)大于6时,可以进行追加导入,否则不进行导入

(这样做的目的:当第一次导入数据时主键列的最后一个值为6,第二次导入时我们不想导入所有的数据而是后来增加的数据,所以我们可以接着上一次的数据导入,即不导入重复数据)

把数据从hdfs导出到mysql中

sqoop export --connect jdbc:mysql://hadoop0:3306/hive  --username root --password admin --table ids --fields-terminated-by '\t' --export-dir '/ids'

说明:

--export-dir '/ids':指定要导出到Mysql的文件目录

设置为作业,运行作业

sqoop job --create myjob -- import --connect jdbc:mysql://hadoop0:3306/hive  --username root --password admin --table TBLS --fields-terminated-by '\t'  --null-string '**'  -m 1 --append  --hive-import

说明:

ü  设置为作业后可以直接执行作业,执行作业即执行该命令

ü  执行作业的命令:sqoop job  –exec  myjob

ü  查看作业已创建的Job作业:sqoop job –list

注:运行作业第一次需要输入密码,输入密码后即可执行,然后修改sqoop/conf/sqoop-site.xml中的sqoop.metastore.client.record.password(去掉注释即可)

以后运行就不需要在此输入密码了

导入导出的事务是以Mapper任务为单位。

即一个Map任务一个事务

案例:

连接测试

sqoop list-tables --connect jdbc:mysql://192.168.0.114:3306/test --username root --password zwx

#sqoop实现数据从oracle导入hdfs(hbase)

sqoop import --append --connect jdbc:oracle:thin:@192.168.0.20:1521:orcl --username yqdev --password yq --m 1 --table c_text --columns id,url,title,publishtime,copy --hbase-create-table --hbase-table c_text --hbase-row-key id --column-family textinfo

#mysql

sqoop import --append --connect jdbc:mysql://192.168.0.114:3306/test --username root --password zwx --m 1 --table c_text --columns id,url,title,author --hbase-create-table --hbase-table c_text --hbase-row-key id --column-family textinfo

sqoop实现Mysql、Oracle与hdfs之间数据的互导相关推荐

  1. 通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据

    通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据\ 下文将重点说明通过Sqoop实现Mysql与HDFS互导数据,Mysql与Hbase,Oracle与Hbase的互 ...

  2. 巨坑:从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null

    问题描述 从Sqoop导入MySQL导入TINYINT(1)类型数据到hive(tinyint),数据为null 问题原因 Sqoop在抽取数据到Hive或者HDFS时,会自动将类型为Tinyint( ...

  3. 大数据——sqoop操作mysql和hive导出导入数据

    1.sqoop安装 (1)下载CDH版本的sqoop (2)解压并进行环境配置 环境变量为: export SQOOP_HOME=/home/sqoop-1.4.6-cdh5.15.1 export ...

  4. 利用Sqoop在数据库和Hive、HDFS之间做ETL操作

    文章目录 @[toc] 目录: 一.利用Sqoop,从Oracle到HDFS 二.利用Sqoop,从Oracle到Hive 三.遇到的问题 目录: 一.利用Sqoop,从Oracle到HDFS 第一步 ...

  5. sqoop从HDFS导出数据到Mysql,卡在Running job: job_1571036741208_0010不动了,或者map 100% reduce 0%不动了

    用sqoop从HDFS导出数据到mysql,一直卡在Running job: job_1571036741208_0010,应该是内存太小,导致速度太慢 在 yarn-site-xml中增加下面两个, ...

  6. sqoop从mysql导入hdfs_3.使用sqoop从mysql 导入数据到hdfs

    使用sqoop从mysql 导入数据到hdfs 注意: 需要将mysql的jdbc驱动包放到lib目录下 在conf目录中,执行 cp sqoop-env-template.sh sqoop-env. ...

  7. Sqoop将MySQL数据导入到HDFS和Hive中

    一.将数据从mysql导入 HDFS sqoop import --connect jdbc:mysql://192.168.76.1:3306/workflow --username root -- ...

  8. 【华为云技术分享】使用sqoop导入mysql数据到hive中

    Sqoop 是一个数据转储工具,它能够将 hadoop HDFS 中的数据转储到关系型数据库中,也能将关系型数据库中的数据转储到 HDFS 中. Apache Sqoop,是"SQL to ...

  9. 使用sqoop迁移mysql数据到hive

    相关参考文献: 1.原文地址:http://www.cnblogs.com/charlist/p/7122198.html 使用Sqoop能够极大简化MySQL数据迁移至Hive之流程,并降低Hado ...

最新文章

  1. 『TensorFlow』卷积层、池化层详解
  2. JOptionPane
  3. mysql select 区分大小写,MySql查询不区分大小写解决方案(两种)
  4. 众多Android 开源项目推荐,给力工作给力学习
  5. 谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
  6. ubuntu 12.04解决Broadcom STA无线网卡驱动安装失败解决
  7. SAP CRM和Cloud for Customer的扩展字段元数据
  8. t’触发器真值表和状态方程_清写出触发器按逻辑特性的分类;写出T触发器的状态方程。...
  9. jdbc mysql分页_JDBC【数据库连接池、DbUtils框架、分页】
  10. 双目立体放大!谷歌刚刚开源的这篇论文可能会成为手机双摄的新玩法
  11. bzoj 4570: [Scoi2016]妖怪 凸包
  12. 《zw版·Halcon-delphi系列原创教程》halconxlib控件列表
  13. find命令与locate命令的区别
  14. 最简单的vscode使用入门教程
  15. 你们信不信,everyting找不全文件
  16. Flink-CEP快速入门
  17. jason表情包在线生成源码
  18. L - Evenly Separated Strings
  19. KataGo线程/权重/显卡
  20. 西游记中文殊菩萨的坐骑青狮两次下界为妖

热门文章

  1. 从ipa文件中导出图片
  2. python爬取歌曲评论并进行数据可视化
  3. axios中POST请求变成OPTIONS处理
  4. .NET实现之(部署ActiveX控件—简)
  5. IT技术分类和就业特点
  6. 使用Robolectric对android程序实现自动化测试
  7. 北邮王立新教授提到的“5年后运营商排名论”
  8. 给力登场:15款免费的Windows系统工具
  9. tomcat 、jsp、 servlet 、jstl版本对应
  10. ResourceBundle的路径问题