HDFS修改副本數(shù)與存儲(chǔ)擴(kuò)容

我們的HDFS集群中有11個(gè)DataNode,初始時(shí)每臺(tái)機(jī)器僅上了一塊2.4T大的SAS盤/dev/sda,數(shù)據(jù)分區(qū)1.8T。上線運(yùn)行4個(gè)月,集群存儲(chǔ)總使用量超過(guò)了70%,無(wú)法滿足日益增長(zhǎng)的存儲(chǔ)需求,需要改進(jìn)。
之前我們的HDFS一直采用默認(rèn)的塊副本數(shù)3?,F(xiàn)在來(lái)看,有兩個(gè)節(jié)點(diǎn)同時(shí)出現(xiàn)問(wèn)題的概率非常小,可以降低為2,釋放一些空間。
另外,加盤也是十分有必要的。HDFS自帶冗余機(jī)制,所以數(shù)據(jù)盤都不用做RAID。每臺(tái)機(jī)器上面還有3個(gè)空閑盤位,直接插滿。

修改副本數(shù)

在CM的HDFS配置中找到dfs.replication項(xiàng),修改為2,重啟HDFS。
但這樣只能保證新寫入的塊副本數(shù)變?yōu)?,原有塊仍然是3副本,因此還需要執(zhí)行命令hdfs dfs -setrep 2 -R -w /dw。其中/dw是指定的路徑,-R參數(shù)則表示包含子目錄。
通過(guò)執(zhí)行hdfs fsck /dw命令,觀察“Average block replication”一項(xiàng),可以看出副本調(diào)整的過(guò)程是否已經(jīng)完成。

存儲(chǔ)擴(kuò)容

每個(gè)節(jié)點(diǎn)各加一塊1.2T的盤/dev/sdb,以及兩塊2.4T的盤/dev/sdc、/dev/sdd。然后將這些盤配置到HDFS中作為數(shù)據(jù)盤來(lái)使用。
由于每塊盤的處理流程都相同,因此僅以/dev/sdb為例來(lái)描述。

  1. 創(chuàng)建ext4文件系統(tǒng)
    執(zhí)行:mkfs -t ext4 /dev/sdb。如果沒(méi)有創(chuàng)建文件系統(tǒng),mount時(shí)會(huì)報(bào)錯(cuò):Unknown filesystem type '(null)'。
    因?yàn)橛猛揪褪羌僅DFS存儲(chǔ),無(wú)需分區(qū),所以直接省略了fdisk的步驟。在Linux中,磁盤不分區(qū)也是可以用的。
  2. 創(chuàng)建數(shù)據(jù)目錄,并更改其權(quán)限和所有者
    執(zhí)行:
    mkdir -p /dfs_local/sdb
    chmod -R 777 /dfs_local/sdb
    chown -R hdfs:hadoop /dfs_local/sdb
    hdfs-site.xml中默認(rèn)指定的權(quán)限是755,但可以通過(guò)dfs.datanode.data.dir.perm配置項(xiàng)來(lái)更改。
  3. 掛載
    簡(jiǎn)單地執(zhí)行mount命令就可以掛載。但穩(wěn)妥起見(jiàn),應(yīng)該配置成開(kāi)機(jī)自動(dòng)掛載。
    修改/etc/fstab文件,加入如下一行:
    /dev/sdb /dfs_local/sdb ext4 defaults 0 0
    普通數(shù)據(jù)盤既不需要備份也不需要fsck檢查,因此dump和pass都設(shè)為0。
    保存后,執(zhí)行mount -a命令,使其立即生效。使用df -h可以查看是否成功掛載。
  4. 加入HDFS
    進(jìn)入CM界面,找到HDFS數(shù)據(jù)目錄的配置項(xiàng)dfs.data.dir,加入上面設(shè)定的掛載路徑,刷新配置即可,無(wú)需重啟服務(wù)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容