sqoop导出工具
2016-07-26 18:04
351 查看
sqoop的导出工具是把HDFS上文件中的数据导出到mysql中
mysql中的表
现在在linux上创建一个文件,并把这个文件上传到hdfs上
一、export-dir
使用export-dir来指定导出的目录,会导出该目录下的所有文件。
最终的效果可以在mysql中的表体现:
二、插入中文乱码问题
hdfs上的内容:
再次执行上面一样的export命令,在mysql中就会产生乱码:
可以使用下面的命令来解决乱码问题:
完成之后mysql的记录是:
三、update-key update-mode
需求hdfs文件中存在的记录做更新,不存在的记录则插入
hdfs上的文件:
执行命令:
需要注意的是,update-mode有两种,一种是uodateonly,一种是allowinsert
执行完成之后,mysql中的数据:
四、input-fields-terminated-by
input-fields-terminated-by可以用来指定hdfs上文件的分隔符,默认是逗号
HDFS上的数据格式(以空格切分):
执行下面的命令来导出:
导出的结果是:
五、columns
使用colums来指定导出到mysql的列
hdfs上的数据格式:
执行下面的命令:
执行结果:
mysql中的表
现在在linux上创建一个文件,并把这个文件上传到hdfs上
cat person.txt 7,no7,77 8,no8,88 $ hadoop fs -mkdir person_export $ hadoop fs -put -f person.txt person_export $ hadoop fs -ls person_export Found 1 items -rw-r--r-- 3 18232184201 supergroup 18 2016-07-26 17:16 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个,77 4,第8个,88
再次执行上面一样的export命令,在mysql中就会产生乱码:
可以使用下面的命令来解决乱码问题:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --export-dir person_export
完成之后mysql的记录是:
三、update-key update-mode
需求hdfs文件中存在的记录做更新,不存在的记录则插入
hdfs上的文件:
,第10个,100 ,第11个,110 3,第3个,30 4,第4个,40
执行命令:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --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 100 bbb 110
执行下面的命令来导出:
sqoop export --connect "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" --username root --password 123456 --table person -m 1 --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 123456 --table person -m 1 --export-dir person_export --input-fields-terminated-by ' ' --columns="id,name"
执行结果:
相关文章推荐
- linux基础命令
- docker 的安装
- 【POJ】River Hopscotch
- linux兴趣小组暑假第二次讲座总结
- opengl中TGA图像加载技术
- Linux学习笔记4linux的文件系统
- Linux 编程中的API函数和系统调用的关系【转】
- OpenGL基础教程(2):着色器
- Linux 中open系统调用实现原理【转】
- elk 架构
- elk 架构
- elk 架构
- 高可用集群技术之heartbeat应用案例详解(二)
- linux中动态库和静态库
- 提高Linux工作效率的十大bash技巧
- nginx用户认证
- Session监听统计网站的在线人数HashSet
- linux 基础学习入门 3
- Linux学习笔记3命令别名(alias)
- 测试网站访问速度的5个方法