大數據(hadoop-數據入庫系統Sqoop原理架構)

Sqoop是什麼

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  

相關文章
相關標籤/搜索