Sqoop帮助文档
1、列出MySql数据库中的所有数据库
$ sqoop list-databases --connect jdbc:mysql://192.168.254.105:3306/--username root --password root
2、列出MySql数据库中指定库中的所有表
$ sqoop list-tables --connect jdbc:mysql://192.168.254.105:3306/sqoop --username root --password root
3、将关系型数据库的表结构复制到Hive中
$ sqoop create-Hive-table --connect jdbc:mysql://192.168.254.105:3306/test --table users --username dyh --password 000000--hive-table users --fields-terminated-by "\t" --lines-terminated-by "\n";
- --fields-terminated-by "\0001" 是设置每列之间的分隔符,"\0001"是ASCII码中的1,它也是hive的默认行内分隔符, 而sqoop的默认行内分隔符为","
- --lines-terminated-by "\n" 设置的是每行之间的分隔符,此处为换行符,也是默认的分隔符;
4、将数据从关系数据库导入文件到hive表中
$ sqoop import --connect jdbc:mysql://192.168.254.105:3306/test --username dyh --password 000000--table users --hive-import --hive-table users -m 2--fields-terminated-by "\0001";
- -m 2 表示由两个map作业执行;
- --fields-terminated-by "\0001" 需同创建hive表时保持一致;
5、将hive中的表数据导入到mysql数据库表中
$ sqoop export --connect jdbc:mysql://192.168.254.105:3306/test --username dyh --password 000000--table users --export-dir /user/hive/warehouse/users/part-m-00000--input-fields-terminated-by '\0001'
- 在进行导入之前,mysql中的表userst必须已经提起创建好了。
- jdbc:mysql://192.168.254.105:3306/test中的IP地址改成localhost会报异常
6、将数据从关系数据库导入文件到hive表中,--query 语句使用
$ sqoop import --append --connect jdbc:mysql://192.168.254.105:3306/test --username dyh --password 000000--query "select id,age,name from userinfos where \$CONDITIONS"-m 1--target-dir /user/hive/warehouse/userinfos2 --fields-terminated-by ",";
7、将数据从关系数据库导入文件到hive表中,--columns --where 语句使用
$ sqoop import --append --connect jdbc:mysql://192.168.254.105:3306/test --username dyh --password 000000--table userinfos --columns "id,age,name"--where "id > 3 and (age = 88 or age = 80)"-m 1--target-dir /user/hive/warehouse/userinfos2 --fields-terminated-by ",";
8、Sqoop查看版本信息
$ sqoop version
Sqoop{revnumber}
git commit id 46b3e06b79a8411320d77c984c3030db47dd1c22
Compiled by aaron@jargon on MonMay1713:: PDT
9、Sqoop实例
1)导入Mysql的employee_id,first_name,last_name,job_title到Hive中
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --columns "employee_id, first_name, last_name, job_title"
2)使用8个任务导入数据
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES -m 8
3)保存数据到序列文件中,并设置生成的类名为“com.foocorp.Employee”
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --class-name com.foocrop.Employee --as-sequencefile
4)文本导入时指定分隔符
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --fields-terminated-by '\t'--lines-terminated-by '\n' --optionally-enclosed-by'\"'
5)导入数据到Hive
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --hive-import
6)根据条件导入数据
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --where "start_date > '2016-12-01'"
7)指定列进行工作量分隔
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --split-by dept_id
8)导入增量数据
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --where 'id>100000'--target-dir /incremental_dataset --append
9)校验mysql数据行数和导入hdfs中的行数
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --validate
10)导入mysql的所有表
$ sqoop import-all-tables --connect jdbc:mysql://db.foo.com/corp
11)从文件中读取数据库密码
$ sqoop import-mainframe --connect <host>--username david --password-file ${user.home}/.password
12)创建Job
$ sqoop job --create myjob --import --connect jdbc:mysql://example.com/db --table mytable
#查看以保存的Job
$ sqoop job --list
Available jobs:
myjob
#查看Job详情
$ sqoop job --show myjob
Job: myjob
Tool: import
Options:
----------------------------
direct.import = false
codegen.input.delimiters.record =
hdfs.append.dir = false
db.table = mytable
- 执行Job
$ sqoop job --exec myjob
//:: INFO tool.CodeGenTool:Beginning code generation
...
13)执行操作可以重写job的参数,通过--option方式来实现。例如,数据库需要用户名和密码,可以使用如下方式:
$ sqoop job --exec myjob --username someuser -P
Enter password:
//:: INFO tool.CodeGenTool:Beginning code generation
...
14)查询employees表的十条数据
$ sqoop eval--connect jdbc:mysql://db.example.com/corp --query "SELECT * FROM employees LIMIT 10"
15)插入一条数据到foo表中
$ sqoop eval--connect jdbc:mysql://db.example.com/corp -e "INSERT INTO foo VALUES(42, 'bar')"
16)MySQL日期‘0000-00-00’转换方式:
- 转换为null:convertToNull
- 客户端抛出异常
- 转换为最近的合法日期(0001-01-01):round
$ sqoop import --table foo --connect jdbc:mysql://db.example.com/someDb?zeroDateTimeBehaior=round
17)Mysql快速导入
MySQL直连器允许使用mysqldump和mysqlimport工具函数进行快速的导入和导出,而不是使用select和insert方式
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --direct
18)Mysql快速的导入指定编码方式为utf8
$ sqoop import --connect jdbc:mysql://db.foo.com/corp --table EMPLOYEES --direct -- --default-character-set=utf8
Sqoop帮助文档的更多相关文章
- HP DL160 Gen9服务器集群部署文档
HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server Memo ...
- Cloudera Manager5及CDH5在线(cloudera-manager-installer.bin)安装详细文档
问题导读:1.Cloudera Manager5如何使用cloudera-manager-installer.bin安装?2.Cloudera Manager5安装被中断该如何继续安装?还是重新安装? ...
- C#给PDF文档添加文本和图片页眉
页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...
- dotNET跨平台相关文档整理
一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ABP文档 - EntityFramework 集成
文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...
- ABP文档 - SignalR 集成
文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...
- ABP文档 - 通知系统
文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...
- ABP文档 - Hangfire 集成
文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...
随机推荐
- ABAP OPEN SQL里OPEN CURSOR和SELECT的比较
OPEN CURSOR After the OPEN CURSOR statement, the database cursor is positioned in front of the first ...
- Jmeter入门14 后置处理器JSON Extractor 提取json的多个值
json串 []表示对象组成的数组,{}表示对象. 对象里包含多个 "属性":属性值.属性值可以是值,或数组,或对象. JSON Extractor使用json path表达式匹配 ...
- Android坡度计
艺术来源于生活,对我来说,编程也是一门艺术.今天发布这篇技术博客,就是我跟朋友在一次爬山过程中的争论,他跟我说那座山至少45度,我说没有,最多30度.我们彼此争论不休,于是我就想,为啥不写个手机程序来 ...
- Wannafly挑战赛1,2
做了好久了,今天大佬讲题,好厉害,弱鸡只会几道水题. Treepath 给定一棵n个点的树,问其中有多少条长度为偶数的路径.路径的长度为经过的边的条数.x到y与y到x被视为同一条路径.路径的起点与终点 ...
- LG3690 【【模板】Link Cut Tree (动态树)】
题目 终于去写\(LCT\)了 这个大爷讲的挺好的 板子 #include<algorithm> #include<iostream> #include<cstring& ...
- 五、设置 IntelliJ IDEA 主题和字体的方法
我们已经用 IntelliJ IDEA 创建了第一个 Java 项目 HelloWorld,如下图所示: 观察上图,大家有没有发现一些问题,例如,整个界面的字体是不是都太小了一点啊?不知道大家感受如何 ...
- qbxt Day4
1.树形dp 例题1 树上最长链 其实有两种方法,但为了简便,就只学了最通用的dp算法 我们考虑设dp[i][0/1]表示以i为根的最长路和次长路,然后拼接就行了 第二维0表示最长路,1表示次长路 i ...
- 【洛谷P1169】[ZJOI2007]棋盘制作
棋盘制作 题目链接 这个题是[USACO5.3]巨大的牛棚Big Barn和玉蟾宫的结合 一道顶两道毒瘤! 题解: 首先,棋盘有两种选法: 1.任意白格(x,y) (x+y)%2=0 ,任意黑格(x, ...
- 【洛谷P4342】[IOI1998]Polygon
Polygon 比较裸的环形DP(也可以说是区间DP) 将环拆成链,复制到后面,做区间DP即可 #include<iostream> #include<cstdio> usin ...
- 大专生自学web前端前前后后
先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...