mysql数据与Hadoop之间导入导出之Sqoop实例
前面介绍了sqoop1.4.6的 如何将mysql数据导入Hadoop之Sqoop安装,下面就介绍两者间的数据互通的简单使用命令。
显示mysql数据库的信息,一般sqoop安装测试用
sqoop list-databases --connect jdbc:mysql://192.168.2.101:3306/ --username root --password root
显示数据库里所有表:
sqoop list-tables --connectjdbc:mysql://192.168.2.101:3306/FlowDB --username root -password root
mysql导入到hdfs中
sqoop import --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --table WorkTable --fields-terminated-by '\t' -m 1
sqoop ##sqoop命令
import ##表示导入
--connect jdbc:mysql://ip:3306/sqoop ##告诉jdbc,连接mysql的url
--username root ##连接mysql的用户名
--password admin ##连接mysql的密码
--table aa ##从mysql导出的表名称
--fields-terminated-by '\t' ##指定输出文件中的行的字段分隔符
--target-dir/user/hadoop/databases/ssa/fin_cashier_order
-m 1 ##复制过程使用1个map作业
若是不写--target-dir 则默认是hdfs上的user/username/tablename 路径
如果重复执行,会提示目录已经存在,可以手动删除
该命令执行结束后,观察hdfs的目录/user/{USER_NAME},下面会有一个文件夹是aa,里面有个文件是part-m-00000。该文件的内容就是数据表aa的内容,字段之间是使用制表符分割的。
查看HDFS上的文件
hadoop fs -cat /user/jzyc/WorkTable/part-m-00000
hdfs导出到mysql中
把上一步导入到hdfs的数据导出到mysql中。我们已知使用制表符分隔的。那么,我们现在数据库FlowDB中创建一个数据表叫做WorkTable_hdfs,里面有两个字段。然后执行下面的命令
sqoop export --connect jdbc:mysql://192.168.2.101:3306/FlowDB --table WorkTable_hdfs --username root --password root --export-dir /user/jzyc/WorkTable/ --input-fields-terminated-by '\t'
sqoop导入视图到hdfs
sqoop import --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root
--query 'SELECT * FROM view_WorkTable WHERE \$CONDITIONS' -m 1 target-dir /user/jzyc/WorkTable --delete-target-dir --fields-terminated-by ","
将数据从关系数据库导入文件到hive表中,--query 语句使用
sqoop import --append --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --query "SELECT ID,Classify,Name,ModelType,CreateDate,CreateUserID,DesignJSON,Status from WorkTable where \$CONDITIONS" -m 1 --target-dir /hive/warehouse/WorkTable --fields-terminated-by ","
将数据从关系数据库导入文件到hive表中,--columns --where 语句使用
sqoop import --append --connect jdbc:mysql://192.168.2.101:3306/FlowDB --username root --password root --table WorkTable --columns "ID,Classify,Name,ModelType,CreateDate,CreateUserID" --where "Classify = 1" -m 1 --target-dir /hive/warehouse/WorkTable2 --fields-terminated-by ","
注意:--target-dir/hive/warehouse/WorkTable2 可以用 --hive-import --hive-table WorkTable2 进行替换


