您的位置:首页 > 运维架构

Sqoop 之初认识以及安装、操作

2015-08-08 17:54 465 查看

1.概述

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

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

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



2.安装Sqoop

解压、设置环境变量,略

把mysql………….jar(mysql驱动)放到$SQOOP_HOME/lib中

3.相关操作

(1)把数据从mysql导入到hdfs

sqoop                                       ##sqoop命令
import                                  ##表示导入
--connect jdbc:mysql://ip:3306/sqoop    ##告诉jdbc,连接mysql的url
--username root                         ##连接mysql的用户名
--password admin                        ##连接mysql的密码
--table mysql1                          ##从mysql导出的表名称
--fields-terminated-by '\t'             ##指定输出文件中的行的字段分隔符
-m 1                                    ##复制过程使用1个map作业
--hive-import      ##把mysql表数据复制到hive空间中。如果不使用该选项,意味着复制到hdfs中


例子1,全量导入

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


PS:

参数说明
–tablemysql中的表名
–fields-terminated-by数据导入到文件中时以什么为分隔符
–null-string数据如果是空的,则用指定的符号表示
-m使用的mapreduce数量
–hive-import把mysql表数据复制到hive空间中
例子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  --check-column 'TBL_ID' --incremental append --last-value 6


PS:

参数说明
–tablemysql中的表名
–fields-terminated-by数据导入到文件中时以什么为分隔符
–null-string数据如果是空的,则用指定的符号表示
-m使用的mapreduce数量
–hive-import把mysql表数据复制到hive空间中
–append追加内容
–check-column增量导入时,检查的列(按照哪一列来增量)
–last-value按照某列增量时最后的一个值

(2)数据从hdfs导出到mysql

sqoop
export                       ##表示数据从hive复制到mysql中
--connect jdbc:mysql://ip:3306/sqoop
--username root
--password admin
--table mysql2               ##mysql中的表,即将被导入的表名称
--export-dir '/user/root/warehouse/mysql1'  ##hive中被导出的文件目录
--fields-terminated-by '\t'  ##hive中被导出的文件字段的分隔符


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


PS:

参数说明
export表明是导出操作
–table导出到Mysql中的哪个表中
–fields-terminated-byHDFS上的文件是以什么分割的
–export-dirHDFS上哪个文件要导出到Mysql中

(4)设置为作业,运行作业

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


PS:

–create 创建了作业的参数,后边的命令内容就是myjob这个作业所要执行的内容

sqoop job --list


PS:可以查看Sqoop中的job列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: