博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sqoop实战一 增量导入hdfs
阅读量:5061 次
发布时间:2019-06-12

本文共 2571 字,大约阅读时间需要 8 分钟。

 1. 参数说明

 

序号

命令/command

说明

1

impor

ImportTool

从关系型数据库中导入数据(来自表或者查询语句)到HDFS中

2

export

ExportTool

将HDFS中的数据导入到关系型数据库中

3

codegen

CodeGenTool

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

4

create-hive-table

CreateHiveTableTool

创建Hive表

5

eval

EvalSqlTool

查看SQL执行结果

6

import-all-tables

ImportAllTablesTool

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

7

job

JobTool

 

8

list-databases

ListDatabasesTool

列出所有数据库名

9

list-tables

ListTablesTool

列出某个数据库下所有表

10

merge

MergeTool

 

11

metastore

MetastoreTool

 

12

help

HelpTool

查看帮助

13

version

VersionTool

查看版本

 

2. Import Common arguments通用参数,主要是针对关系型数据库链接的一些参数

参数 描述
–connect < jdbc-uri > JDBC连接串
–connection-manager < class-name > 连接管理类
–driver < class-name > 手动指定JDBC驱动类
–hadoop-mapred-home < dir > 可以覆盖$HADOOP_MAPRED_HOME
–help 使用帮助
–password-file 指定包含密码的文件
-P 执行import时会暂停,等待用户手动输入密码
–password < password > 直接将密码写在命令行中
–username < username > 指定用户名
–verbose 显示Sqoop任务更多执行信息
–connection-param-file < filename > 可选的参数,用于提供连接参数
–relaxed-isolation 设置每个mapmer的连接事务隔离

 

3。import控制参数

参数 描述
–append 导入的数据追加到数据文件中
–as-avrodatafile 导入数据格式为avro
–as-sequencefile 导入数据格式为sqeuqncefile
–as-textfile 导入数据格式为textfile
–boundary-query < statement > 代替min(split-by),max(split-by)值指定的边界,下面会有详细介绍
–columns < col,col,col… > 指定导入字段
–delete-target-dir 如果导入的target路径存在,则删除
–direct 使用direct模式
–fetch-size < n > 从数据库一次性读入的记录数
-inline-lob-limit < n > 设定大对象数据类型的最大值
-m, –num-mappers < n > 指定并行导入数据的map个数,默认为4个
-e, –query < statement > 导入查询语句得到的数据
–split-by < column-name > 一般与-m参数一起使用,指定分割split的字段
–table < table-name > 指定database中的表名
–target-dir < dir > 指定目标HDFS路径
–warehouse-dir < dir > 指定表目标路径所在路径
–where < where clause > 即sql语句中的where条件
-z, –compress 打开压缩功能
–compression-codec < c > 使用Hadoop的压缩,默认为gzip压缩
–null-string < null-string > 源表中为null的记录导入为string类型时显示为null-string,默认显示为”null”
–null-non-string < null-string > 源表中为null的记录导入为非string类型时显示为null-string,默认显示为”null”

4。增量导入

  sqoop支持两种增量导入到hive的模式, 一种是 append,即通过指定一个递增的列,比如: 

     --incremental append  --check-column id --last-value 0 
     另种是可以根据时间戳,比如: 
  --incremental lastmodified --check-column time --last-value '2013-01-01 11:0:00' 
  就是只导入time比'2013-01-01 11:0:00'更大的数据。

5。具体代码示例

/opt/softwares/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin/sqoop import --driver com.microsoft.sqlserver.jdbc.SQLServerDriver \

--connect "jdbc:sqlserver://10.10.0.3\\sql2008;database=Dc" --username bgdbo --password 123456\
--table=Customer --target-dir /user/Customer \
--columns "CustomerID,CusCode,TrueName,LogDate" \
--fields-terminated-by "\t" \
--check-column "LogDate" \
--incremental "append" \
--last-value "2018-4-24 00:00:00" \

转载于:https://www.cnblogs.com/lovefendi/p/8952398.html

你可能感兴趣的文章
pytho logging
查看>>
Python内置函数(29)——help
查看>>
oracle导出/导入 expdp/impdp
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
Android TextView加上阴影效果
查看>>
《梦断代码》读书笔记(三)
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
输入月份和日期,得出是今年第几天
查看>>
pig自定义UDF
查看>>
Kubernetes 运维学习笔记
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
枚举的使用
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>