Sqoop一些常用命令及参数(二)

命令&参数详解-2 命令&参数(5)list-databases + list-tables + merge + metastore

一、list-databases

1.命令

如:

$ bin/sqoop list-databases \

--connect jdbc:mysql://bigdata111:3306/ \

--username root \

--password 000000

2.参数

与公用参数一样

二、list-tables

1.命令

如:

$ bin/sqoop list-tables \

--connect jdbc:mysql://bigdata111:3306/test \

--username root \

--password 000000

2.参数

与公用参数一样

三、merge

将HDFS中不同目录下面的数据合并在一起并放入指定目录中

数据环境:注意:以下数据自己手动改成\t

new.txt

1 AAA male

2 BBB male

3 CCC male

4 DDD male

 

old.txt

1 AAA female

2 CCC female

3 BBB female

6 DDD female

尖叫提示:上边数据的列之间的分隔符应该为\t,行与行之间的分割符为\n,如果直接复制,请检查之。

 

 

1.命令

如:

开始合并:注:是hdfs路径

$ bin/sqoop merge \

--new-data /new/ \

--onto /old/ \

--target-dir /test/merged1 \

--jar-file /opt/Desktop/student/Student.jar \

--class-name Student \

--merge-key id

 

结果:

1 AAA MALE

2 BBB MALE

3 CCC MALE

4 DDD MALE

6 DDD FEMALE

--target-dir /test/merged1 \  最终生成的路径

 

 

 

 

 2.参数

序号

参数

说明

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里存放的目录

 四、metastore

[root@bigdata111 ~]# ls -la

记录了Sqoop job的元数据信息,如果不启动该服务,那么默认job元数据的存储目录为~/.sqoop,可在sqoop-site.xml中修改。

 

 

 1.命令

如:启动sqoop的metastore服务

$ bin/sqoop metastore

 2.参数

序号

参数

说明

1

--shutdown

关闭metastore

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3