Sqoop迁移Hadoop与RDBMS间的数据
Sqoop是用来实现结构型数据(如:关系型数据库RDBMS)和Hadoop之间进行数据迁移的工具。它充分利用了MapReduce的并行特点以批处理的方式加快数据的传输,
同时也借助MapReduce实现容错。
一、将MySQL中的表迁移到HDFS上(RDBMS —> HDFS)
- 导入MySQL"db_sqoop.mysql_emp表"所有数据到HDFS中;
sqoop import \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--table mysql_emp \
--target-dir /data/hdfs_sqoop \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t'--table mysql中目标表;
--target-dir hdfs存放目录;
--delete-target-dir:若hdfs存放目录已存在,则自动删除;
--num-mappers:指定maptask数量;
--fields-terminated-by:各字段间的分隔符; - 将MySQL的查询结果导入HDFS上;
sqoop import \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--target-dir /data/hdfs_sqoop \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--query 'SELECT emp_no,first_name,last_name FROM mysql_emp WHERE gender="M" and $CONDITIONS;'”$CONDITIONS"表示将查询结果带回。
- 使用sqoop的关键字筛选查询后的结果导入到HDFS;
sqoop import \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--table mysql_emp \
--target-dir /data/hdfs_sqoop \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--where "gender='F'" - 从MySQL导入指定’列’到HDFS上;
sqoop import \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--table mysql_emp \
--target-dir /data/hdfs_sqoop \
--delete-target-dir \
--num-mappers 1 \
--fields-terminated-by '\t' \
--columns emp_no,gender,birth_date
二、MySQL ——> Hive (RDBMS ——> HIVE)
- 将MySQL中的表导入Hive中;
sqoop import \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--num-mappers 1 \
--table mysql_emp \
--hive-import \
--hive-table db_hive_sqoop.hive_emp \
--fields-terminated-by '\t' \
--hive-overwrite \
--delete-target-dir
三、MySQL –> Hbase(RDBMS ——> Hbase)
- 将MySQL中的表导入Hbase中;
sqoop import \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--table book \
--columns "id,name,price" \
--column-family "info" \
--hbase-create-table \
--hbase-row-key "id" \
--hbase-table "hbase_book" \
--num-mappers 1 \
--split-by id
四、HDFS/Hive —> MySQL (HDFS/Hive —> RDBMS)
- 在MySQL中创建对应的表,然后使用如下语句;
sqoop export \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--table myqsl_dept \
--num-mappers 1 \
--export-dir /usr/hive/warehouse/db_hive_sqoop.db/hive_dept \
--input-fields-terminated-by '\t'
五、导出MySQL表结构到hive
- 导出MySQL表结构;
sqoop create-hive-table \
--connect jdbc:mysql://hadoopone:3306/db_sqoop \
--username root \
--password root \
--table mysql_stu \
--hive-database db_hive_sqoop \
--hive-table hive_stu
Sqoop迁移Hadoop与RDBMS间的数据的更多相关文章
- Sqoop -- 用于Hadoop与关系数据库间数据导入导出工作的工具
Sqoop是一款开源的工具,主要用于在Hadoop相关存储(HDFS.Hive.HBase)与传统关系数据库(MySql.Oracle等)间进行数据传递工作.Sqoop最早是作为Hadoop的一个第三 ...
- Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递
http://niuzhenxin.iteye.com/blog/1706203 Sqoop是一款开源的工具,主要用于在HADOOP(Hive)与传统的数据库(mysql.postgresql.. ...
- 阿里云 RDS实例间的数据迁移
使用数据传输DTS可以实现两个RDS实例间的数据迁移.对于支持增量迁移的存储引擎,还可以使用DTS在源RDS实例不停服的情况下,将数据迁移到目标RDS实例.目前对于RDS不同存储引擎,只支持同构迁移( ...
- Hadoop基础之初识大数据与Hadoop
前言 从今天起,我将一步一步的分享大数据相关的知识,其实很多程序员感觉大数据很难学,其实并不是你想象的这样,只要自己想学,还有什么难得呢? 学习Hadoop有一个8020原则,80%都是在不断的配置配 ...
- 关于Hadoop结合RDBMS应用的一些思考
最近一段时间一直在从事和hadoop相关的工作,主要是技术内容学习.安装配置优化以及一些框架结构的设计.在此期间,我对于RDBMS和Hadoop的结合应用有了一些自己的看法,写出来大家共同探讨一下. ...
- hadoop集群间的hdfs文件拷贝
1.背景 部门有个需求,在网络互通的情况下,把现有的hadoop集群(未做Kerberos认证,集群名为:bd-stg-hadoop)的一些hdfs文件拷贝到新的hadoop集群(做了Kerberos ...
- PHP+Hadoop+Hive+Thrift+Mysql实现数据统计分析
原址:http://www.cnblogs.com/wicub/p/6094045.html 安装 Hadoop安装: http://www.powerxing.com/install-hadoo ...
- 小菜学习Winform(五)窗体间传递数据
前言 做项目的时候,winfrom因为没有B/S的缓存机制,窗体间传递数据没有B/S页面传递数据那么方便,今天我们就说下winfrom中窗体传值的几种方式. 共有字段传递 共有字段传递实现起来很方便, ...
- View与Control间的数据交互
View与Control间的数据交互 1.ViewBag.Name ="Name1" 2.ViewData["VD"] = "view data&qu ...
随机推荐
- PHP网上支付
1,网上支付方式两类:企业与银行对接和通过中间公司间接与银行对接. (1),企业与银行对接,优点:因为直接与银行进行财务结算,交易资金结算比较安全.适合资金流量比较大的企业,这种方案适合于,每月结算金 ...
- POJ-2387-Til the Cows Come Home(最短路)
Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 72844 Accepted ...
- vi基本状态
vi状态退出并保存:shift+ZZ vi readme.txt 进入VIM编辑器,可以新建文件也可以修改文件 如果这个文件,以前是没有的,则为新建,则下方有提示为新文件. 按ESC键 跳到命令模式, ...
- 如何实现java的四则运算
很多语言底层对四则运算都有内部封装, 我们还是要重复造下轮子,不为别的, 就是为了面试可以多装一分 b, 假设你已经了解了什么是二进制, 什么是异或, 什么是移位运算, 什么是与, 这些不懂就别硬上( ...
- python学习,day2:利用列表做购物车实例
一个购物车 # coding=utf-8 # Author: RyAn Bi import sys , os goods = [['iphone',5800],['mate20pro',5000],[ ...
- 2019年华南理工大学程序设计竞赛(春季赛)A NB群友
https://ac.nowcoder.com/acm/contest/625/A 题意:给出一个区间范围 , 求有多少个数的每一位的积是在这个区间里面的 分析:没错了 ,就是记忆化暴力搜索 ,不断的 ...
- jquery ajax的getJSON使用
getJSON的定义和用法 通过 HTTP GET 请求载入 JSON 数据. 在 jQuery 1.2 中,您可以通过使用 JSONP 形式的回调函数来加载其他网域的 JSON 数据,如 " ...
- 4.nginx动静分离
动静分离,就是将css.js.jpg等静态资源和jsp等动态资源分开处理,以此提高服务器响应速度,提高性能. 核心就是区分动态和静态资源 图片转自:https://www.cnblogs.com/xi ...
- python学习15-序列化(转载)
序列化是指把内存里的数据类型转换成字符串,以使其能存储到硬盘或通过网络传输到远程,因为硬盘和网络传输时只能接受bytes 一.pickle 把python对象写入到文件中的一种解决方案,但是写入到文件 ...
- ImportError: No module named 'tkinter'
环境说明: windows7.vscode1.33.1.python3.7.0. 解决方案: 通过安装程序单独卸载“tcl/tk and IDLE”------重新安装“tcl/tk and IDLE ...