javaEE大數(shù)據(jù)培訓(xùn)教程-Hadoop平臺(tái)優(yōu)化總結(jié)_第1頁(yè)
javaEE大數(shù)據(jù)培訓(xùn)教程-Hadoop平臺(tái)優(yōu)化總結(jié)_第2頁(yè)
javaEE大數(shù)據(jù)培訓(xùn)教程-Hadoop平臺(tái)優(yōu)化總結(jié)_第3頁(yè)
javaEE大數(shù)據(jù)培訓(xùn)教程-Hadoop平臺(tái)優(yōu)化總結(jié)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

1、Java一直都是主流的語(yǔ)言之一,因?yàn)榇髷?shù)據(jù)的人才急需導(dǎo)致Java相關(guān)的工作崗位再次火爆起來(lái)。而在大數(shù)據(jù)中優(yōu)化是一個(gè)非常關(guān)鍵的課題。今天和大家一起討論一下關(guān)于大數(shù)據(jù)優(yōu)化的相關(guān)問(wèn)題。    隨著企業(yè)要處理的數(shù)據(jù)量越來(lái)越大,MapReduce思想越來(lái)越受到重視。Hadoop是MapReduce的一個(gè)開(kāi)源實(shí)現(xiàn),由于其良好的擴(kuò)展性和容錯(cuò)性,已得到越來(lái)越廣泛的應(yīng)用。Hadoop作為一個(gè)基礎(chǔ)數(shù)據(jù)處理平臺(tái),雖然其應(yīng)用價(jià)值已得到大家認(rèn)可,但仍存在很多問(wèn)題,以下是主要幾個(gè):    (1)Namenode/jobtracker單點(diǎn)故障。

2、 Hadoop采用的是master/slaves架構(gòu),該架構(gòu)管理起來(lái)比較簡(jiǎn)單,但存在致命的單點(diǎn)故障和空間容量不足等缺點(diǎn),這已經(jīng)嚴(yán)重影響了Hadoop的可擴(kuò)展性。    (2)HDFS小文件問(wèn)題。在HDFS中,任何block,文件或者目錄在內(nèi)存中均以對(duì)象的形式存儲(chǔ),每個(gè)對(duì)象約占150byte,如果有1000 0000個(gè)小文件,每個(gè)文件占用一個(gè)block,則namenode需要2G空間。如果存儲(chǔ)1億個(gè)文件,則namenode需要20G空間。這樣namenode內(nèi)存容量嚴(yán)重制約了集群的擴(kuò)展。    (3)job

3、tracker同時(shí)進(jìn)行監(jiān)控和調(diào)度,負(fù)載過(guò)大。為了解決該問(wèn)題,yahoo已經(jīng)開(kāi)始著手設(shè)計(jì)下一代Hadoop MapReduce(見(jiàn)參考資料1)。他們的主要思路是將監(jiān)控和調(diào)度分離,獨(dú)立出一個(gè)專門的組件進(jìn)行監(jiān)控,而jobtracker只負(fù)責(zé)總體調(diào)度,至于局部調(diào)度,交給作業(yè)所在的client。    (4)數(shù)據(jù)處理性能。 很多實(shí)驗(yàn)表明,其處理性能有很大的提升空間。Hadoop類似于數(shù)據(jù)庫(kù),可能需要專門的優(yōu)化工程師根據(jù)實(shí)際的應(yīng)用需要對(duì)Hadoop進(jìn)行調(diào)優(yōu),有人稱之為“Hadoop Performance Optimization” (HPO)。 

4、;   為了提高其數(shù)據(jù)性能,很多人開(kāi)始優(yōu)化Hadoop。總結(jié)看來(lái),對(duì)于Hadoop,當(dāng)前主要有幾個(gè)優(yōu)化思路:    (1)  從應(yīng)用程序角度進(jìn)行優(yōu)化。由于mapreduce是迭代逐行解析數(shù)據(jù)文件的,怎樣在迭代的情況下,編寫高效率的應(yīng)用程序,是一種優(yōu)化思路。    (2)  對(duì)Hadoop參數(shù)進(jìn)行調(diào)優(yōu)。當(dāng)前hadoop系統(tǒng)有190多個(gè)配置參數(shù),怎樣調(diào)整這些參數(shù),使hadoop作業(yè)運(yùn)行盡可能的快,也是一種優(yōu)化思路。    (3)

5、從系統(tǒng)實(shí)現(xiàn)角度進(jìn)行優(yōu)化。這種優(yōu)化難度是最大的,它是從hadoop實(shí)現(xiàn)機(jī)制角度,發(fā)現(xiàn)當(dāng)前Hadoop設(shè)計(jì)和實(shí)現(xiàn)上的缺點(diǎn),然后進(jìn)行源碼級(jí)地修改。該方法雖難度大,但往往效果明顯。    以上三種思路出發(fā)點(diǎn)均是提高h(yuǎn)adoop應(yīng)用程序的效率。實(shí)際上,隨著社會(huì)的發(fā)展,綠色環(huán)保觀念也越來(lái)越多地融入了企業(yè),因而很多人開(kāi)始研究Green Hadoop,即怎樣讓Hadoop完成相應(yīng)數(shù)據(jù)處理任務(wù)的同時(shí),使用最少的能源.    當(dāng)前學(xué)術(shù)界的一些優(yōu)化思路,有人試圖從Hadoop自動(dòng)配置角度對(duì)Hadoop進(jìn)行優(yōu)化,但更多的是從系統(tǒng)實(shí)現(xiàn)角度進(jìn)

