同import参数
-z,–compress
同import参数
–compression-codec
同import参数
8.job
用来生成一个sqoop的任务,生成后,该任务并不执行,除非使用命令执行该任务。
sqoopjob
参数
说明
–create
生成一个job,示例如:
sqoopjob–createmyjob —import–connectjdbc:
mysql:
//localhost:
3306/test–table
person
–delete
删除一个jobsqoopjob–deletemyjob
–exec
执行一个jobsqoopjob–execmyjob
–help
显示帮助说明
–list
显示所有的jobsqoopjob–list
–meta-connect
用来连接metastore服务,示例如:
–meta-connectjdbc:
hsqldb:
hsql:
//localhost:
16000/sqoop
–show
显示一个job的各种参数sqoopjob–showmyjob
–verbose
打印命令运行时的详细信息
9.list-databases
打印出关系数据库所有的数据库名
sqooplist-databases–connectjdbc:
mysql:
//localhost:
3306/-usernameroot-password123456
10.list-tables
打印出关系数据库某一数据库的所有表名
sqooplist-tables–connectjdbc:
mysql:
//localhost:
3306/zihou-usernameroot-password123456
11.merge
将HDFS中不同目录下面的数据合在一起,并存放在指定的目录中,示例如:
sqoopmerge–new-data/test/p1/person–onto/test/p2/person–target-dir/test/merged–jar-file/opt/data/sqoop/person/Person.jar–class-namePerson–merge-keyid
其中,–class-name所指定的class名是对应于Person.jar中的Person类,而Person.jar是通过Codegen生成的
参数
–new-data
Hdfs中存放数据的一个目录,该目录中的数据是希望在合并后能优先保留的,原则上一般是存放越新数据的目录就对应这个参数。
–onto
Hdfs中存放数据的一个目录,该目录中的数据是希望在合并后能被更新数据替换掉的,原则上一般是存放越旧数据的目录就对应这个参数。
–merge-key
合并键,一般是主键ID
–jar-file
合并时引入的jar包,该jar包是通过Codegen工具生成的jar包
–class-name
对应的表名或对象名,该class类是包含在jar包中的。
–target-dir
合并后的数据在HDFS里的存放目录
12.metastore
记录sqoopjob的元数据信息,如果不启动metastore实例,则默认的元数据存储目录为:
~/.sqoop,如果要更改存储目录,可以在配置文件sqoop-site.xml中进行更改。
metastore实例启动:
sqoopmetastore
–shutdown
关闭一个运行的metastore实例
13.version
显示sqoop版本信息
语句:
sqoopversion
14.help
打印sqoop帮助信息
语句:
sqoophelp
15.公共参数
Hive参数
参数
说明
–hive-delims-replacement
用自定义的字符串替换掉数据中的\n,\r,and\01等
–hive-drop-import-delims
在导入数据到hive中时,去掉数据中\n,\r和\01这样的字符
–map-column-hive
生成hive表时,可以更改生成字段的数据类型,格式如:
–map-column-hiveTBL_ID=String,LAST_ACCESS_TIME=string
–hive-partition-key
创建分区,后面直接跟分区名即可,创建完毕后,通过describe表名可以看到分区名,默认为string型
–hive-partition-value
该值是在导入数据到hive中时,与–hive-partition-key设定的key对应的value值。
–hive-home
Hive的安装目录,可以通过该参数覆盖掉默认的hive目录
–hive-import
将数据从关系数据库中导入到hive表中
–hive-overwrite
覆盖掉在hive表中已经存在的数据
–create-hive-table
默认是false,如果目标表已经存在了,那么创建任务会失败
–hive-table
后面接要创建的hive表
–table
指定关系数据库表名
数据库连接参数
参数
说明
–connect
Jdcb连接url,示例如:
–connectjdbc:
mysql:
//localhost:
3306/hive
–connection-manager
指定要使用的连接管理类
–driver
数据库驱动类
–hadoop-home
Hadoop根目录
–help
打印帮助信息
-P
从控制端读取密码
–password
Jdbcurl中的数据库连接密码
–username
Jdbcurl中的数据库连接用户名
–verbose
在控制台打印出详细信息
–connection-param-file
一个记录着数据库连接参数的文件
文件输出参数
用于import场景。
示例如:
sqoopimport–connectjdbc:
mysql:
//localhost:
3306/test–usernameroot–P–tableperson–split-byid–check-columnid–incrementalappend –last-value1–enclosed-by‘\”‘
–escaped-by\#–fields-terminated-by.
参数
说明
–enclosed-by
给字段值前后加上指定的字符,比如双引号,示例:
–enclosed-by‘\”‘,显示例子:
”3″,”jimsss”,”dd@”
–escaped-by
给双引号作转义处理,如字段值为”测试”,经过–escaped-by\\处理后,在hdfs中的显示值为:
\”测试\”,对单引号无效
–fields-terminated-by
设定每个字段是以什么符号作为结束的,默认是逗号,也可以改为其它符号,如句号.,示例如:
–fields-terminated-by.
–lines-terminated-by
设定每条记录行之间的分隔符,默认是换行,
–mysql-delimiters
Mysql默认的分隔符设置,字段之间以,隔开,行之间以换行\n隔开,默认转义符号是\,字段值以单引号’包含起来。
–optionally-enclosed-by
enclosed-by是强制给每个字段值前后都加上指定的符号,而–optionally-enclosed-by只是给带有双引号或单引号的字段值加上指定的符号,故叫可选的。
示例如:
–optionally-enclosed-by‘$’
文件输入参数
对数据格式的解析,用于export场景,与文件输出参数相对应。
示例如:
sqoopexport–connectjdbc:
mysql:
//localhost:
3306/test–usernameroot–password
123456 –tableperson2–export-dir/user/hadoop/person–staging-tableperson3
–clear-staging-table–input-fields-terminated-by‘,’
在hdfs中存在某一格式的数据,在将这样的数据导入到关系数据库中时,必须要按照该格式来解析出相应的字段值,比如在hdfs中有这样格式的数据:
3,jimsss,dd@,1,2013-08-0716:
00:
48.0,”hehe”,
上面的各字段是以逗号分隔的,那么在解析时,必须要以逗号来解析出各字段值,如:
–input-fields-terminated-by‘,’
参数
说明
–input-enclosed-by
对字段值前后有指定的字符–input-enclosed-by‘\”‘,数据例子:
”3″,”jimsss”,”dd@”
–input-escaped-by
对含有转义双引号的字段值作转义处理,如字段值为\”测试\”,经过–input-escaped-by\\处理后,解析得到的值为:
”测试”,对单引号无效。
–input-fields-terminated-by
以字段间的分隔符来解析得到各字段值,示例如:
–input-fields-terminated-by,
–input-lines-terminated-by
以每条记录行之间的分隔符来解析得到字段值,示例如:
–input-lines-terminated-by‘#’以#号分隔
–input-