Sqoop 一点通
sqoop 是什么?
sqoop 主要用于异构数据:
1. 将数据从hadoop,hive 导入、导出到关系型数据库mysql 等;
2. 将关系型数据库 mysql 中数据导入、导出到 hadoop 、hve 。
sqoop 版本说明
sqoop 1 版本主要从1.4.0 到 1.4.7;sqoop 2 版本主要从1.99.1 到1.99.7。
sqoop1 和 sqoop2 的主要区别
sqoop2 对 sqoop 1 主要在性能、安全方面做了优化升级,并新增了服务端,sqoop2 可以通过编程 rest api 的方式进行数据同步,不过目前 sqoop 2 没有实现将 mysql 数据直接导入到 hive,可以用 sqoop 1 版本通过 shell 客户端脚本方式实现 mysql 同步 hive 功能。
sqoop 基本原理
sqoop 1 主要通过 hadoop 的分布式计算 mapreduce 任务进行数据的同步。
(sqoop1 架构)
(sqoop 2 架构)
sqoop 命令
将 mysql 中数据导入到 hive 为例,包括全量、增量导入:
$ sqoop import
--connect jdbc:mysql://ip:3306/db 数据库连接串
--username root 用户名
--password root 密码
--split-by id 执行并行分批字段,一般主健,配合 -m 使用
-m 2 mapper 数
--fields-terminated-by "\t" 导出字段分隔符,此次为制表符为分隔符
--lines-terminated-by "\n" 换行符
--hive-import
--create-hive-table 创建 hive 表,如果目标表已经存在了,那么创建任务会失败
--hive-table pas_med_info hive 表名
--null-string '\\N' 将mysql 中的NULL数据转换为hive 的 NULL
--target-dir /apps/hive/warehouse/db/dt='日期' hive 在 hdfs 存储路径,dt='日期' 可以分区导入,当写成脚本时可以将日期做为变量,每天定时同步导入。
-- query where [可选] 增量导入方式一 ,推荐使用,直接可以用shell 脚本定时跑数据,方便简单
--incremental append或lastmodify [可选] 增量导入方式二,操作一
--append [可选] 如果选择lastmodify 则需要添加此命令,配合操作一使用
–check-column createtime [可选] 用于检查增量数据的列 ,必须是 timestamp 列,配合操作一使用
Sqoop2 代码示例
以 java 语言,将 mysql 中数据导入到 hdfs 为例:
1. 添加依赖
<dependency>
<groupId>org.apache.sqoop</groupId>
<artifactId>sqoop-client</artifactId>
<version>1.99.7</version>
</dependency>
2. 创建 sqoop 客户端
String url = "http://ip:12000/sqoop/";
SqoopClient client = new SqoopClient(url);
client.setServerUrl(url);
3. 创建 mysql link
4. 创建 hdfs link
5. 创建 job 并提交同步数据任务
限于篇幅,就不大量贴代码了,请关注公众号,私信我,我会将完整实例发你。
请关注公众号:媛道
Sqoop 一点通的更多相关文章
- python编码问题一点通
一.了解字符编码的知识储备 1. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的, ...
- php中的抽象方法和抽象类,简单明了,一点通
1.什么是抽象方法? 我们在类里面定义的没有方法提的方法就是抽象方法.所谓的没有方法体指的是,在声明的时候没有大括号以及其中的内容,而是直接在声明时在方法名后加上分号结束,另外在声明抽象方法时方 ...
- 鹅厂优文 | ReactJS一点通
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂新鲜事儿发表于云+社区专栏 作者:卢文喆 腾讯云 UI工程师 导语 | 当React 刚开始红的时候,一直觉得 JSX 的设计思想 ...
- note——《Tableau商业分析一点通》
为了更好地发掘各领域的数据价值,且能对数据进行精确分析及可视化,掌握资料的脉动,做出正确的决策 人们需要一种工具:能够快速灵活地连接和整合数据,提供简单的方式实现从不同的角度去观察研究数据,计算和展示 ...
- ZBrush 2018软件安装激活教程一点通
Zbrush下载地址:https://pixologic.com/CD 安装教程:(此CD代码仅有效一次,一旦此代码被使用,您将收到一封包含你账户信息的电子邮件.请把那封电子邮件保存在你的记录里.) ...
- Java8新特性一点通 | 回顾功能接口Functional Interface
Functional Interface Functional Interface是什么? 功能接口是java 8中的新增功能,它们只允许一个抽象方法.这些接口也称为单抽象方法接口(SAM接口).这些 ...
- Java8新特性一点通 | 回顾文件操作和watchService文件变更监视操作
文件操作 WatchService 文件操作 今天重温了一些文件操作: - Files.list() 遍历文件和目录 //List all files and sub-directories usin ...
- Java8新特性一点通 | 回顾字符转日期&JoinArray使用
StringToDate日期转换 Join Array使用 StringToDate日期转换 Convert string to date in ISO8601 format 利用LocalDate. ...
- 心有 netty 一点通!
一.标准的netty线程模型 双池合璧: 1.连接线程池: 连接线程池专门负责监听客户端连接请求,并完成连接的建立(包括诸如握手.安全认证等过程). 连接的建立本身是一个极其复杂.损耗性能的过程,此处 ...
随机推荐
- 前台后台$.psot交互
前台 {include file='public/header' /} <body class="login-bg"> <div class="logi ...
- IntelliJ IDEA 2017.3尚硅谷-----滚轮修改字体大小
- linux下修改mysql的编码格式
修改编码格式:https://blog.csdn.net/qq_30038111/article/details/79376137 改编码格式在配置文件中修改才有效,在命令行中修改没效 ...
- Python 特殊列表操作记录
1.列表中的NaN数据处理 由于在Excel中筛选数据时,会出现NaN这种数据,所以需要将其删除掉,处理函数如下: 由于NaN数据类型与其他数据类型不一样,所以需要需要根据类型将其去除掉. 2列表关于 ...
- 删除文件时提示,你需来自SYSTEM的权限
1. 提示如下 2. 对要删除的文件操作如下 2.1 为删除的文件添加本地账户 2.2 提示如下,多点几次继续就好 2.3 给本地账户添加完全控制权限
- C语言当中int,float,double,char这四个有什么区别?
区别在以下方面: 一.定义方面: 1.int为整数型,用于定义整数类型的数据 . 2.float为单精度浮点型,能准确到小数点后六位 . 3.double为双精度浮点型,能准确到小数点都十二位 . 4 ...
- lca最近公共祖先与树上倍增。
https://vjudge.net/contest/295298#problem/A lca 的题目 求任意两点的距离. A题是在线算法,用st表rmq来实现. https://blog.csdn. ...
- Bugku-CTF加密篇之奇怪的密码(突然天上一道雷电 gndk€rlqhmtkwwp}z )
奇怪的密码 突然天上一道雷电 gndk€rlqhmtkwwp}z
- C语言与汇编的嵌入式编程:main中模拟函数的调用(两数交换)
编写一个两数交换函数swap,具体代码如下: #include<stdio.h> void swap(int *p1,int *p2) { int temp; temp = *p1; *p ...
- PTA喊山
喊山 喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤.呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的.原来它是彝族 ...