數(shù)據(jù)轉(zhuǎn)換解決方案sqoop_第1頁(yè)
數(shù)據(jù)轉(zhuǎn)換解決方案sqoop_第2頁(yè)
數(shù)據(jù)轉(zhuǎn)換解決方案sqoop_第3頁(yè)
數(shù)據(jù)轉(zhuǎn)換解決方案sqoop_第4頁(yè)
數(shù)據(jù)轉(zhuǎn)換解決方案sqoop_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)轉(zhuǎn)換工具sqoop1. SqoopSqoop工具介紹 Sqoop Sqoop是Apache頂級(jí)項(xiàng)目,主要用來(lái)在Hadoop和關(guān)系數(shù)據(jù)庫(kù)中傳遞數(shù)據(jù)。通過(guò)sqoop,我們可以方便的將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫(kù)導(dǎo)入到HDFS,或者將數(shù)據(jù)從HDFS導(dǎo)出到關(guān)系數(shù)據(jù)庫(kù)。 sqoop主要通過(guò)JDBC和關(guān)系數(shù)據(jù)庫(kù)進(jìn)行交互,理論上支持JDBC的database都可以使用sqoop。1.1 Sqoop介紹:兼容數(shù)據(jù)庫(kù) Sqoop主要通過(guò)mapreduce把數(shù)據(jù)從關(guān)系型數(shù)據(jù)庫(kù)中導(dǎo)入數(shù)據(jù)到HDFS,目前測(cè)試兼容的數(shù)據(jù)庫(kù)。 對(duì)oracle數(shù)據(jù)庫(kù)的處理,復(fù)制jdbc驅(qū)動(dòng)ojdbc6.jar 到sqoop的lib目錄即可。數(shù)據(jù)庫(kù)

2、數(shù)據(jù)庫(kù)版本支持版本支持直接支持直接支持MySQL5.0+YesOracle10.2.0+NoPostgreSQL8.3+(只支持導(dǎo)入)YesHSQLDB1.8.0+NoTeradata13.0+No1.2 工作原理:總體架構(gòu)1.2 工作原理: 工作流程(1) Sqoop架構(gòu)非常簡(jiǎn)單,其整合了Hive、Hbase和Oozie,通過(guò)map-reduce任務(wù)來(lái)傳輸數(shù)據(jù),從而提供并發(fā)特性和容錯(cuò)。 Sqoop可以通過(guò)命令行先創(chuàng)建一個(gè)任務(wù)名,并描述該任務(wù)的導(dǎo)入或者導(dǎo)出工作,然后執(zhí)行即可。其主要工作流程如下:1.讀取要導(dǎo)入數(shù)據(jù)的表結(jié)構(gòu),生成運(yùn)行類(lèi),默認(rèn)是QueryResult,打成jar包,然后提交給Had

3、oop;1.2 工作原理: 工作流程(2)2.設(shè)置好mapreduce的job,主要包括如下參數(shù): (1) InputFormatClass : 設(shè)置輸入格式; (2) OutputFormatClass: 設(shè)置輸出格式,包括:文本、SequenceFile和AvroDataFile三種格式; (3) Mapper: 設(shè)置執(zhí)行mapreduce任務(wù)的mapper類(lèi); (4) taskNumbers: 設(shè)置執(zhí)行mapreduce的并行任務(wù)數(shù)。1.2 工作原理: 工作流程(3) 3. 由Hadoop來(lái)執(zhí)行MapReduce任務(wù)完成Import工作: 1)首先要對(duì)數(shù)據(jù)進(jìn)行切分,記錄劃分范圍并讀??;

4、2)然后創(chuàng)建RecordReader從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù); 3)創(chuàng)建Map,RecordReader一行一行從關(guān)系型數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),設(shè)置好Map的Key和Value; 4)運(yùn)行map。1.3 數(shù)據(jù)導(dǎo)入Import特性1.支持文本文件、avro、SequenceFiles格式, 默認(rèn)為文本。2.支持?jǐn)?shù)據(jù)追加,通過(guò)apend指定。3.支持table列選取(column),支持?jǐn)?shù)據(jù)選取(where、 join)。4.支持map任務(wù)數(shù)定制和數(shù)據(jù)壓縮。 5. 提供參數(shù)將關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)入到HBase ,導(dǎo)入HBase分二部:1)導(dǎo)入數(shù)據(jù)到HDFS; 2)調(diào)用HBase put操作逐行將數(shù)據(jù)寫(xiě)入表。1

5、.4 數(shù)據(jù)導(dǎo)出Export特性1. 支持將數(shù)據(jù)導(dǎo)出到表(table)或者調(diào)用存儲(chǔ)過(guò)程(call)。2. 支持insert、update模式。3. 支持并發(fā)控制。1.5 增量備份(1) 一般情況下,關(guān)系數(shù)據(jù)表存在于線上環(huán)境的備份環(huán)境,需要每天進(jìn)行數(shù)據(jù)導(dǎo)入。如果數(shù)據(jù)表較大,我們通常不可能每次都進(jìn)行全表的導(dǎo)入,而sqoop提供了增量導(dǎo)入數(shù)據(jù)的機(jī)制。 控制增量導(dǎo)入主要由三個(gè)參數(shù)控制: -check-column (col):表明當(dāng)判斷哪些行要被導(dǎo)入時(shí)需要檢查的列; -incremental (mode):表明Sqoop是如何判斷哪些行是新的,mode主要包括append(增量)和lastmodifie

6、d(上次備份后修改過(guò)的)兩個(gè)模式; -last-value (value):表明上次導(dǎo)入之后check-column(被檢查列)的最大值(已排序的)。 1.5 增量備份(2) 還有一個(gè)問(wèn)題,每天導(dǎo)入時(shí)last value值都不一樣,如何做到每天動(dòng)態(tài)的讀取新的last value呢?這點(diǎn)sqoop也想到了,sqoop支持把一條sqoop命令變?yōu)橐粋€(gè)job查找最新的last value,然后自動(dòng)地更換last value的值。 我們只要設(shè)置一個(gè)每天增量導(dǎo)出任務(wù)和一個(gè)定期的全表導(dǎo)出任務(wù),用腳本定時(shí)執(zhí)行兩個(gè)任務(wù)即可完成數(shù)據(jù)庫(kù)數(shù)據(jù)的轉(zhuǎn)換工作了。 1.6 Sqoop性能 原生Sqoop導(dǎo)出到HDFS速度為2.8MB/s左右。 此外Sqoop還有很多第三方的插件,比如Quest開(kāi)發(fā)的OraOop插件來(lái)提高導(dǎo)入導(dǎo)出速度。 測(cè)試環(huán)境如下:一臺(tái)只有700m內(nèi)存的,IO低下的oracle數(shù)據(jù)庫(kù),百兆的網(wǎng)絡(luò),使用Quest的Sqoop插件設(shè)置為4個(gè)并行度。從orcale導(dǎo)出到HDFS速度達(dá)到了5MB/s 。最新sqoop穩(wěn)定版本為1.4.4,1.6 Sqoop版本和穩(wěn)定性 最新sqoop穩(wěn)定版本為1.4.4,2013年8月發(fā)布,目前sqoop2也更新到了1.99.3,2013年

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論