Sqoop是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql...)間進行數(shù)據(jù)的傳遞,可以將一個關(guān)系型數(shù)據(jù)庫(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進到關(guān)系型數(shù)據(jù)庫中。Sqoop項目開始于2009年,最早是作為Hadoop的一個第三方模塊存在,后來為了讓使用者能夠快速部署,也為了讓開發(fā)人員能夠更快速的迭代開發(fā),Sqoop獨立成為一個Apache項目。
總之Sqoop是一個轉(zhuǎn)換工具,用于在關(guān)系型數(shù)據(jù)庫與HDFS之間進行數(shù)據(jù)轉(zhuǎn)換。
注意:sqoop1與sqoop2完全不兼容,1.4.6及之前的版本是sqoop1,之后的是sqoop2
Sqoop1和Sqoop2的對比
sqoop2比sqoop1的改進
引入sqoop server,集中化管理connector等
多種訪問方式:CLI,Web UI,REST API
引入基于角色 的安全機制
sqoop1與sqoop2的優(yōu)缺點
sqoop1的架構(gòu),僅僅使用一個sqoop客戶端,sqoop2的架構(gòu),引入了sqoop server集中化管理connector,以及rest api,web,UI,并引入權(quán)限安全機制。
sqoop1優(yōu)點架構(gòu)部署簡單
sqoop1的缺點命令行方式容易出錯,格式緊耦合,無法支持所有數(shù)據(jù)類型,安全機制不夠完善,例如密碼暴漏,
安裝需要root權(quán)限,connector必須符合JDBC模型
sqoop2的優(yōu)點多種交互方式,命令行,web UI,rest API,conncetor集中化管理,所有的鏈接安裝在sqoop server上,完善權(quán)限管理機制,connector規(guī)范化,僅僅負責(zé)數(shù)據(jù)的讀寫。
sqoop2的缺點,架構(gòu)稍復(fù)雜,配置部署更繁瑣。
sqoop1架構(gòu)圖
sqoop2架構(gòu)圖
由于sqoop2還不是很完善,官方建議生產(chǎn)環(huán)境不建議使用,在此就sqoop1.4.6來作介紹