Sqoop:SQL-to-Hadoopmysql
鏈接傳統關係型數據庫和Hadoop的橋樑
把關係型數據庫的數據導入到 Hadoop 系統 ( 如 HDFS、HBase 和 Hive) 中;
把數據從 Hadoop 系統裏抽取並導出到關係型數據庫裏。sql
利用MapReduce數據庫
批處理方式進行數據傳輸架構
Sqoop優點oop
高效、可控的利用資源
任務並行度、超時時間等spa
數據類型映射與轉換
可自動進行,用戶也可自定義code
支持多種數據庫
MySQL
Oracle
PostgreSQLblog
Sqoop1架構ci
Sqoop2架構資源
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 :要讀取的數據庫表
Sqoop Export
將數據從Hadoop 導入關係型數據庫導中
步驟1 :
Sqoop 與數據庫Server通訊,獲取數據庫表的元數據信息;
步驟2 :並行導入數據:
將Hadoop 上文件劃分紅若干個split ;
每一個split 由一個Map Task 進行數據導入。
Sqoop Export使用方法
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