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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

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

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

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

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

11、e類型很多MapReduce用戶常犯的一個錯誤是,在一個map/reduce方法中為每個輸出都創(chuàng)建Writable對象。例如,你的Wordcout mapper方法可能這樣寫:public void map(.)     for (String word : words)     output.collect(new Text(word), new IntWritable(1);      這樣會導致程序分配出成千上萬個短周期的對象。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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論