Sqoop抽取Mysql源数据至Hive ---(第一篇)

 Hadoop、Hive、MySQL 安装   

                                             (hive、mysql安装详情在上一篇)

 

1.1.  下载Sqoop链接:

http://www.apache.org/dyn/closer.lua/sqoop/1.4.

安装包放置百度云盘:

链接:https://pan.baidu.com/s/1jrRU8j9tCAVkCj85sBYt5w 
提取码:offg 

Soop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

Sqoop项目开始于2009年,最早是作为Hadoop的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop独立成为一个Apache项目。

 

 1.2.  解压

tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

1.3.  建立软连接

ln -s sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop

 

1.4.  加执行文件路径(环境变量)

export PATH=$PATH:/home/grid/sqoop/bin

 

1.5.  把MySQL java连接器的jar文件拷贝到sqoop的lib目录下

cp mysql-connector-java-5.1.38-bin.jar /home/grid/sqoop/lib/

 

1.6.  测试
(1)列出mysql数据库中的所有数据库

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


(2)连接mysql并列出数据库中的表
 

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


(3)将MySQL的test.t1表结构复制到Hive的test库中,表名为mysql_t1

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


注:该命令可以多次执行不报错
(4)将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参数
(5)将hive表的数据导入到mysql中

sqoop export --connect jdbc:mysql://192.168.56.104:3306/test?useSSL=false --username root --password 123456 --table t2 --export-dir /user/hive/warehouse/test.db/mysql_t1


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值