前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql数据与Hadoop之间导入导出之Sqoop实例

mysql数据与Hadoop之间导入导出之Sqoop实例

作者头像
欢醉
发布2018-01-22 19:36:16
1.9K0
发布2018-01-22 19:36:16
举报
文章被收录于专栏:james大数据架构james大数据架构

  前面介绍了sqoop1.4.6的 如何将mysql数据导入Hadoop之Sqoop安装,下面就介绍两者间的数据互通的简单使用命令。

显示mysql数据库的信息,一般sqoop安装测试用

代码语言:javascript
复制
sqoop list-databases --connect jdbc:mysql://192.168.2.101:3306/ --username root --password root

显示数据库里所有表:

代码语言:javascript
复制
sqoop list-tables --connectjdbc:mysql://192.168.2.101:3306/FlowDB --username root -password root

mysql导入到hdfs中

代码语言:javascript
复制
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,里面有两个字段。然后执行下面的命令

代码语言:javascript
复制
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

代码语言:javascript
复制
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 语句使用

代码语言:javascript
复制
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 语句使用

代码语言:javascript
复制
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引擎。

  以上只是一些经过验证通过的简单的示例,更复杂的有待后续补充。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 显示mysql数据库的信息,一般sqoop安装测试用
  • 显示数据库里所有表:
  • mysql导入到hdfs中
  • hdfs导出到mysql中
  • sqoop导入视图到hdfs
  • 将数据从关系数据库导入文件到hive表中,--query 语句使用
  • 将数据从关系数据库导入文件到hive表中,--columns --where 语句使用
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档