Sqoop一些常用命令及参数
常用命令列举
这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码。
命令&参数详解
首先来我们来介绍一下公用的参数,所谓公用参数,就是大多数命令都支持的参数。
导入>import
命令&参数:import
将关系型数据库中的数据导入到HDFS(包括Hive,HBase)中,如果导入的是Hive,那么当Hive中没有对应表时,则自动创建。
command:
导入数据到hive中 :
$ bin/sqoop import \
--connect jdbc:mysql://hadoop002:3306/company \ --username root \ --password root\ --table tableName \ --hive-import
>增量导入数据到hive中,mode=append
append导入: $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/test\ --username root \ --password root\ --table students\ --num-mappers 1 \ --fields-terminated-by "\t" \ --target-dir /user/hive/warehouse/t_students \ --check-column id \ --incremental append \ --last-value 3
说明: append不能与--hive-等参数同时使用(Append mode for hive imports is not yet supported. Please remove the parameter --append-mode)
>增量导入数据到hdfs中,mode=lastmodified
先在mysql中建表并插入几条数据: mysql> create table test.students(id int(4), name varchar(255), sex varchar(255), last_modified timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP); mysql> insert into test.students (id, name, sex) values(1, 'jack', 'man'); mysql> insert into test.students(id, name, sex) values(2, 'tom', 'man');
先导入一部分数据: $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/test \ --username root \ --password root \ --table students \ --delete-target-dir \ --m 1 再增量导入一部分数据: mysql> insert into test.students (id, name, sex) values(3, 'jms', 'women'); $ bin/sqoop import \ --connect jdbc:mysql://hadoop002:3306/test \ --username root \ --password root\ --table test.students\ --check-column last_modified \ --incremental lastmodified \ --last-value "2020-05-28 12:22:32" \ --m 1 \ --append
说明: 使用lastmodified方式导入数据要指定增量数据是要--append(追加)还是要--merge-key(合并)
parameters:
导出>export
命令&参数:export
从HDFS(包括Hive和HBase)中奖数据导出到关系型数据库中。
command :
$ bin/sqoop export \ --connect jdbc:mysql://hadoop002:3306/test \ --username root \
--password root \
--table students \
--export-dir /user/test/students \
--input-fields-terminated-by "\t" \
--num-mappers 1