HDFS參數(shù)調(diào)優(yōu)

1.虛擬 CPU 個(gè)數(shù)計(jì)算方法

CPU 個(gè)數(shù) * 單個(gè) CPU 核數(shù) * 單個(gè) CPU 核的超線程數(shù)


為了避免資源浪費(fèi), 虛擬 CPU 與內(nèi)存需滿足線性比例:?

1 : 4 G ~ 8

2.硬盤大小

需考慮臨時(shí)數(shù)據(jù)的存儲(chǔ): 20% ~ 30%

(存儲(chǔ)的數(shù)據(jù)量 * 副本數(shù) ) / DataNode 數(shù) * (1 + 0.2 ~ 0.3)


3.HDFS參數(shù)調(diào)優(yōu)

(1)hdfs-site.xml 參數(shù)

解釋: Hadoop 的文件塊大小,通常設(shè)為 128MB 或 256MB


解釋: NameNode 同時(shí)和 DataNode 通信的線程數(shù),默認(rèn)為 10。


解釋:dfs.datanode.max.xcievers 對(duì)于 DataNode 如同 Linux 上文件 句柄限制鲁冯。 當(dāng) DataNode 上面的連接數(shù)超過配置中的設(shè)置時(shí), DataNode 就會(huì)拒絕 連接,修改設(shè)置為 65536


解釋: 執(zhí)行 start-balancer.sh 的帶寬,默認(rèn)為 1048576 (1MB/s),將其 調(diào)大為 20MB/s


解釋: HDFS 文件副本數(shù),默認(rèn)為 3, 當(dāng)許多任務(wù)同時(shí)讀取一個(gè)文件時(shí), 讀取可能會(huì)造成瓶頸檀训。 增大副本數(shù)可以有效緩解這種情況,但是也會(huì)造成大量的磁盤占用空 間杠人。這時(shí)可以只修改 Hadoop 客戶端的配置,那么從 Hadoop 客戶端 上傳的文件副本數(shù)將以 Hadoop 客戶端為準(zhǔn)。


解釋: 設(shè)置 DataNode 在文件傳輸時(shí)最大線程數(shù),通常設(shè)置為 8192前标。 如果集群中某臺(tái) DataNode 主機(jī)上的這個(gè)值比其他主機(jī)的大, 那么會(huì) 導(dǎo)致這臺(tái)主機(jī)上的存儲(chǔ)數(shù)據(jù)比別的主機(jī)相對(duì)要多,從而會(huì)導(dǎo)致數(shù)據(jù)分 布不均勻的問題揪惦,即使 balance 任然會(huì)不均勻。

(2)core-site.xml 參數(shù)

解釋: Hadoop 緩沖區(qū)大小用于 HDFS 的文件的讀寫和 map 過程的 中間結(jié)果輸出,默認(rèn)為 4KB,增加到 128KB疗认。


解釋: 開啟 HDFS 文件刪除自動(dòng)轉(zhuǎn)移到垃圾箱的選項(xiàng),值為垃圾箱文件 清除時(shí)間。一般開啟這個(gè)會(huì)比較好,以防錯(cuò)誤刪除重要文件伏钠。默認(rèn)值為 0, 單位是分鐘横漏。

(3)yarn-site.xml 參數(shù)

解釋: yarn.nodemanager.resource.memory-mb 表示物理節(jié)點(diǎn)有多少 內(nèi)存加入資源池。設(shè)置該值時(shí),注意為操作系統(tǒng)和其他服務(wù)預(yù)留資源?


解釋: yarn.nodemanager.resource.cpu-vcores 表示物理節(jié)點(diǎn)有多少 虛擬 CPU 加入資源池熟掂。設(shè)置該值時(shí),注意為操作系統(tǒng)和其他服務(wù)預(yù)留 資源


解釋: yarn.scheduler.increment-allocation-mb 表示內(nèi)存申請(qǐng)的歸整化 單位,即內(nèi)存增量绊茧。如果申請(qǐng)的內(nèi)存為 1.5GB,將被計(jì)算為 2GB。


