我是靠谱客的博主 大胆芹菜,最近开发中收集的这篇文章主要介绍(MySQL里的数据)通过Sqoop Import Hive 里 和 通过Sqoop Export Hive 里的数据到(MySQL)...      hadoop2.6.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)    hadoop2.2.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)(MySQL里的数据)通过Sqoop Import HDFS 里 和 通过Sqoop Export HDFS,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 

  Sqoop 可以与Hive系统结合,实现数据的导入和导出,用户需要在 sqoop-env.sh 中添加HIVE_HOME的环境变量

 

具体,见我的如下博客:

      hadoop2.6.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)

    hadoop2.2.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)

 

   

 

  前期工作

(MySQL里的数据)通过Sqoop Import HDFS 里 和 通过Sqoop Export HDFS 里的数据到(MySQL)(五)

 

 

 

 

 

 

本博文的主要内容有

  一、将mysql表的数据导入到hive中

  二、将Hive表的数据导出到mysql中(不建立中间表)

  三、将Hive表的数据导出到mysql中(建立中间表)(推荐)

 

 

 

 

 

一、将mysql表的数据导入到hive中
# 追加数据

sqoop import 
--connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false 
--username root 
--password 123456 
--table t1
--hive-import
--hive-table test.mysql_t1 

 


# 覆盖数据

sqoop import 
--connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false 
--username root 
--password 123456

--table t1 
--hive-import
--hive-overwrite
--hive-table test.mysql_t1 

  注:如果MySQL中的表没有主键,则需要加--autoreset-to-one-mapper参数

 

   完善

 

 

 

 

二、将Hive表的数据导出到mysql中(不建立中间表)

   如下,是我的Hive里的数据。

  以/user/hive/warehouse/stock_partition/tradedate=20130722为例。

 

 

  这里,Hive   -> MySQL

  我这里是,  

     /user/hive/warehouse/stock_partition(在Hive里)    

           ->    

             stock_partition_copy(在MySQL里) 

 

  对于,将Hive里的数据,导出到MySQL(是需要先建立输出表的。在我这里是,stock_partition_copy

 

  表明,输出表已经创建成功!

 

 

 

[hadoop@djt002 sqoopRunCreate]$ sqoop export 
> --connect 'jdbc:mysql://192.168.80.200/hive?useUnicode=true&characterEncoding=utf-8' 
> --username hive 
> --password-file /user/hadoop/.password 
> --table stock_partition_copy 
> --export-dir /user/hive/warehouse/stock_partition/tradedate=20130722 
> -input-fields-terminated-by ","

 

 或

[hadoop@djt002 sqoopRunCreate]$ sqoop export --connect 'jdbc:mysql://192.168.80.200/hive?useUnicode=true&characterEncoding=utf-8' --username hive --password-file /user/hadoop/.password --table stock_partition_copy --export-dir /user/hive/warehouse/stock_partition/tradedate=20130722 -input-fields-terminated-by ","

 

   然后,到本地的MySQL,来看

  成功!

 

 

 

 

 

 

 

 

三、将Hive表的数据导出到mysql中(建立中间表,有效解决脏数据)

  对于Hive,类似与HDFS一样,在从它们导出到本地的MySQL时,为了规范适应生产业务所需,还是也最好先导出到中间表。

   如下,是我的Hive里的数据

 

 

  这里,Hive  ->   先导出到  中间表(成功才可以,后续导出) -> MySQL

  我这里是,  

   /user/hive/warehouse/stock_partition(在Hive里)    

        ->    

             stock_partition _copy_tmp (在MySQL里)  

                 ->  

                     stock_partition_copy(在MySQL里) 

 

 

  对于,将Hive里的数据,导出到MySQL(是需要先建立中间表和输出表的。在我这里是,stock_partition_copy

 

 

  对于,这里,因为,我们只需复制旧表的结构就好,无需它里的数据,教大家快速得到想要的新表

CREATE TABLE stock_partition_copy_tmp SELECT * FROM stock_partition_copy WHERE 1=2;

  表明,中间表和输出表已经创建成功!

 

 

 

 

[hadoop@djt002 sqoopRunCreate]$ sqoop export 
> --connect 'jdbc:mysql://192.168.80.200/hive?useUnicode=true&characterEncoding=utf-8' 
> --username hive 
> --password-file /user/hadoop/.password 
> --table stock_partition_copy 
> --staging-table stock_partition_copy_tmp 
> --clear-staging-table 
> --export-dir /user/hive/warehouse/stock_partition/tradedate=20130722 
> -input-fields-terminated-by ","

 

   或者

[hadoop@djt002 sqoopRunCreate]$ sqoop export --connect 'jdbc:mysql://192.168.80.200/hive?useUnicode=true&characterEncoding=utf-8' --username hive --password-file /user/hadoop/.password --table stock_partition_copy --staging-table stock_partition_copy_tmp --clear-staging-table --export-dir /user/hive/warehouse/stock_partition/tradedate=20130722 -input-fields-terminated-by ","

 

 然后,到本地的MySQL,来看

 

 

 

 

 

 

 

 

  推荐博客

http://sqoop.apache.org/docs/1.4.6/SqoopUserGuide.html (sqoop官网文档)

http://blog.csdn.net/aaronhadoop/article/details/26713431

转载于:https://www.cnblogs.com/zlslch/p/6573222.html

最后

以上就是大胆芹菜为你收集整理的(MySQL里的数据)通过Sqoop Import Hive 里 和 通过Sqoop Export Hive 里的数据到(MySQL)...      hadoop2.6.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)    hadoop2.2.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)(MySQL里的数据)通过Sqoop Import HDFS 里 和 通过Sqoop Export HDFS的全部内容,希望文章能够帮你解决(MySQL里的数据)通过Sqoop Import Hive 里 和 通过Sqoop Export Hive 里的数据到(MySQL)...      hadoop2.6.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)    hadoop2.2.0(单节点)下Sqoop-1.4.6安装与配置(数据读取涉及hadoop、hbase和hive)(MySQL里的数据)通过Sqoop Import HDFS 里 和 通过Sqoop Export HDFS所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部