mysql(Windos系统下)数据导入到Hive(Linux系统下)表笔记

一    导入前提是:Hadoop  Hive  Sqoop必须正常.且两系统之间必须能够ping 通



二  查看mysql表中数据与结果进行对比

mysql中数据如图:

 


三 导数据


第一步:创建Hive表

             根据mysql中标字段在Hive中创建相同字段的表.

             注释:两个表名以及表中的字段名可以不同但字段类型以及字段间 顺序必须一致

            hive> create external table mysql_online(id int,acount string,password string) row format  delimited   fields terminated by '\t';


第二步:导入数据

             进入Sqoop环境

              首先查找mysql信息

              设置--->登录信息----选中登录IP----->属性  如图:

    

          知道相关信息后开始导入数据

           语句一  [zkpk@master bin]$ ./sqoop import --connect jdbc:mysql://202.196.38.98:3306/online --username hadoop    --password  sivc303 --table usertable --hive-import --hive-table mysql_online --fields-terminated-by '\t'


          语句二[zkpk@master bin]$ ./sqoop import --connect jdbc:mysql://202.196.38.98:3306/online --username hadoop --password  sivc303 --table usertable --hive-import --hive-overwrite --hive-table mysql_online --fields-terminated-by '\t'

         语句一与语句二唯一区别后者多一条--hive-overwrite意为覆盖原来数据

        语句解析:

        该语句分成两部分

               一是操作Windows下的mysql

               A   ./sqoop import --connect jdbc:mysql://202.196.38.98:3306/online --username hadoop    --password  sivc303

              B   ip:mysql所在实际IP而非Windows系统的IP

              C   online:mysql下的数据库名  hadoop  sivc203分别是登录名和密码

              二是操作Linux下的Hive表

              --hive-import --hive-table mysql_online --fields-terminated-by '\t'

              --hive-import --hive-table mysql_online:将数据导入到Hive下的mysql_online表

              --fields-terminated-by '\t'定义该数据在表中按Tab键分割(根据创建Hive表时定义的表分隔符)


第三  查看数据

          hive> seleselect * from mysql_online;  


         结果:







从Hive表现中导出到mysql数据库中

       注意二者的字段类型以及字段的顺序要保持一致,表名 表名可以不同,

数据导出具体过程与上面过程相反 . 另外:以hive表的位置不同分成两类情况:

一:从默认路径的表中导出数据

[zkpk@master bin]$ ./sqoop export --connect jdbc:mysql://202.196.38.98:3306/online --username hadoop --password  sivc303 --table sogou_2   --export-dir  '/user/hive/warehouse/sogou.db/sogou_2'  --fields-terminated-by '\t'


二从自定义表路径导出数据

[zkpk@master bin]$ ./sqoop export --connect jdbc:mysql://202.196.38.98:3306/online --username hadoop --password  sivc303 --table sogou_20111230    --export-dir  '/sogou/20111230/sogou.500w.utf8'  --fields-terminated-by '\t'

需要注意的是hive自定义的路径没有包含数据库名和表名






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值