5.2.7 命令&参数:codegen
将关系型数据库中的表映射为一个Java类,在该类中有各列对应的各个字段。
如:
$ 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"
序号 参数 说明
1 --bindir <dir> 指定生成的Java文件、编译成的class文件及将生成文件打包为jar的文件输出路径
2 --class-name <name> 设定生成的Java文件指定的名称
3 --outdir <dir> 生成Java文件存放的路径
4 --package-name <name> 包名,如com.z,就会生成com和z两级目录
5 --input-null-non-string <null-str> 在生成的Java文件中,可以将null字符串或者不存在的字符串设置为想要设定的值(例如空字符串)
6 --input-null-string <null-str> 将null字符串替换成想要替换的值(一般与5同时使用)
7 --map-column-java <arg> 数据库字段在生成的Java文件中会映射成各种属性,且默认的数据类型与数据库类型保持对应关系。该参数可以改变默认类型,例如:--map-column-java id=long, name=String
8 --null-non-string <null-str> 在生成Java文件时,可以将不存在或者null的字符串设置为其他值
9 --null-string <null-str> 在生成Java文件时,将null字符串设置为其他值(一般与8同时使用)
10 --table <table-name> 对应关系数据库中的表名,生成的Java文件中的各个属性与该表的各个字段一一对应
5.2.8 命令&参数:create-hive-table
生成与关系数据库表结构对应的hive表结构。
命令:
如:
bin/sqoop eval
--connect jdbc:mysql://hadoop102:3306/company
--username root
--password 000000
--query "SELECT * FROM staff"
参数:
序号 参数 说明
1 --query或--e 后跟查询的SQL语句
5.2.10 命令&参数:import-all-tables
可以将RDBMS中的所有表导入到HDFS中,每一个表都对应一个HDFS目录
命令:
如:
$ bin/sqoop import-all-tables
--connect jdbc:mysql://hadoop102:3306/company
--username root
--password 000000
--warehouse-dir /all_tables
参数:
序号 参数 说明
1 --as-avrodatafile 这些参数的含义均和import对应的含义一致
2 --as-sequencefile
3 --as-textfile
4 --direct
5 --direct-split-size <n>
6 --inline-lob-limit <n>
7 --m或—num-mappers <n>
8 --warehouse-dir <dir>
9 -z或--compress
10 --compression-codec
5.2.11 命令&参数:job
用来生成一个sqoop任务,生成后不会立即执行,需要手动执行。
命令:
如:
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
参数:与公用参数一样
本教程由尚硅谷教育大数据研究院出品,如需转载请注明来源,欢迎大家关注尚硅谷公众号(atguigu)了解更多。
网友评论