sqoop导出工具
sqoop的导出工具是把HDFS上文件中的数据导出到mysql中
mysql中的表

现在在linux上创建一个文件,并把这个文件上传到hdfs上
cat person.txt
,no7,
,no8, $ hadoop fs -mkdir person_export
$ hadoop fs -put -f person.txt person_export
$ hadoop fs -ls person_export
Found items
-rw-r--r-- supergroup -- : person_export/person.txt
一、export-dir
使用export-dir来指定导出的目录,会导出该目录下的所有文件。
$ sqoop export --connect jdbc:mysql://localhost:3306/test --username root --password 123456 --table person -m 1 --export-dir person_export
最终的效果可以在mysql中的表体现:

二、插入中文乱码问题
hdfs上的内容:
3,第7个,
4,第8个,
再次执行上面一样的export命令,在mysql中就会产生乱码:

可以使用下面的命令来解决乱码问题:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password --table person -m --export-dir person_export
完成之后mysql的记录是:

三、update-key update-mode
需求hdfs文件中存在的记录做更新,不存在的记录则插入
hdfs上的文件:
,第10个,
,第11个,
,第3个,
,第4个,
执行命令:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password --table person -m --export-dir person_export --update-key id --update-mode allowinsert
需要注意的是,update-mode有两种,一种是uodateonly,一种是allowinsert
执行完成之后,mysql中的数据:

四、input-fields-terminated-by
input-fields-terminated-by可以用来指定hdfs上文件的分隔符,默认是逗号
HDFS上的数据格式(以空格切分):
aaa
bbb
执行下面的命令来导出:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password --table person -m --export-dir person_export --input-fields-terminated-by ' '
导出的结果是:

五、columns
使用colums来指定导出到mysql的列
hdfs上的数据格式:
aaa
bbb
执行下面的命令:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password --table person -m --export-dir person_export --input-fields-terminated-by ' ' --columns="id,name"
执行结果:

sqoop导出工具的更多相关文章
- HData——ETL 数据导入/导出工具
HData是一个异构的ETL数据导入/导出工具,致力于使用一个工具解决不同数据源(JDBC.Hive.HDFS.HBase.MongoDB.FTP.Http.CSV.Excel.Kafka等)之间数据 ...
- 用Python编写博客导出工具
用Python编写博客导出工具 罗朝辉 (http://kesalin.github.io/) CC 许可,转载请注明出处 写在前面的话 我在 github 上用 octopress 搭建了个人博 ...
- 基于jdk1.7实现的excel导出工具类
通用excel导出工具类,基于泛型.反射.hashmap 以及基于泛型.反射.bean两种方式 import java.io.*;import java.lang.reflect.Field;impo ...
- oracle数据导出工具sqluldr2
oracle数据导出工具sqluldr2可以将数据以csv.txt等格式导出,适用于大批量数据的导出,导出速度非常快.导出后可以使用oracle loader工具将数据导入.下载完sqluldr2,工 ...
- Mongodb数据导出工具mongoexport和导入工具mongoimport介绍
一.导出工具mongoexport Mongodb中的mongoexport工具可以把一个collection导出成JSON格式或CSV格式的文件.可以通过参数指定导出的数据项,也可以根据指定的条件导 ...
- ireport 导出工具类
Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,html 格式 下面是报表导出工具类 Ireport 报表导出 Poi + ireport 导出pdf, ...
- C#开发的高性能EXCEL导入、导出工具DataPie(支持MSSQL、ORACLE、ACCESS,附源码下载地址)[转]
转自:http://www.cnblogs.com/yfl8910/archive/2012/05/19/2509194.html 作为财务数据核算人员,面对大量的业务与财务数据,借助于传统的EXCE ...
- Max批量导出工具
Max批量导出工具 http://www.paulneale.com/scripts/batchItMax/batchItMax.htm Scripts Batch It Max: Batch It ...
- SequoiaDB版本升级及导入导出工具说明
升级SequoiaDB数据库指导 SequoiaDB安装路径:SDB_HOME=/opt/sequoiadb 数据存储路径:DATABASE=/ opt/sequoiadb/database 一.导出 ...
随机推荐
- Java中堆和栈的区别(转)
栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new. ...
- 关于asp.net 网站网站发布时提示:错误 27 对路径 AppData\Local\Temp\~632b\bin\App_Code.compil的解决方法
关于asp.net 网站网站发布时提示:错误 27 对路径 AppData\Local\Temp\~632b\bin\App_Code.compil的解决方法 问题如下图所示,方法是去掉: <i ...
- php文字水印和php图片水印实现代码
本文章向码农们介绍php文字水印和php图片水印实现代码,需要的码农可以参考一下. php 文字水印 文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件. 实现 ...
- Windows 2008 IIS7.0安装FTP教程 IIS7.5 配置多用户FTP
一. 安装IIS.右键[我的电脑],选择[管理]打开. 选择[角色],选择[添加角色]打开. 二. 配置DOS.输入: CACLS "%Syste ...
- 使用Kinect2.0获取点云以在GLUT中显示
这篇文章用来记录Kinect2.0如何生成点云. 以下示例源自Kinect提供的example修改完成,其名称会在小标题下方注解. 首先,要获取点云需要获取图像的深度数据和颜色数据.最后再将深度数据与 ...
- json 和 pickel 详解
一.json json,用于字符串 和 python数据类型间进行转换 Json模块提供了四个功能:dumps.dump.loads.load 1.json.loads()用于将字符串形式的字典,列表 ...
- USACO Section 3.2 01串 Stringsobits
题目背景 考虑排好序的N(N<=31)位二进制数. 题目描述 他们是排列好的,而且包含所有长度为N且这个二进制数中1的位数的个数小于等于L(L<=N)的数. 你的任务是输出第i(1< ...
- ViewPager撤消左右滑动切换功能
ViewPager取消左右滑动切换功能 最近做项目要求某种情况下ViewPager不能滑动,那么我们只需要重写这个方法就可以禁止ViewPager滑动 IndexViewPager.java: imp ...
- [Hibernate 1]Hibernate的环境搭建
一.Hibernate是什么 直接使用JDBC操作数据库的步骤很繁琐,JDBC操作的是关系型数据库,而我们用JAVA开发程序,则使用面向对象的思想.Hibernate正是在这两种不同的模型之间建立关联 ...
- 获取AX的窗口所有控件的lableID及内容
思路,穷举Forms\TargetFormName 在AOT上面的路径得到TreeNode, 遍历各控件的属性. a1,先读Label属性,没有就读Caption属性及Text属性. a2,若a1取不 ...