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腳本進行傳參。不過還是過於麻煩


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM