Sqoop簡介及工作機制、Sqoop1和Sqoop2區別

什麼是Sqoop?

Sqoop 是 apache 旗下一款“Hadoop 和關係數據庫服務器之間傳送數據”的工具。

核心的功能有兩個:

1、導入、遷入

2、導出、遷出

導入數據:MySQL,Oracle 導入數據到 Hadoop 的 HDFS、HIVE、HBASE 等數據存儲系統

導出數據:從 Hadoop 的文件系統中導出數據到關係數據庫 mysql 等 Sqoop 的本質還是一個命令行工具,和 HDFS,Hive 相比,並沒有什麼高深的理論。

Sqoop:

工具:本質就是遷移數據, 遷移的方式:就是把sqoop的遷移命令轉換成MR程序

hive

工具,本質就是執行計算,依賴於HDFS存儲數據,把SQL轉換成MR程序

工作機制: 

將導入或導出命令翻譯成 MapReduce 程序來實現 在翻譯出的 MapReduce 中主要是對 InputFormat 和 OutputFormat 進行定製。

 

 Sqoop1和Sqoop2區別:

Sqoop1.x中,僅僅使用了一個Sqoop客戶端,它是單用戶的、架構部署簡單。客戶端發送命令到Sqoop,Sqoop轉換爲MapReduce作業運行在Hadoop集羣環境上,從而實現RDBMS和Hadoop之間相互導入導出。Sqoop1.x只一個mapreduce作業,只有map沒有reduce。

 

 Sqoop2.x 中,引入了sqoop server集中化管理Connector,支持多種交互方式:命令行、Web UI、Rest API,所有的鏈接安裝在sqoop server上,完善了權限管理機制(可配置管理員、使用者等角色),Connector規範化( 不再包含數據傳輸,格式轉換、與Hive、Hbase交互等功能僅負責數據讀寫)。Sqoop2.x中的MapReduce作業既有Map也有Reduce。

 

Sqoop1和Sqoop2功能性對比:

功能 Sqoop1 Sqoop2
用於所有主要 RDBMS 的連接器 支持 不支持
解決辦法: 使用已在以下數據庫上執行測試的通用 JDBC 連接器: Microsoft SQL Server 、 PostgreSQL 、 MySQL 和 Oracle 。 
此連接器應在任何其它符合 JDBC 要求的數據庫上運行。但是,性能可能無法與 Sqoop 中的專用連接器相比
 
Kerberos 安全集成 支持 不支持
數據從 RDBMS 傳輸至 Hive 或 HBase 支持 不支持
解決辦法: 按照此兩步方法操作。 將數據從 RDBMS 導入 HDFS 在 Hive 中使用相應的工具和命令(例如 LOAD DATA 語句),手動將數據載入 Hive 或 HBase
數據從 Hive 或 HBase 傳輸至 RDBMS 不支持
解決辦法: 按照此兩步方法操作。 從 Hive 或 HBase 將數據提取至 HDFS (作爲文本或 Avro 文件) 使用 Sqoop 將上一步的輸出導出至 RDBMS
不支持
按照與 Sqoop 1 相同的解決方法操作

 

部分資料來源:

1、https://www.cnblogs.com/qingyunzong/p/8807252.html 

2、https://blog.csdn.net/lilychen1983/article/details/80241368

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章