1、列出MySql数据库中的所有数据库

 $ sqoop list-databases --connect jdbc:mysql://192.168.254.105:3306/--username root --password root
注意:列出所有数据库操作只能作用于HSQLDB、MySQL、Oracle数据库上,特别需要注意的是,当需要列出Oracle上的所有数据库时,连接Oracle数据库的用户必须具备DBA权限。

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 ",";
注意:--target-dir /user/hive/warehouse/userinfos2   可以用  --hive-import --hive-table userinfos2 进行替换

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帮助文档的更多相关文章

  1. HP DL160 Gen9服务器集群部署文档

    HP DL160 Gen9服务器集群部署文档 硬件配置=======================================================Server        Memo ...

  2. Cloudera Manager5及CDH5在线(cloudera-manager-installer.bin)安装详细文档

    问题导读:1.Cloudera Manager5如何使用cloudera-manager-installer.bin安装?2.Cloudera Manager5安装被中断该如何继续安装?还是重新安装? ...

  3. C#给PDF文档添加文本和图片页眉

    页眉常用于显示文档的附加信息,我们可以在页眉中插入文本或者图形,例如,页码.日期.公司徽标.文档标题.文件名或作者名等等.那么我们如何以编程的方式添加页眉呢?今天,这篇文章向大家分享如何使用了免费组件 ...

  4. dotNET跨平台相关文档整理

    一直在从事C#开发的相关技术工作,从C# 1.0一路用到现在的C# 6.0, 通常情况下被局限于Windows平台,Mono项目把我们C#程序带到了Windows之外的平台,在工作之余花了很多时间在M ...

  5. ABP文档 - Javascript Api - AJAX

    本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...

  6. ABP文档 - EntityFramework 集成

    文档目录 本节内容: Nuget 包 DbContext 仓储 默认仓储 自定义仓储 特定的仓储基类 自定义仓储示例 仓储最佳实践 ABP可使用任何ORM框架,它已经内置了EntityFrame(以下 ...

  7. ABP文档 - SignalR 集成

    文档目录 本节内容: 简介 安装 服务端 客户端 连接确立 内置功能 通知 在线客户端 帕斯卡 vs 骆峰式 你的SignalR代码 简介 使用Abp.Web.SignalR nuget包,使基于应用 ...

  8. ABP文档 - 通知系统

    文档目录 本节内容: 简介 发送模式 通知类型 通知数据 通知重要性 关于通知持久化 订阅通知 发布通知 用户通知管理器 实时通知 客户端 通知存储 通知定义 简介 通知用来告知用户系统里特定的事件发 ...

  9. ABP文档 - Hangfire 集成

    文档目录 本节内容: 简介 集成 Hangfire 面板授权 简介 Hangfire是一个综合的后台作业管理器,可以在ABP里集成它替代默认的后台作业管理器,你可以为Hangfire使用相同的后台作业 ...

随机推荐

  1. (转)sizeof()和_countof()

    (转)sizeof()和_countof()   先看程序: #include <iostream> using namespace std; int main(int argc, cha ...

  2. oozie调用java实例------shell action

    Oozie提供了一个方便的方式来运行任何命令.这可能是Unix命令,Perl或Python脚本,甚至java程序都可以通过Unix shell调用.shell命令运行在任意的Hadoop集群节点上,并 ...

  3. A potentially dangerous Request.Form value was detected from the client的解决办法

    网上找了这么多,这条最靠谱,记录下来,以备后用 <httpRuntime requestValidationMode="2.0"/> <pages validat ...

  4. 二、 OSI模型的实现TCP 、IP

    主要名词定义: IPIP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层:相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层.I ...

  5. ZOJ 3379 Master Spark

    计算出中轴能覆盖到某个点的极角范围,最大覆盖次数即是答案. 首先把中轴和点重合,此时中轴的角度为theta = atan(y/x), 然后以原点为圆心旋转点和抛物线相交求出之间的夹角, 把x = a* ...

  6. nginx安装和基础代理配置

    mac上执行 npm install nginx 安装好后运行nginx sudo nginx 一般mac下nginx会安装在 /usr/local/etc/nginx 下 里面的nginx.conf ...

  7. Fiddler拦截并动态修改网页内容简易教程

    Fiddler默认可以拦截全局http请求,再加上它具备的脚本功能,可以很简单的达到动态修改网页内容的目的. 1.启动Fiddler 2.打开Rules->Customize Rules..., ...

  8. html或jsp页面自动提交,无需每次重启服务

    从eclipse转到idea遇到各种问题,之前eclipse可以自动保存页面内容无需重启服务,但是idea不可以,网上找了n种办法也没用,可能版本不一样吧,把我的解决方法纪录一下,方便以后有人遇到这个 ...

  9. 学校管理系统设计java(数据库、源码、演讲内容、ppt等)

    该系统使用java语言编写 获取班级项目展第二名 项目展示:https://www.bilibili.com/video/av27910081/?p=10 登录截图 git:https://githu ...

  10. 时空隧道FQ

    给你推荐一款海外网站加速工具,为科技工作者.海外归国人员.企业团队.外贸工作者提供海外上网服务,永久免费. 国外网址:https://chrome.google.com/webstore/detail ...