Sqoop常用命令

一、命令列表

在这里插入图片描述

序号命令说明
1importimportTool将数据导入到集群
2exportExportTool将集群数据导出
3codegenCodeGenTool获取数据库中某张表数据生成Java并打包Jar
4create-hive-tableCreateHiveTableTool创建Hive表
5evalEvalSqlTool查看SQL执行结果
6import-all-tablesImportAllTablesTool导入某个数据库下所有表到HDFS中
7jobJobTool用来生成一个sqoop的任务,生成后,该任务并不执行,除非使用命令执行该任务。
8list-databasesListDatabasesTool列出所有数据库名
9list-tablesListTablesTool列出某个数据库下所有表
10mergeMergeTool将HDFS中不同目录下面的数据合在一起,并存放在指定的目录中
11metastoreMetastoreTool记录sqoop job的元数据信息,如果不启动metastore实例,则默认的元数据存储目录为:~/.sqoop,如果要更改存储目录,可以在配置文件sqoop-site.xml中进行更改。
12helpHelpTool打印sqoop帮助信息
13versionVersionTool打印sqoop版本信息

二、命令详细解释

2.1通用参数:

序号参数说明
1–connect连接关系型数据库的URL
2–connection-manager指定要使用的连接管理类,一般不用
3–diver手动指定使用 JDBC 驱动类
4–help打印帮助信息
5–password连接数据库的密码
6–username连接数据库的用户名
7–verbose在控制台打印出详细信息,(其实是将日志级别调低)
8–hadoop-homehadoop目录,可以覆盖配置文件里面的

2.2 import相关

2.3export 相关

2.4 codegen 命令

2.4.1 定义解释

Sqoop在进行每一次的导出任务时,都会调用codegen,生成一个java文件,并编译打包成一个jar,供MapReduce使用。
这个java文件包装了一系列的对导出数据的访问接口,我们可以尝试通过对这个java文件进行分析,找到指定双字节分隔符的方法。
一般地,如果是使用的–query用查询语句获取数据,生成的文件为QueryResult.java,QueryResult.jar,
如果使用的是–table,则用指定的表名对相应文件命名.java文件生成在sqoop脚本的同一目录下。

在这里插入图片描述

2.4.2 codegen语法

$ sqoop codegen(generic-args)(codegen-args)

2.4.3 参数

序号参数说明
1–bindir 指定生成的Java文件编译成的class文件及将生成文件打包为jar的文件输出路径
2–class-name 设定生成的Java文件指定的名称
3–outdir 生成Java文件存放的路径
4–package-name 包名,如com.z,就会生成com和z两级目录
5–input-null-non-string 在生成的Java文件中,可以将null字符串或者不存在的字符串设置为想要设定的值(例如空字符串)
6-input-null-string 将null字符串替换成想要替换的值(一般与5同时使用)
7–map-column-java 数据库字段在生成的Java文件中会映射成各种属性,且默认的数据类型与数据库类型保持对应关系。该参数可以改变默认类型,例如:–map-column-java id=long, name=String
8–null-non-string 在生成Java文件时,可以将不存在或者null的字符串设置为其他值
9–null-string 在生成Java文件时,将null字符串设置为其他值(一般与8同时使用)
10–table 对应关系数据库中的表名,生成的Java文件中的各个属性与该表的各个字段一一对应

2.4.4 例子

./sqoop codegen --connect jdbc:mysql://localhost:3306/test --username root --password root --table test001 --fields-terminated-by "\t" --bindir /data1/lulu/test001/ --outdir /data1/lulu/test002

文件位置如下:
在这里插入图片描述
test002文件夹里面是 .java文件
在这里插入图片描述

2.4.5 直接运行jar

./sqoop import --connect jdbc:mysql://localhost:3306/test --username root --password root --table test001 --target-dir /user/company --delete-target-dir --num-mappers 1 --jar-file /data1/lulu/test001/test001.jar --class-name test001

在这里插入图片描述

2.5 create-hive-table

–create-hive-table: 自动推断表字段类型直接建表

./sqoop create-hive-table --connect jdbc:mysql://localhost:3306/test --username root --password root --table test001 --fields-terminated-by "\t" --hive-database warehouse

在这里插入图片描述

2.6 eval 命令

执行sql语句,结果会打印在控制台,可以用来校验下import的查询条件是否正确,经常用于在import之前,了解一下SQL语句是否正确,数据是否正常,并可以将结果显示在控制台。

./sqoop eval --connect jdbc:mysql://localhost:3306/test --username root --password root --query "select * from test001"

2.7 import-all-tables

可以将RDBMS中的所有的表导入到hdfs中,每一个表都对应一个HDFS目录,数据也导入到hdfs

./sqoop import-all-tables --connect jdbc:mysql://localhost:3306/test --username root --password root --warehouse-dir /all_tables_new -m 1;

在这里插入图片描述

2.8 import-mainframe

直接import主机 ,一般不常用

2.9 job

用来生成一个sqoop任务,生成后不会立刻执行,需要手动执行,Sqoop可以将import任务保存为job,可以理解为起了个别名,这样方便的Sqoop任务的管理。

2.9.1 参数列表

参数描述
–create 创建一个job,job-id是job名称
–delete 删除这个job
–exec 执行这个job
–show Show the parameters for a saved job.
–listList all saved jobs
–meta-connect Specifies the JDBC connect string used to connect to the metastore

2.9.2 例子

//import-all-tables 和前面的 -- 有一个空格
./sqoop job --create job_test001 -- import-all-tables --connect jdbc:mysql://localhost:3306/test --username root --password root -m 1 --warehouse-dir /all_tables_new_001;

./sqoop job --list

在这里插入图片描述
job存储方案
job的是有两种存储方案的,通过配置–meta-connect或者在conf/sqoop-site.xml 里配置 sqoop.metastore.client.autoconnect.url 参数来指定是否使用metastore-client

如果job信息放到 ${HOME}/.sqoop 目录下,此目录下有两个文件:
metastore.db.properties:metastore的配置信息
metastore.db.script:job的详细信息,通过sql语句存储
在这里插入图片描述
在这里插入图片描述
注意: 如果使用Oozie执行sqoop-job的话,务必将sqoop-site.xml 中的 sqoop.metastore.client.record.password参数设置为true

2.10 list-databases

列出数据库

 ./sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password root

在这里插入图片描述

2.11 list-tables

列出表

./sqoop list-tables --connect jdbc:mysql://localhost:3306/test --username root --password root

在这里插入图片描述

2.12 merge 合并两个数据集

需要先用 codegen 命令打成jar再运行。

2.13 metastore

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一直打铁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值