从上面的信息可以看到sqoop还是走的hadoop的M/R引擎。
以上只是一些经过验证通过的简单的示例,更复杂的有待后续补充。
mysql数据与Hadoop之间导入导出之Sqoop实例的更多相关文章
- Kettle的应用——对mysql数据进行表输入与导出
Kettle的应用——对mysql数据进行表输入与导出 1. 下载好kettle解压包 网址:http://sourceforge.net/projects/pentaho/files/Data%20 ...
- HBase数据备份及恢复(导入导出)的常用方法
一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...
- Mysql中使用mysqldump进行导入导出sql文件
纪念工作中的第一次删库跑路的经历 今天接到一个任务,是将一个测试库数据导到另一个测试库,然而我们公司的数据库是不让直连的,所以只能通过远程连接进行导库操作. 老大布置任务的时候让用dump命令进行操作 ...
- EasyPoi大数据导入导出百万级实例
EasyPoi介绍: 利用注解的方式简化了Excel.Word.PDF等格式的导入导出,而且是百万级数据的导入导出.EasyPoi官方网址:EasyPoi教程_V1.0 (mydoc.io).下面我写 ...
- [terry笔记]Oracle数据泵-schema导入导出
数据泵是10g推出的功能,个人倒数据比较喜欢用数据泵. 其导入的时候利用remap参数很方便转换表空间以及schema,并且可以忽略服务端与客户端字符集问题(exp/imp需要排查字符集). 数据泵也 ...
- mysql数据向Redis快速导入
Redis协议 *<args><cr><lf> 参数个数 $<len><cr><lf> 第一个参数长度 <arg0> ...
- MySQL之sql文件的导入导出
window下 1.导出整个数据库(无需登录mysql)mysqldump -u 用户名 -p 数据库名 > 导出的文件名mysqldump -u dbuser -p dbname > d ...
- MySQL本地登录及数据库导入导出
注意:本地MySQL服务要开启 更新整个数据库 1.将正式服务器上的数据库做备份 登录到正式服务器,执行如下命令:(注意空格) mysqldump -uroot –p密码 数据库名 -P 接口 --d ...
- Oracle导出表数据与导入表数据dmp,以及导入导出时候常见错误
使用DOS 操作界面导出表数据,导入表数据(需要在数据库所在的服务器上边执行) exp UserName/Password@192.168.0.141/orcl file=d:\xtables.d ...
随机推荐
- highlight.js 代码高亮插件的使用
在网页使用过程中,经常会用到代码的展示.而不同颜色的代码,可以让代码看起来更直观,也更美观. 找了几个不同的插件,觉得highlight的插件比较实用,而且用起来炒鸡简单. 比如这样: 首先,我们先下 ...
- python-day 练习1
#!/usr/bin/env python# -*- coding:utf-8 -*-'''需求: a. 元素分类 有如下值集合 v1 = [11,22,33,44,55,66,77,88,99,90 ...
- Android NDK开发之C调用Java及原生代码断点调试(二)
上一篇中,我们主要学习了Java调用本地方法,并列举了两大特殊实例来例证我们的论据,还没学习的伙伴必须先去阅读下,本次的学习是直接在上一篇的基础上进行了.点击:Android NDK开发之从Java与 ...
- redis之sentinel概述
一.配置sentinel 修改的是这条: 对应: 上面那条配置需要注意:<master-name>:监控主节点的名称 <ip>:监控主节点的ip <redis-por ...
- 使用MyEclipse生成实体类和Hibernate映射文件
1.打开MyEclipse DataBase Explorer. 如上图,点击图中2便可切换到MyEclipse DataBase Explorer,若没有该图标,则点击图中1,便可选择MyEclip ...
- 转:Linux中文显示乱码?如何设置centos显示中文
怎么设置Linux系统中文语言,这是很多小伙伴在开始使用Linux的时候,都会遇到一个问题,就是终端输入命令回显的时候中文显示乱码.出现这个情况一般是由于没有安装中文语言包,或者设置的默认语言有问题导 ...
- 【转】解决response.AddHeader("Content-Disposition", "attachment; fileName=" + fileName) 中文显示乱码
如果fileName为中文则乱码.解决办法是 方法1: response.setHeader("Content-Disposition", "attachment; fi ...
- PHP导出生成CSV文件
composer 用起来是非常方便的 所以我是依赖composer来做的包管理 1.先安装composer 自行百度一下composer安装以及使用 2.用composer下载安装office包即可 ...
- AngularJS操作DOM——angular.element
addClass()-为每个匹配的元素添加指定的样式类名 after()-在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点 append()-在每个匹配元素里面的末尾处插入参数内容a ...
- Java反射机制详解(1) -反射定义
首先,我们在开始前提出一个问题: 1.在运行时,对于一个java类,能否知道属性和方法:能否去调用它的任意方法? 答案是肯定的. 本节所有目录如下: 什么是JAVA的反射机制 JDK中提供的Refle ...