Sqoop簡介


一  Sqoop是什么

  1. Sqoop:SQL-to-Hadoop
  2. 連接傳統關系型數據庫和Hadoop的橋梁 把關系型數據庫的數據導入到 Hadoop 系統 ( 如 HDFS、HBase 和 Hive) 中; 把數據從 Hadoop 系統里抽取並導出到關系型數據庫里
  3. 利用MapReduce,批處理方式進行數據傳輸

 

 

二 Sqoop的優勢

  1. 高效、可控的利用資源,任務並行度、超時時間等
  2. 數據類型映射與轉換可自動進行,用戶也可自定義

  3. 支持多種數據庫(MySQL、Oracle、PostgreSQL)

 

 

三 Sqoop架構

 

 

 四 Sqoop命令

Sqoop import:將數據從關系型數據庫導入Hadoop 中

步驟1 :Sqoop 與數據庫Server通信,獲取數據庫表的元數據信息;

步驟2 :Sqoop 啟動一個Map- Only 的MR 作業,利用元數據信息並行將數據寫入Hadoop

 

Sqoop import使用

sqoop import \ --connect jdbc:mysql://mysql.example.com/sqoop \ --username sqoop \ --password sqoop \ --table person --target-dir

 

參數說明:

--connnect: 指定JDBC URL

--username/password :mysql 數據庫的用戶名

--table :要讀取的數據庫表

--hadoop-home hadoop目錄

 

 

Sqoop Export 使用

將數據從Hadoop 導入關系型數據庫導中

步驟1 : Sqoop 與數據庫Server通信,獲取數據庫表的元數據信息;

步驟2 :並行導入數據: 將Hadoop 上文件划分成若干個split ; 每個split 由一個Map Task 進行數據導入

 

sqoop export \ --connect jdbc:mysql://mysql.example.com/sqoop \ --username sqoop \ --password sqoop \ --table cities \ --export-dir cities --fields-terminated-by

 

--connnect: 指定JDBC URL

--username/password :mysql 數據庫的用戶名

--table :要導入的數據庫表

export-dir :數據在HDFS 上存放目錄

 

 

Sqoop與其他系統結合

Sqoop 可以與Oozie 、Hive 、Hbase 等系統結合

用戶需要在sqoop-env.sh 中增加HBASE_HOME 、HIVE_HOME

 

 

 

 

 

 

 

 

 

 


免責聲明!

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



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