解釋: yarn.scheduler.increment-allocation-vcores 表示虛擬 CPU 申 請(qǐng)的歸整化單位,即 CPU 增量, 默認(rèn)為 1 個(gè)打掘。?


解釋: 單個(gè)任務(wù)(容器)能夠申請(qǐng)到的最大內(nèi)存資源,根據(jù)容器內(nèi)存總量進(jìn) 行設(shè)置,默認(rèn)為 8GB。 如果設(shè)定為和參數(shù) yarn.nodemanager.resource.memory-mb 一樣,那 么表示單個(gè)任務(wù)使用的內(nèi)存資源不受限制鹏秋。


解釋: 單個(gè)任務(wù)(容器)能夠申請(qǐng)到的最小內(nèi)存資源,默認(rèn)為 1GB尊蚁。?


解釋: 單個(gè)任務(wù)(容器)能夠申請(qǐng)到的最大虛擬 CPU 數(shù),根據(jù)容器虛擬 CPU 總數(shù)進(jìn)行設(shè)置,默認(rèn)為 4。 如果設(shè)定為和參數(shù) yarn.nodemanager.resource.cpu-vcores 一樣,那 么表示單個(gè)任務(wù)使用的 CPU 資源不受限制


解釋: 單個(gè)任務(wù)(容器)能夠申請(qǐng)到的最小虛擬 CPU 資源,默認(rèn)為 1侣夷。?

(4)mapred-site.xml 參數(shù)

解釋: 表示 Map 任務(wù)的中間結(jié)果是否壓縮横朋。 當(dāng)設(shè)為 true 時(shí),會(huì)對(duì)中間結(jié)果進(jìn)行壓縮,這樣會(huì)減少數(shù)據(jù)傳輸時(shí)需要的 帶寬。設(shè)為 true 后,還可以設(shè) 置 >mapreduce.map.output.compress.codec 進(jìn)行壓縮算法的選擇百拓。 CDH5 已經(jīng)內(nèi)置 snappy 算法琴锭,還可以選擇 LZO 等壓縮算法,其中有 些需要額外安裝。


解釋: 表示 JVM 重用設(shè)置,默認(rèn)為 1,表示 1 個(gè) JVM 只能啟動(dòng)一個(gè) 任務(wù)衙传。設(shè)為 -1 ,表示 1 個(gè) JVM 可以啟動(dòng)的任務(wù)不受限制?


解釋: 開啟 Map 任務(wù)/ Reduce 任務(wù)的推測(cè)機(jī)制决帖。 推測(cè)機(jī)制可以有效的防止因?yàn)槠款i而導(dǎo)致拖累整個(gè)作業(yè),但也要注意,推 測(cè)執(zhí)行會(huì)搶占搶占系統(tǒng)資源,默認(rèn)設(shè)置為 true。


解釋: 表示 MapReduce 的中間結(jié)果的本地存儲(chǔ)路徑,該值設(shè)定為多磁 盤目錄有助于提高 I/O 效率蓖捶。


解釋: 表示執(zhí)行 Map 任務(wù)和 Reduce 任務(wù)的 JVM 參數(shù),該配置還可 以配置 GC 等常見的 Java 選項(xiàng)?該參數(shù)粒度過粗, Map 任務(wù)和 Reduce 任務(wù)的內(nèi)存需求和堆大小一般 不同,所以這些參數(shù)一般單數(shù)設(shè)定

<property>?
<name>mmapreduce.reduce.memory.mb </name>
<value>-1</value>
</property>

解釋: 該參數(shù)表示執(zhí)行 Reduce 任務(wù)需要的內(nèi)存大小地回。 它可以從 mapreduce.map.java.opts 參數(shù)設(shè)定的值繼承,如果沒有設(shè) 定,該值根據(jù)容器內(nèi)存設(shè)置。 一般要大于 mapreduce.map.memory.mb 。

<property>
<name>mapreduce.reduce.cpu.vcores</name><value>1</value>
</property>