6、行優(yōu)化,概括其優(yōu)化點(diǎn)和實(shí)驗(yàn)效果如下:    (1)從參數(shù)自動(dòng)調(diào)優(yōu)角度對(duì)Hadoop進(jìn)行優(yōu)化,給出了一種Hadoop優(yōu)化的新思路,即怎樣對(duì)其190多個(gè)配置參數(shù)進(jìn)行自動(dòng)調(diào)整,使應(yīng)用程序執(zhí)行效率最高。    (2)  提出prefetching和preshuffling機(jī)制,在不同負(fù)載不同規(guī)模集群下測(cè)試,效率提升了約73%。    (3)  影響Hadoop效率的五個(gè)因素,并通過(guò)提出相應(yīng)的解決方案,使Hadoop效率提高了2.53.5倍。  

7、  (4)  為Hadoop提供了一種索引機(jī)制 Trojan Index,同時(shí)提出了一種高效的join算法 Trojan Join,實(shí)驗(yàn)表明,效率比Hadoop和HadoopDB高很多。    除了學(xué)術(shù)界的優(yōu)化,工業(yè)界也在不斷進(jìn)行優(yōu)化以適應(yīng)自己公司的產(chǎn)品需要,主要有:    (1)Baidu公司。baidu對(duì)Hadoop中關(guān)鍵組件使用C+進(jìn)行了重寫(包括map, shuffler和reducer等),經(jīng)他們內(nèi)部測(cè)試(5 nodes,40GB data),效率提升了約20%. 

8、   (2)淘寶。淘寶針對(duì)自己集群特點(diǎn)(作業(yè)小,slot多,作業(yè)之間有依賴,集群共享,有些作業(yè)有時(shí)效性),對(duì)jobtracker和namenode進(jìn)行了優(yōu)化,據(jù)其官方博客稱,其jobtracker有較大性能提升,且namenode吞吐量提升了8+倍。但其具體優(yōu)化方法,未公開(kāi)。從應(yīng)用程序角度進(jìn)行優(yōu)化    (1) 避免不必要的reduce任務(wù)如果要處理的數(shù)據(jù)是排序且已經(jīng)分區(qū)的,或者對(duì)于一份數(shù)據(jù), 需要多次處理, 可以先排序分區(qū);然后自定義InputSplit, 將單個(gè)分區(qū)作為單個(gè)mapred的輸入;在map中處理數(shù)據(jù), Red

9、ucer設(shè)置為空。    這樣, 既重用了已有的 “排序”, 也避免了多余的reduce任務(wù)。    (2)外部文件引入有些應(yīng)用程序要使用外部文件,如字典,配置文件等,這些文件需要在所有task之間共享,可以放到分布式緩存DistributedCache中(或直接采用-files選項(xiàng),機(jī)制相同)。更多的這方面的優(yōu)化方法,還需要在實(shí)踐中不斷積累。    (3) 為job添加一個(gè)Combiner為job添加一個(gè)combiner可以大大減少shuffle階段從map task拷貝給

10、遠(yuǎn)程reduce task的數(shù)據(jù)量。一般而言,combiner與reducer相同。    (4) 根據(jù)處理數(shù)據(jù)特征使用最適合和簡(jiǎn)潔的Writable類型Text對(duì)象使用起來(lái)很方便,但它在由數(shù)值轉(zhuǎn)換到文本或是由UTF8字符串轉(zhuǎn)換到文本時(shí)都是低效的,且會(huì)消耗大量的CPU時(shí)間。當(dāng)處理那些非文本的數(shù)據(jù)時(shí),可以使用二進(jìn)制的Writable類型,如IntWritable, FloatWritable等。二進(jìn)制writable好處:避免文件轉(zhuǎn)換的消耗;使map task中間結(jié)果占用更少的空間。    (5) 重用Writabl

11、e類型很多MapReduce用戶常犯的一個(gè)錯(cuò)誤是,在一個(gè)map/reduce方法中為每個(gè)輸出都創(chuàng)建Writable對(duì)象。例如,你的Wordcout mapper方法可能這樣寫:public void map(.)     for (String word : words)     output.collect(new Text(word), new IntWritable(1);      這樣會(huì)導(dǎo)致程序分配出成千上萬(wàn)個(gè)短周期的對(duì)象。Java垃圾收集器就要為此做很多的工作。更有效的寫法是:class My

12、Mapper   Text wordText = new Text();  IntWritable one = new IntWritable(1);  public void map(.)     for (String word: words)       wordText.set(word);      output.collect(wordText, one);          (6) 使用StringBuffer而不

溫馨提示

  • 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)論