码迷,mamicode.com
首页 > 数据库 > 详细

Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》

时间:2016-04-13 02:06:51      阅读:346      评论:0      收藏:0      [点我收藏+]

标签:

一、什么是sqoop

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

二、sqoop的特点

  Sqoop中一大亮点就是可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS。

三、Sqoop import 命令

  将Mysql的jdbc驱动放在/opt/cloudera/parcels/CDH/lib/sqoop/lib目录下。

  如下图:

  技术分享

  参考学习网址:

  http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.0/SqoopUserGuide.html

  命令详解:

  1、基本语法

1 $ sqoop import (generic-args) (import-args)$ sqoop-import (generic-args) (import-args)

 

  2、基本命令

  查看网址:

  http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.4-cdh5.1.0/SqoopUserGuide.html

  中的sqoop import的 Import control arguments

   技术分享

  3、案例

  方式一:

  将表rpt_sale_daily中数据导入到HDFS上。

  目标目录为:sqoop/rpt_sale_daily。

sqoop import --connect jdbc:mysql://master:3306/test \
--username root --password 123456 --table rpt_sale_daily --columns "dateid,huodong,pv,uv" --where "dateid=‘2015-08-28‘" --target-dir sqoop/rpt_sale_daily -m 1

  如果提示 sqoop/rpt_sale_daily 目录已经存在,执行:

hadoop fs -rmr sqoop/rpt_sale_daily

执行结果:如下图

技术分享

技术分享

技术分享

20条数据成功导入,开始检测吧亲。

执行代码:

hadoop fs -cat sqoop/rpt_sale_daily/part-m-00000

数据如下图:

技术分享

关系数据库表rpt_sale_daily里面的数据如下:

技术分享

对比,数据相同,成功导入。

 方式二:

通过opt文件的方式传送:

新建test.opt文件:

 1 import 
 2 --connect 
 3 jdbc:mysql://192.168.0.115:3306/test 
 4 --username 
 5 root 
 6 --password 
 7 123456 
 8 --table 
 9 rpt_sale_daily 
10 --columns 
11 "id,huodong,pvv,uvv" 
12 --where 
13 "id=‘2015-08-28‘" 
14 --target-dir 
15 sqoop/rpt_sale_daily 
16 -m 1

执行指令:

sqoop options-file test.opt

执行过程和结果和方式一一样。

Hive学习之七《 Sqoop import 从关系数据库抽取到HDFS》

标签:

原文地址:http://www.cnblogs.com/invban/p/5385122.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!