解釋: 該參數(shù)表示執(zhí)行 Reduce 任務(wù)需要的虛擬 CPU 數(shù),默認(rèn)值為 1刻像。根據(jù)容器虛擬 CPU 數(shù)設(shè)定,可以適當(dāng)加大,并且該值與參數(shù) mapreduce.reduce.memory.mb 成線性比例才不至于浪費(fèi)資源畅买。 一般要大于 mapreduce.map.cpu.vcores 。

<property>
<name>yarn.app.mapreduce.am.resource.cpu-vcores</name>
<value>1</value>
</property>

解釋: 該參數(shù)表示執(zhí) MapReduce 作業(yè)的 ApplicationMaster(二級(jí)調(diào) 度器) 向 ResourceManager(一級(jí)調(diào)度器) 申請(qǐng)的虛擬 CPU 個(gè)數(shù),默 認(rèn)值為 1,可以適當(dāng)調(diào)大细睡。

<property>
<name>yarn.app.mapreduce.am.resource.mb</name>
<value>1536</value>
</property>

解釋: 該參數(shù)表示執(zhí) MapReduce 作業(yè)的 ApplicationMaster(二級(jí)調(diào) 度器) 向 ResourceManager(一級(jí)調(diào)度器) 申請(qǐng)的內(nèi)存大小,默認(rèn)值為 1536 MB,可以適當(dāng)調(diào)大谷羞。

<name>mapreduce.task.io.sort.mb</name>

<value>100</value>

解釋: 該參數(shù)表示 Map 任務(wù)的輸出的環(huán)形緩沖區(qū)大小,默認(rèn)為 100MB, 可以適當(dāng)調(diào)大。

<name>mapreduce.task.io.sort.factor</name>

<value>10</value>

解釋: 該參數(shù)為控制 Map 端和 Reduce 端的合并策略,表現(xiàn)為一次合 并的文件數(shù)目,默認(rèn)值為 10溜徙。 該值如果過大會(huì)使合并時(shí)內(nèi)存消耗過大,如果過小會(huì)增加合并次數(shù)湃缎。

<name>mapreduce.map.sort.spill.percent</name>

<value>0.80</value>

解釋: 該參數(shù)表示 Map 任務(wù)的輸出的環(huán)形緩沖區(qū)的閾值,一旦緩存區(qū) 的內(nèi)容占緩沖區(qū)的比例超過該值,則將緩沖區(qū)的內(nèi)容刷寫到mapreduce.cluster.local.dir 所配置的目錄,默認(rèn)為 0.8,建議不低于 0.5。

<name>mapreduce.reduce.shuffle.parallelcopies</name>

<value>25</value>

解釋: 該參數(shù)表示 Reduce 任務(wù)從 Map 任務(wù)復(fù)制輸出的工作線程數(shù), 默認(rèn)為 5, 可以適當(dāng)調(diào)高萌京。如果設(shè)置過高,會(huì)導(dǎo)致大量數(shù)據(jù)在網(wǎng)絡(luò)同時(shí)傳 輸,引起 I/O 壓力過大,比較科學(xué)的設(shè)定方式為 4 * lgN ,其中 N 為集群 容量大小雁歌。mapreduce.cluster.local.dir 所配置的目錄,默認(rèn)為 0.8,建議 不低于 0.5。

<name>mapreduce.reduce.shuffle.input.buffer.percent</name>

<value>0.7</value>

解釋: 該參數(shù)表示 shuffle 中的復(fù)制階段耗費(fèi) Reduce 任務(wù)堆比例,默

認(rèn)為 0.7知残。Reduce 任務(wù)的堆由前面的配置計(jì)算得出,可以根據(jù)具體情況

進(jìn)行增減靠瞎。

<name>mapreduce.reduce.shuffle.merge.parallelcopies</name>
<value>0.66</value>

解釋: 表示當(dāng)內(nèi)存使用率超過該參數(shù)時(shí),將會(huì)觸發(fā)一次合并操作,已將內(nèi)

