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