您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Hadoop執(zhí)行路徑的示例分析的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Hadoop簡介
一個分布式系統(tǒng)基礎(chǔ)架構(gòu),由Apache基金會開發(fā)。用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力高速運算和存儲。
簡單地說來,Hadoop是一個可以更容易開發(fā)和運行處理大規(guī)模數(shù)據(jù)的軟件平臺。
Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(HadoopDistributedFileSystem),簡稱HDFS。HDFS有著高容錯性(fault-tolerent)的特點,并且設(shè)計用來部署在低廉的(low-cost)硬件上。而且它提供高傳輸率(highthroughput)來訪問應(yīng)用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(largedataset)的應(yīng)用程序。HDFS放寬了(relax)POSIX的要求(requirements)這樣可以流的形式訪問(streamingaccess)文件系統(tǒng)中的數(shù)據(jù)。
Hadoop執(zhí)行路徑。
通常我們在自己編寫的Job代碼中會調(diào)用JobClient.runJob(job)方法來啟動任務(wù)的真正執(zhí)行,我們的介紹就從這個命令開始(在調(diào)用這個api之前,我們已經(jīng)設(shè)計并且在程序中指定好自己的mapper函數(shù)和reducer函數(shù)了)
1,JobClient.runJob(job)靜態(tài)方法會實例化一個JobClient實例,然后用該實例的submitJob(job)方法向master提交作業(yè),此方法返回一個RunningJob對象,用來跟蹤作業(yè)的狀態(tài),作業(yè)提交完畢,JobClient會輪訓(xùn)作業(yè)的進(jìn)度
2,submitJob內(nèi)部是通過JobSubmitter的submitJobInternal(job)完成實質(zhì)性的作業(yè)提交。submitJobInternal會先向haodoop文件系統(tǒng)上傳3個文件:job.jar,job.split,job.xml這三個文件位置由mapreduce系統(tǒng)路徑mapred.system.dir屬性決定,寫完這三個文件之后,此方法使用RPC調(diào)用master節(jié)點的JobTracker.submitJob(job)方法。
3,JobTracker收到JobClient提交的作業(yè)后,即在JobTracker.submitJob()方法中,首先生成一個JobInProgress對象,此對象代表一個作業(yè),它的作用是維護這道作業(yè)的所有信息,包括作業(yè)剖析JobProfile和JobStatus,并登記所有Task進(jìn)任務(wù)表中。隨后JobTracker會將此JobInProgress對象通過listener.jobAdd(job)方法加入作業(yè)調(diào)度隊列,并用一個成員Jobs來表示所有的作業(yè)
4,Hadoop默認(rèn)的調(diào)度器是FIFO的JobQueueTaskScheduler。它有2個成員變量JobQueueJobInProgressListener和eagerTaskInitializationListener。后者負(fù)責(zé)任務(wù)初始化。作法為:listerner初始化時,開啟JobInitThread線程,當(dāng)作業(yè)通過JobAdd(job)加入初始化隊列jobInitQueue時,根據(jù)作業(yè)優(yōu)先級排序,之后該線程調(diào)用JobInProgress的initTasks()來初始化所有的任務(wù)。
5,initTasks()過程比較復(fù)雜,在這里面會根據(jù)原先對輸入任務(wù)的分解,來創(chuàng)建對應(yīng)數(shù)目的Map執(zhí)行管理對象TaskInProgress。
感謝各位的閱讀!關(guān)于“Hadoop執(zhí)行路徑的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。