最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

sqoop实现Mysql、Oracle与hdfs之间数据的互导

来源:懂视网 责编:小采 时间:2020-11-09 15:41:06
文档

sqoop实现Mysql、Oracle与hdfs之间数据的互导

sqoop实现Mysql、Oracle与hdfs之间数据的互导:通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 SQOOP 的描述 SQOOP 是用于对数据进行导入导出的。 (1) 把 MySQL 、 Oracle 等数据库中的数据导入到 HDFS 、 Hive 、 HBase 中 (2) 把 HDFS 、 Hive 、 HBase 中的数据导
推荐度:
导读sqoop实现Mysql、Oracle与hdfs之间数据的互导:通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 SQOOP 的描述 SQOOP 是用于对数据进行导入导出的。 (1) 把 MySQL 、 Oracle 等数据库中的数据导入到 HDFS 、 Hive 、 HBase 中 (2) 把 HDFS 、 Hive 、 HBase 中的数据导

通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 SQOOP 的描述 SQOOP 是用于对数据进行导入导出的。 (1) 把 MySQL 、 Oracle 等数据库中的数据导入到 HDFS 、 Hive 、 HBase 中 (2) 把 HDFS 、 Hive 、 HBase 中的数据导出到 MySQL 、 Oracle 等数据库

通过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/)中

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

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

sqoop实现Mysql、Oracle与hdfs之间数据的互导

sqoop实现Mysql、Oracle与hdfs之间数据的互导:通过Sqoop实现Mysql / Oracle 与HDFS / Hbase互导数据 SQOOP 的描述 SQOOP 是用于对数据进行导入导出的。 (1) 把 MySQL 、 Oracle 等数据库中的数据导入到 HDFS 、 Hive 、 HBase 中 (2) 把 HDFS 、 Hive 、 HBase 中的数据导
推荐度:
标签: 数据 实现 之间
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top