当前位置: 代码迷 >> 综合 >> 大数据(二十七):Sqoop常用命令和公用参数
  详细解决方案

大数据(二十七):Sqoop常用命令和公用参数

热度:69   发布时间:2023-10-18 06:43:19.0

一、常用命令列举

命令

说明

import

ImportTool

将数据导入到集群

export

ExportTool

将集群数据导出

codegen

CodeGenTool

获取数据库中某张表数据生成java并打包jar

create-hive-table

CreateHiveTableTool

创建Hive表

eval

EvalSqlTool

查询SQL执行结果

import-all-tables

ImportAllTablesTool

导入某个数据库下所有表到HDFS中

job

JobTool

用来生成一个sqoop的任务,生成后,该任务并不执行,除非使用命令执行该任务。

list-databases

ListDatabasesTool

列出所有数据库名

list-tables

ListTablesTool

列出某个数据库下所有表

merge

MergeTool

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

metastore

MetastoreTool

记录Sqoop Job的元数据信息,如果不启动Metastore实例,则默认的元数据存储目录为~/.sqoop,如果要更改存储目录,可以在配置文件sqoop-site.xml中进行更改。

help

HelpTool

打印sqoop帮助信息

version

VersionTool

打印sqoop版本信息

二、命令&参数详解

1.公用参数:数据库连接

参数

说明

--connect

连接关系型数据库的URL

--connection-manager

指定要使用的连接管理类

--driver

JDBC的driver class

--help

打印帮助信息

--password

连接数据库的密码

--username

连接数据库的用户名

--verbose

在控制台打印出详细信息

2.公用参数:import

参数

说明

--enclosed-by<char>

给字段值前后加上指定的字符

--escaped-by<char>

对字段中的双引号加转义符

--fields-terminated-by<char>

设定每个字段是以什么符号作为结束 默认为逗号

--lines-terminated-by<char>

设定每行记录之间的分隔符,默认是\n

--mysql-delimiters

Mysql默认的分隔符设置,字段之间以逗号分隔,行之间以\n分隔,默认转译符是\,字段值以单引号包裹。

--optionally-enclosed-by<char>

给带有双引号或单引号的字段值前后加上指定字符

3.公用参数:export

参数

说明

--input-enclosed-by<char>

对字段值前后加上指定字符

--input-escaped-by<char>

对含有转译符的字段做转义处理

--input-fields-terminated-by<char>

字段之间的分隔符

--input-lines-terminated-by<char>

行之间的分隔符

--input-optionally-enclosed-by<char>

给带有双引号或单引号的字段前后加上指定字符

4.公用参数:hive

参数

说明

--hive-delims-replacement<arg>

用自定义的字符串替换掉数据中的\r\n和\013\010等字符

--hive-drop-import-delims

在导入数据到hive时,去掉数据中的\r\n\013\010这种的字符

--map-column-hive<map>

生成hive表时,可以更改生成字段的数据类型

--hive-partition-key

创建分区,后面直接跟分区名,分区字段的默认类型为string

--hive-partition-value<v>

导入数据时,指定某个分区的值

--hive-home<dir>

hive的安装目录,可以通过该参数覆盖之前默认配置的目录

--hive-import

将数据从关系数据库中导入到hive表中

--hive-overwrite

覆盖掉在hive表中已经存在的数据

--create-hive-table

默认是false,即如果目标表已经存在了,那么创建任务失败

--hive-table

后面接要创建的hive表,默认使用mysql的表名

--table

指定关系数据库的表名