尚硅谷大数据技术之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里存放的目录

 


上一篇:
下一篇: