1. 程式人生 > 其它 >生產調優3 HDFS-多目錄配置

生產調優3 HDFS-多目錄配置

目錄

HDFS-多目錄配置

NameNode多目錄配置

NameNode的本地目錄可以配置多個,且每個目錄存放內容相同,增加了可靠性

1.修改hdfs-site.xml

<property>
<name>dfs.namenode.name.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/name1,file://${hadoop.tmp.dir}/dfs/name2</value>
</property>

注意: 因為每臺伺服器節點的磁碟情況不同, 所以這個配置配完之後,可以選擇不分發

hadoop.tmp.dir的配置檔案在 /opt/module/hadoop-3.1.3/etc/hadoop下的core-default.xml(核心配置檔案)

/opt/module/hadoop-3.1.3/data/dfs目錄檢視修改前的目錄結構

修改 /opt/module/hadoop-3.1.3/etc/hadoop下的hdfs-site.xml檔案

2.格式化NameNode

格式化NameNode步驟
1.停止叢集
2.刪除data和logs中的所有資料
3.格式化叢集並啟動

停止叢集,刪除三臺節點的data和logs中所有資料

[ranan@hadoop102 hadoop-3.1.3]$ myhadoop.sh stop
[ranan@hadoop102 hadoop-3.1.3]$ rm -rf data/ logs/
[ranan@hadoop103 hadoop-3.1.3]$ rm -rf data/ logs/
[ranan@hadoop104 hadoop-3.1.3]$ rm -rf data/ logs/

格式化叢集步並啟動,這裡只啟動HDFS

[ranan@hadoop102 hadoop-3.1.3]$ hdfs namenode -format
[ranan@hadoop102 hadoop-3.1.3]$ sbin/start-dfs.sh

/opt/module/hadoop-3.1.3/data/dfs目錄檢視修改後的目錄結構

兩個NameNode目錄存放內容相同,只是提高了可靠性,並沒有真正提高高可用性,瞭解即可

DataNode多目錄配置(重要)

DataNode可以配置多個目錄,每個目錄儲存的資料不一樣(不是副本)

隨著Data越來越多,可以增加硬碟空間來儲存更多的資料

1.修改hdfs-site.xml

/opt/module/hadoop-3.1.3/data/dfs目錄檢視修改前的目錄結構

修改 /opt/module/hadoop-3.1.3/etc/hadoop下的hdfs-site.xml檔案

<property>
<name>dfs.datanode.data.dir</name>
<value>file://${hadoop.tmp.dir}/dfs/data1,file://${hadoop.tmp.dir}/dfs/data2</value>
</property>

重啟叢集,去/opt/module/hadoop-3.1.3/data/dfs目錄檢視修改前的目錄結構

[ranan@hadoop102 hadoop]$ myhadoop.sh stop
[ranan@hadoop102 hadoop]$ myhadoop.sh start
[ranan@hadoop102 hadoop]$ cd /opt/module/hadoop-3.1.3/data/dfs

2.測試兩個DataNode資料不一致

向叢集上傳一個檔案,再次觀察兩個資料夾裡面的內容一個有一個沒有

[ranan@hadoop102 hadoop-3.1.3]$ hadoop fs -put liubei.txt /
data2資料為空

[ranan@hadoop102 finalized]$ ll
總用量 0
[ranan@hadoop102 finalized]$ pwd
/opt/module/hadoop-3.1.3/data/dfs/data2/current/BP-233650876-192.168.10.102-1638274259376/current/finalized

data1有資料

[ranan@hadoop102 finalized]$ cd /opt/module/hadoop-3.1.3/data/dfs/data1/current/BP-233650876-192.168.10.102-1638274259376/current/finalized/subdir0/subdir0/
[ranan@hadoop102 subdir0]$ ll
總用量 8
-rw-rw-r--. 1 ranan ranan  7 12月  2 19:43 blk_1073741825
-rw-rw-r--. 1 ranan ranan 11 12月  2 19:43 blk_1073741825_1001.meta

叢集資料均衡之磁碟間資料均衡(Hadoop3.x 新特性)

生產環境,由於硬碟空間不足,往往需要增加一塊硬碟。剛載入的硬碟沒有資料時,可
以執行磁碟資料均衡命令,讓磁碟資料均勻。

針對單節點內部磁碟之間的均衡

1 生成均衡計劃

如果只有一塊磁碟,不會生成計劃

注意:這裡使用虛擬機器模擬的,虛擬機器裝在了D盤只有一個磁碟,雖然之前給了兩個路徑但實際還是一塊,這裡沒辦法演示

不同的兩塊硬碟,有獨立地址

hdfs diskbalancer -plan hadoop102

2 執行均衡計劃

hadoop103.plan.json 是上一步生成的檔案

hdfs diskbalancer -execute hadoop102.plan.json

3 檢視當前均衡任務的執行情況

hdfs diskbalancer -query hadoop102

4 取消均衡任務

hdfs diskbalancer -cancel hadoop103.plan.json