存中的數(shù)據(jù)刷寫到磁盤上,默認(rèn)值為 0.66,可以根據(jù)具體情況適當(dāng)調(diào)整。

<name>mapreduce.job.reduce.slowstart.completedmaps</name>

<value>0.05</value>

解釋: 該參數(shù)控制 Reduce 任務(wù)的啟動(dòng)時(shí)機(jī),默認(rèn)值為 0.05求妹。 表示當(dāng) Map 任務(wù)完成數(shù)目達(dá)到 5% 時(shí),啟動(dòng) Reduce 任務(wù),這是為較 緩慢的網(wǎng)絡(luò)傳輸設(shè)計(jì)的,可以適當(dāng)調(diào)高乏盐。 不過 Reduce 任務(wù)啟動(dòng)時(shí)間過早或者過晚都會(huì)增加作業(yè)的完成時(shí)間。 如果不加設(shè)定, MapReduce 作業(yè)的 Reduce 個(gè)數(shù)默認(rèn)為 1,可以根據(jù) 需要在作業(yè)中進(jìn)行設(shè)定制恍。 除了以上配置,還可以配置任務(wù)調(diào)度器,設(shè)置跳過壞記錄來提高執(zhí)行效率父能。

Hadoop 的參數(shù)調(diào)優(yōu)主要遵循以下 3 條原則:

1. 增大作業(yè)并行度,如增大 Map 任務(wù)的數(shù)量;

2. 保證任務(wù)執(zhí)行時(shí)有足夠的資源;

3. 滿足上兩條原則的前提下,盡可能的為 Shuffle 階段提供資源。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末净神,一起剝皮案震驚了整個(gè)濱河市何吝,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹃唯,老刑警劉巖爱榕,帶你破解...
    沈念sama閱讀 206,968評(píng)論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異坡慌,居然都是意外死亡黔酥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門洪橘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跪者,“玉大人,你說我怎么就攤上這事熄求≡幔” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵弟晚,是天一觀的道長(zhǎng)柜蜈。 經(jīng)常有香客問我仗谆,道長(zhǎng),這世上最難降的妖魔是什么淑履? 我笑而不...
    開封第一講書人閱讀 55,416評(píng)論 1 279
  • 正文 為了忘掉前任隶垮,我火速辦了婚禮,結(jié)果婚禮上秘噪,老公的妹妹穿的比我還像新娘狸吞。我一直安慰自己,他們只是感情好指煎,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評(píng)論 5 374
  • 文/花漫 我一把揭開白布蹋偏。 她就那樣靜靜地躺著,像睡著了一般至壤。 火紅的嫁衣襯著肌膚如雪威始。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評(píng)論 1 285
  • 那天像街,我揣著相機(jī)與錄音黎棠,去河邊找鬼。 笑死镰绎,一個(gè)胖子當(dāng)著我的面吹牛脓斩,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播畴栖,決...
    沈念sama閱讀 38,432評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼随静,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了吗讶?” 一聲冷哼從身側(cè)響起燎猛,我...
    開封第一講書人閱讀 37,088評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎照皆,沒想到半個(gè)月后扛门,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纵寝,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了星立。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爽茴。...
    茶點(diǎn)故事閱讀 38,137評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖绰垂,靈堂內(nèi)的尸體忽然破棺而出室奏,到底是詐尸還是另有隱情,我是刑警寧澤劲装,帶...
    沈念sama閱讀 33,783評(píng)論 4 324
  • 正文 年R本政府宣布胧沫,位于F島的核電站昌简,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绒怨。R本人自食惡果不足惜纯赎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評(píng)論 3 307
  • 文/蒙蒙 一冀惭、第九天 我趴在偏房一處隱蔽的房頂上張望冰抢。 院中可真熱鬧,春花似錦驹尼、人聲如沸六剥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)疗疟。三九已至该默,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間策彤,已是汗流浹背栓袖。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評(píng)論 1 262
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锅锨,地道東北人叽赊。 一個(gè)月前我還...
    沈念sama閱讀 45,595評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像必搞,于是被迫代替她去往敵國(guó)和親必指。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容