Sqoop学习笔记_Sqoop的基本使用一

Posted 呢喃的歌声

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Sqoop学习笔记_Sqoop的基本使用一相关的知识,希望对你有一定的参考价值。

Sqoop

 

关系DB与Hive/HDFS/HBase导入导出的Mapreduce框架。

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

 

ETL: Extraction-Transformation-Loading的缩写,数据提取、转换(业务处理)和加载。

文件数据源:hive load命令

关系DB数据源:sqoop抽取

 Sqoop import数据到HDFS/Hive/Hbase-->业务处理--->Sqoop export数据到关系数据库

Sqoop import   从关系数据库抽取到HDFS

Sqoop export    HDFS导回到关系数据

二、Sqoop Linux下开发的步骤

mysql Jdbc驱动放到SQOOP_HOME/lib

放lib的目录(eg:cd /opt/cloudera/parcels/CHD/lib/sqoop/lib,有时候master和slave节点都要存放此lib) 

 

1、Sqoop 基本导入和导出讲解(command line方式)

sqoop import --connect jdbc:mysql://master:3306/test \\   (此句是配置mysql路径,linux下一行未完结要加上反斜杠)

--username root --password 123456 --table rpt_sale_daily \\ (配置mysql的帐号和密码和table表名)

--columns "dateid,huodong,pv,uv" \\ (配置table抽取的字段)

--where “dateid=\'2015-08-28\'”  \\ (表抽取查询条件)

--target-dir sqoop/rpt_sale_daily \\ (表抽取存放目标位置)

-m 1 (sqoop抽取要启动的map数量,如果抽取量多的话可以适当调节map的数量)

 

Sqoop import(抽取)需要注意:

   抽取到target-dir ,列用逗号分隔;

   抽取到hive表时,会根据hive表的列分隔符自动匹配。

 

 

2.利用sqoop --options也可以进行sqoop抽取但是不支持往数据里面传参数

sqoop --options-file ./test.opt  不支持往opt文件里传参数。(shell脚本方式)

先写好执行文件test.opt

在shell脚本里写好执行sqoop执行opt文件命令

执行命令

相比下command line的方式会比较好,因为可以利用shell脚本进行传参。不过还是过于麻烦

以上是关于Sqoop学习笔记_Sqoop的基本使用一的主要内容,如果未能解决你的问题,请参考以下文章

[hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 将mysq数据导入hive

[hadoop读书笔记] 第十五章 sqoop1.4.6小实验 - 数据在mysq和hdfs之间的相互转换

Sqoop学习

Sqoop学习之路

Sqoop安装

hadoop-sqoop学习笔记