新聞中心
1、背景
在我們的hadoop集群運(yùn)行一段過程中,由于多種原因,數(shù)據(jù)在DataNade的磁盤之間的分布可能是不均勻。比如: 我們剛剛給某個(gè)DataNode新增加了一塊磁盤或者集群上存在大批量的write & deltete操作等燈。那么有沒有一種工具,能夠使單個(gè)DataNode中的多個(gè)磁盤的數(shù)據(jù)均衡呢?借助Hadoop提供的Diskbalancer命令行工具可以實(shí)現(xiàn)。

十年的寧陵網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整寧陵建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“寧陵網(wǎng)站設(shè)計(jì)”,“寧陵網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
2、hdfs balancer和 hdfs disk balancer有何不同?
hdfs balancer:是為了集群中DataNode的數(shù)據(jù)均衡,即針對(duì)多個(gè)DataNode的。
hdfs balancer
hdfs disk balancer:是為了使單臺(tái)DataNode中的多個(gè)磁盤中的數(shù)據(jù)均衡。
hdfs disk balancer
注意: 目前DiskBalancer不支持跨存儲(chǔ)介質(zhì)(SSD、DISK等)的數(shù)據(jù)轉(zhuǎn)移,所以磁盤的均衡都是要求在一個(gè)storageType下的。因?yàn)閔dfs中存在異構(gòu)存儲(chǔ)。
3、操作
3.1 生成計(jì)劃
[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -plan hadoop01 -out hadoop01-plan.json
-plan:后面接的是主機(jī)名。-out:指定計(jì)劃文件的輸出位置。
生成計(jì)劃
3.2 執(zhí)行計(jì)劃
[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -execute hadoop01-plan.json
執(zhí)行計(jì)劃
3.3 查詢計(jì)劃
[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -query hadoop01
-query 后面跟的是 主機(jī)名
查詢計(jì)劃
3.4 取消計(jì)劃
[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -cancel hadoop01-plan.json
取消計(jì)劃
4、和disk balancer相關(guān)的配置
|
配置 |
描述 |
|
dfs.disk.balancer.enabled |
此參數(shù)控制是否為集群?jiǎn)⒂胐iskbalancer。如果未啟用,任何執(zhí)行命令都將被DataNode拒絕。默認(rèn)值為true。 |
|
dfs.disk.balancer.max.disk.throughputInMBperSec |
這控制了diskbalancer在復(fù)制數(shù)據(jù)時(shí)消耗的最大磁盤帶寬。如果指定了10MB之類的值,則diskbalancer平均只會(huì)復(fù)制10MB/S。默認(rèn)值為10MB/S。 |
|
dfs.disk.balancer.max.disk.errors |
設(shè)置能夠容忍的在指定的移動(dòng)過程中出現(xiàn)的最大錯(cuò)誤次數(shù),超過此閾值則失敗。例如,如果一個(gè)計(jì)劃有3對(duì)磁盤要在其中復(fù)制,并且第一個(gè)磁盤集遇到超過5個(gè)錯(cuò)誤,那么我們放棄第一個(gè)副本并啟動(dòng)計(jì)劃中的第二個(gè)副本。最大錯(cuò)誤的默認(rèn)值設(shè)置為5。 |
|
dfs.disk.balancer.block.tolerance.percent |
設(shè)置磁盤之間進(jìn)行數(shù)據(jù)均衡操作時(shí),各個(gè)磁盤的數(shù)據(jù)存儲(chǔ)量與理想狀態(tài)之間的差異閾值。取值范圍[1-100],默認(rèn)為10。例如,各個(gè)磁盤的理想數(shù)據(jù)存儲(chǔ)量為100 GB,此參數(shù)設(shè)置為10。那么,當(dāng)目標(biāo)磁盤的數(shù)據(jù)存儲(chǔ)量達(dá)到90 GB時(shí),則認(rèn)為該磁盤的存儲(chǔ)狀態(tài)就已經(jīng)達(dá)到預(yù)期。 |
|
dfs.disk.balancer.plan.threshold.percent |
設(shè)置在磁盤數(shù)據(jù)均衡中可容忍的兩磁盤之間的數(shù)據(jù)密度域值差,取值范圍[1-100],默認(rèn)為10。如果任意兩個(gè)磁盤數(shù)據(jù)密度差值的絕對(duì)值超過了閾值,則說明需要對(duì)該的磁盤進(jìn)行數(shù)據(jù)均衡。例如,如果一個(gè)2盤節(jié)點(diǎn)上的總數(shù)據(jù)為100 GB,那么磁盤均衡器計(jì)算每個(gè)磁盤上的期望值為50 GB。如果容差為10%,則單個(gè)磁盤上的數(shù)據(jù)需要大于60 GB(50 GB + 10%容差值),DiskBalancer才能開始工作。 |
|
dfs.disk.balancer.plan.valid.interval |
磁盤平衡器計(jì)劃有效的最大時(shí)間。支持以下后綴(不區(qū)分大小寫):ms(milis)、s(sec)、m(min)、h(h)、d(day)以指定時(shí)間(例如2s、2m、1h等)。如果未指定后綴,則假定為毫秒。默認(rèn)值為1d |
5、額外知識(shí)點(diǎn)
5.1 新的block存儲(chǔ)到那個(gè)磁盤(卷)中
當(dāng)數(shù)據(jù)寫入新的block時(shí),DataNode會(huì)根據(jù)策略選擇不同的磁盤來存儲(chǔ)。
循環(huán)策略: 默認(rèn)策略,將新的塊均勻的分布在可用的磁盤上,可能造成數(shù)據(jù)傾斜。
可用空間策略: 選擇更多可用空間(按百分比)的磁盤??赡茉斐稍谀扯螘r(shí)間內(nèi),某個(gè)磁盤的IO壓力變大。
5.2 磁盤數(shù)據(jù)密度度量標(biāo)準(zhǔn)
磁盤數(shù)據(jù)密度度量標(biāo)準(zhǔn)
上圖來自https://www.bilibili.com/video/BV11N411d7Zh/?p=81
6、參考文檔
- ??https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html???
- https://help.aliyun.com/document_detail/467585.html 3、https://www.bilibili.com/video/BV11N411d7Zh/?p=81?
網(wǎng)站名稱:我們一起聊聊Hdfs Disk Balancer 磁盤均衡器
新聞來源:http://fisionsoft.com.cn/article/cdjpgpe.html


咨詢
建站咨詢
