尚硅谷大数据技术之Sqoop第5章 Sqoop一些常用命令及参数
5.2.11 命令&参数:job
用来生成一个sqoop任务,生成后不会立即执行,需要手动执行。
命令:
如:
$ bin/sqoop job \ --create myjob -- import-all-tables \ --connect jdbc:mysql://hadoop102:3306/company \ --username root \ --password 000000 $ bin/sqoop job \ --list $ bin/sqoop job \ --exec myjob |
尖叫提示:注意import-all-tables和它左边的--之间有一个空格
尖叫提示:如果需要连接metastore,则--meta-connect jdbc:hsqldb:hsql://linux01:16000/sqoop
参数:
序号 |
参数 |
说明 |
1 |
--create <job-id> |
创建job参数 |
2 |
--delete <job-id> |
删除一个job |
3 |
--exec <job-id> |
执行一个job |
4 |
--help |
显示job帮助 |
5 |
--list |
显示job列表 |
6 |
--meta-connect <jdbc-uri> |
用来连接metastore服务 |
7 |
--show <job-id> |
显示一个job的信息 |
8 |
--verbose |
打印命令运行时的详细信息 |
尖叫提示:在执行一个job时,如果需要手动输入数据库密码,可以做如下优化
<property> <name>sqoop.metastore.client.record.password</name> <value>true</value> <description>If true, allow saved passwords in the metastore.</description> </property> |
5.2.12 命令&参数:list-databases
命令:
如:
$ bin/sqoop list-databases \ --connect jdbc:mysql://hadoop102:3306/ \ --username root \ --password 000000 |
参数:与公用参数一样
5.2.13 命令&参数:list-tables
命令:
如:
$ bin/sqoop list-tables \ --connect jdbc:mysql://hadoop102:3306/company \ --username root \ --password 000000 |
参数:与公用参数一样
5.2.14 命令&参数:merge
将HDFS中不同目录下面的数据合并在一起并放入指定目录中
数据环境:
new_staff 1 AAA male 2 BBB male 3 CCC male 4 DDD male old_staff 1 AAA female 2 CCC female 3 BBB female 6 DDD female |
尖叫提示:上边数据的列之间的分隔符应该为\t,行与行之间的分割符为\n,如果直接复制,请检查之。
命令:
如:
创建JavaBean: $ bin/sqoop codegen \ --connect jdbc:mysql://hadoop102:3306/company \ --username root \ --password 000000 \ --table staff \ --bindir /home/admin/Desktop/staff \ --class-name Staff \ --fields-terminated-by "\t"
开始合并: $ bin/sqoop merge \ --new-data /test/new/ \ --onto /test/old/ \ --target-dir /test/merged \ --jar-file /home/admin/Desktop/staff/Staff.jar \ --class-name Staff \ --merge-key id 结果: 1 AAA MALE 2 BBB MALE 3 CCC MALE 4 DDD MALE 6 DDD FEMALE |
参数:
序号 |
参数 |
说明 |
1 |
--new-data <path> |
HDFS 待合并的数据目录,合并后在新的数据集中保留 |
2 |
--onto <path> |
HDFS合并后,重复的部分在新的数据集中被覆盖 |
3 |
--merge-key <col> |
合并键,一般是主键ID |
4 |
--jar-file <file> |
合并时引入的jar包,该jar包是通过Codegen工具生成的jar包 |
5 |
--class-name <class> |
对应的表名或对象名,该class类是包含在jar包中的 |
6 |
--target-dir <path> |
合并后的数据在HDFS里存放的目录 |