真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

hadoop的運(yùn)行原理是怎么樣的

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)hadoop的運(yùn)行原理是怎么樣的,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

公司主營業(yè)務(wù):做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出蔡家坡免費(fèi)做網(wǎng)站回饋大家。

hadoop主要由三方面組成:
1、HDFS
2、MapReduce
3、Hbase

Hadoop框架中最核心的設(shè)計(jì)就是:MapReduce和HDFS。MapReduce的思想是由Google的一篇論文所提及而被廣為流傳的, 簡(jiǎn)單的一句話解釋MapReduce就是“任務(wù)的分解與結(jié)果的匯總”。HDFS是Hadoop分布式文件系統(tǒng)(Hadoop Distributed File System)的縮寫 ,為分布式計(jì)算存儲(chǔ)提供了底層支持。

MapReduce從它名字上來看就大致可以看出個(gè)緣由,兩個(gè)動(dòng)詞Map和Reduce,“Map(展開)”就是將一個(gè)任務(wù)分解成為多個(gè)任 務(wù),“Reduce”就是將分解后多任務(wù)處理的結(jié)果匯總起來,得出最后的分析結(jié)果。這不是什么新思想,其實(shí)在前面提到的多線程,多任務(wù)的設(shè)計(jì)就可以找到這 種思想的影子。不論是現(xiàn)實(shí)社會(huì),還是在程序設(shè)計(jì)中,一項(xiàng)工作往往可以被拆分成為多個(gè)任務(wù),任務(wù)之間的關(guān)系可以分為兩種:一種是不相關(guān)的任務(wù),可以并行執(zhí) 行;另一種是任務(wù)之間有相互的依賴,先后順序不能夠顛倒,這類任務(wù)是無法并行處理的?;氐酱髮W(xué)時(shí)期,教授上課時(shí)讓大家去分析關(guān)鍵路徑,無非就是找最省時(shí)的 任務(wù)分解執(zhí)行方式。在分布式系統(tǒng)中,機(jī)器集群就可以看作硬件資源池,將并行的任務(wù)拆分,然后交由每一個(gè)空閑機(jī)器資源去處理,能夠極大地提高計(jì)算效率,同時(shí) 這種資源無關(guān)性,對(duì)于計(jì)算集群的擴(kuò)展無疑提供了最好的設(shè)計(jì)保證。(其實(shí)我一直認(rèn)為Hadoop的卡通圖標(biāo)不應(yīng)該是一個(gè)小象,應(yīng)該是螞蟻,分布式計(jì)算就好比 螞蟻吃大象,廉價(jià)的機(jī)器群可以匹敵任何高性能的計(jì)算機(jī),縱向擴(kuò)展的曲線始終敵不過橫向擴(kuò)展的斜線)。任務(wù)分解處理以后,那就需要將處理以后的結(jié)果再匯總起 來,這就是Reduce要做的工作。


下面這個(gè)圖很經(jīng)典:

hadoop的運(yùn)行原理是怎么樣的

上圖中展現(xiàn)了整個(gè)HDFS三個(gè)重要角色:NameNode、DataNode和 Client。NameNode可以看作是分布式文件系統(tǒng)中的管理者,主要負(fù)責(zé)管理文件系統(tǒng)的命名空間、集群配置信息和存儲(chǔ)塊的復(fù)制等。NameNode 會(huì)將文件系統(tǒng)的Meta-data存儲(chǔ)在內(nèi)存中,這些信息主要包括了文件信息、每一個(gè)文件對(duì)應(yīng)的文件塊的信息和每一個(gè)文件塊在DataNode的信息等。 DataNode是文件存儲(chǔ)的基本單元,它將Block存儲(chǔ)在本地文件系統(tǒng)中,保存了Block的Meta-data,同時(shí)周期性地將所有存在的 Block信息發(fā)送給NameNode。Client就是需要獲取分布式文件系統(tǒng)文件的應(yīng)用程序。這里通過三個(gè)操作來說明他們之間的交互關(guān)系。
 

文件寫入:

  a):Client向NameNode發(fā)起文件寫入的請(qǐng)求。
  b):NameNode根據(jù)文件大小和文件塊配置情況,返回給Client它所管理部分DataNode的信息。
  c):Client將文件劃分為多個(gè)Block,根據(jù)DataNode的地址信息,按順序?qū)懭氲矫恳粋€(gè)DataNode塊中。

文件讀?。?br/>
  a):Client向NameNode發(fā)起文件讀取的請(qǐng)求。
  b):NameNode返回文件存儲(chǔ)的DataNode的信息。
  c):Client讀取文件信息。

文件Block復(fù)制:

  a):NameNode發(fā)現(xiàn)部分文件的Block不符合最小復(fù)制數(shù)或者部分DataNode失效。
  b):通知DataNode相互復(fù)制Block。
  c):DataNode開始直接相互復(fù)制.

下面綜合MapReduce和HDFS來看Hadoop的結(jié)構(gòu):


Hadoop結(jié)構(gòu)示意圖

在Hadoop的系統(tǒng)中,會(huì)有一臺(tái)Master,主要負(fù)責(zé)NameNode的工作以及JobTracker的工作。JobTracker的主要職責(zé) 就是啟動(dòng)、跟蹤和調(diào)度各個(gè)Slave的任務(wù)執(zhí)行。還會(huì)有多臺(tái)Slave,每一臺(tái)Slave通常具有DataNode的功能并負(fù)責(zé)TaskTracker的 工作。TaskTracker根據(jù)應(yīng)用要求來結(jié)合本地?cái)?shù)據(jù)執(zhí)行Map任務(wù)以及Reduce任務(wù)。

把自己平時(shí)工作當(dāng)中的代碼貼出來解釋下可能會(huì)更好的理解:

    FileInputFormat.setInputPaths(tempJob, hdfsHome); //  把本地的文件讀入到HDFS中
    LOG.info(tempJobName + " data  start .....");

    tempJob.setJarByClass(tempMain.class); //設(shè)置這個(gè)Job運(yùn)行是那個(gè)類
    tempJob.setMapperClass(MultithreadedMapper.class); //設(shè)置這個(gè)job運(yùn)行的map,這里面使用了本身map自帶的多線程實(shí) 現(xiàn)機(jī)制,這一點(diǎn)很重要,可以幫助我們提高運(yùn)行的效率。
    MultithreadedMapper.setMapperClass(tempJob,tempMapper.class); //設(shè)置這個(gè)job運(yùn)行的map
    MultithreadedMapper.setNumberOfThreads(tempJob, Integer.parseInt(tempThread));//設(shè)置多線程運(yùn)行幾個(gè)線程
    tempJob.setMapOutputKeyClass(LongWritable.class);// 設(shè)置map所輸出的key
    tempJob.setMapOutputValueClass(StringArrayWritable.class); // 設(shè)置map所輸出的value 
       ......                     //下面還有reduce的一些,我這里的業(yè)務(wù)沒有涉及到,這里就不列出來了。

    long start = System.currentTimeMillis();
    boolean result = tempJob.waitForCompletion(true); //啟動(dòng)一個(gè)job運(yùn)行
    long end = System.currentTimeMillis();

上述就是小編為大家分享的hadoop的運(yùn)行原理是怎么樣的了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)站標(biāo)題:hadoop的運(yùn)行原理是怎么樣的
轉(zhuǎn)載源于:http://weahome.cn/article/jsodhj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部