Sqoop是Apache旗下的一款“hadoop和關(guān)系型數(shù)據(jù)庫服務(wù)器之間傳送數(shù)據(jù)”的工具。
導(dǎo)入數(shù)據(jù):MySQL、Oracle導(dǎo)入數(shù)據(jù)到hadoop的hdfs、hive、HBASE等數(shù)據(jù)存儲(chǔ)系統(tǒng)。
導(dǎo)出數(shù)據(jù):從hadoop的文件系統(tǒng)中導(dǎo)出數(shù)據(jù)到關(guān)系型數(shù)據(jù)庫中。
將導(dǎo)入導(dǎo)出的命令翻譯成MapReduce程序來實(shí)現(xiàn),并且MapReduce程序不需要reducetask的。在翻譯出的MapReduce中主要針對(duì)對(duì) InputFormat 和 OutputFormat 進(jìn)行定制。
數(shù)據(jù)導(dǎo)入:
sqoop工具是通過MapReduce進(jìn)行導(dǎo)入作業(yè)的??傮w來說,是把關(guān)系型數(shù)據(jù)庫中的某張表的一行行記錄寫入hdfs中。
解釋:
- sqoop會(huì)通過jdbc來獲取需要的數(shù)據(jù)庫的元數(shù)據(jù)信息,例如:導(dǎo)入的表的列名,數(shù)據(jù)類型。
- 這些數(shù)據(jù)庫的數(shù)據(jù)類型會(huì)被映射成為java的數(shù)據(jù)類型,根據(jù)這些信息,sqoop會(huì)生成一個(gè)與表名相同的類用來完成序列化工作,保存表中的每一行記錄。
- sqoop開啟MapReduce作業(yè)
- 啟動(dòng)的作業(yè)在input的過程中,會(huì)通過jdbc讀取數(shù)據(jù)表中的內(nèi)容,這時(shí),會(huì)使用sqoop生成的類進(jìn)行序列化。
- 最后將這些記錄寫到hdfs上,在寫入hdfs的過程中,同樣會(huì)使用sqoop生成的類進(jìn)行反序列化。
數(shù)據(jù)導(dǎo)出:
解釋:
- 首先sqoop通過jdbc訪問關(guān)系型數(shù)據(jù)庫,得到需要導(dǎo)出的數(shù)據(jù)的元數(shù)據(jù)信息
- 根據(jù)獲取的元數(shù)據(jù)信息,sqoop生成一個(gè)java類,用來進(jìn)行數(shù)據(jù)的傳輸載體,該類必須實(shí)現(xiàn)序列化。
- 啟動(dòng)MapReduce程序
- sqoop利用生成的這個(gè)java類,并行的從hdfs中讀取數(shù)據(jù)
- 每一個(gè)map作業(yè)都會(huì)根據(jù)讀取到的導(dǎo)出表的元數(shù)據(jù)信息和讀取到的數(shù)據(jù),生成一批的insert語句然后多個(gè) map 作業(yè)會(huì)并行的向數(shù)據(jù)庫 mysql 中插入數(shù)據(jù)。
總結(jié):數(shù)據(jù)是從hdfs中并發(fā)進(jìn)行讀取,也是并發(fā)進(jìn)行寫入,那并行的讀取時(shí)依賴hdfs的性能,而并行的寫入到MySQL,就要依賴MySQL的性能。
前置要求:已經(jīng)具備了Java和hadoop的環(huán)境。
安裝包下載地址:http://ftp.wayne.edu/apache/sqoop/1.4.6/
這里安裝的是qoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz(sqoop1.x版本)
具體安裝:
#sqoop-env.sh
[hadoop hadoop01@ ~]$cd /application/sqoop-1.4.6/conf/
[hadoop hadoop01@ ~]$mv sqoop-env-template.sh sqoop-env.sh
[hadoop hadoop01@ ~]$vim sqoop-env.sh
export HADOOP_COMMON_HOME=/application/hadoop-2.7.6
export HADOOP_MAPRED_HOME=/application/hadoop-2.7.6
export HIVE_HOME=/application/apache-hive-2.3.2-bin
export ZOOCFGDIR=/application/zookeeper-3.4.10/conf
注意:這里的HADOOP_COMMON_HOME和HADOOP_MAPRED_HOME配成一個(gè)就行了,但是我們現(xiàn)在安裝的hadoop的開源的版本:所以這兩個(gè)在一個(gè)目錄下就行,但是在hadoop的商業(yè)版本中這兩個(gè)配置是分別安裝在不同的目錄下的。
[hadoop hadoop01@ ~]$vim /etc/profile
export SQOOP_HOME=/application/sqoop-1.4.6
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$SQOOP_HOME/bin
[hadoop hadoop01@ ~]$source /etc/profile
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
當(dāng)前題目:sqoop的介紹以及部署安裝-創(chuàng)新互聯(lián)
本文來源:http://aaarwkj.com/article44/ccoohe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)、企業(yè)建站、ChatGPT、Google、營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容