大資料(hadoop-資料入庫系統Sqoop原理架構)
阿新 • • 發佈:2019-06-17
Sqoop是什麼
Sqoop:SQL-to-Hadoop
連線傳統關係型資料庫和Hadoop的橋樑
把關係型資料庫的資料匯入到 Hadoop 系統 ( 如 HDFS、HBase 和 Hive) 中;
把資料從 Hadoop 系統裡抽取並匯出到關係型資料庫裡。
利用MapReduce
批處理方式進行資料傳輸
Sqoop優勢
高效、可控的利用資源
任務並行度、超時時間等
資料型別對映與轉換
可自動進行,使用者也可自定義
支援多種資料庫
MySQL
Oracle
PostgreSQL
Sqoop1架構
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