sqoop简单用法

SQOOP是用于对数据进行导入导出的。
    (1)把MySQL、Oracle等数据库中的数据导入到HDFS、Hive、HBase中
    (2)把HDFS、Hive、HBase中的数据导出到MySQL、Oracle等数据库中

1.把数据从mysql导入到hdfs(默认是/user/<username>)中
导出TBLS表,表中字段用'\t'分隔,如果字段为null,用**代替,指定使用一个map任务(默认4个),如果重复导入,则append,新增一个输出文

件,--hive-import代表导入到HDFS上的Hive中。
  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
导出TBLS表,表中字段用'\t'分隔,如果字段为null,用**代替,指定使用一个map任务(默认4个),如果重复导入,则append,新增一个输出文

件,--hive-import代表导入到HDFS上的Hive中。再导入时检查TBL_ID字段,只导入该字段值大于6的记录。
  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
 
2.把数据从hdfs导出到mysql中  
将hdfs上的根目录上的ids文件夹内的所有文件(导出都是按目录导出,不是按文件),导出到ids表中。
  sqoop export --connect jdbc:mysql://hadoop0:3306/hive  --username root --password admin --table ids --fields-terminated-by

'\t' --export-dir '/ids'

3.设置为作业,运行作业

将该脚本保存为一个名为myjpb的job,方便使用。以后直接执行myjob即可。

  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 --list 查看。

执行myjob的命令:sqoop job --exec myjob 执行需要设置执行密码,如果不想输入需要在sqoop-site.xml中将以下注释的配置放开。

 <!--
  <property>
    <name>sqoop.metastore.client.record.password</name>
    <value>true</value>
    <description>If true, allow saved passwords in the metastore.
    </description>
  </property>
  -->

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

如果使用默认的map任务数量(4个),那代表同时有四个事务。如果想保持四个事务的一致性,可以使用 --staging-table 指定一个表名,将数据先全部导入到该表后,再进行导入导出操作,这样就可以满足多事务的一直。操作完成后清空该表还可以使用 --clear-staging-table 参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值