hadoop中副本在不同節點之間的複製需要消耗資源,為了充分發揮hadoop的效能,hadoop需要配置機架感知,這可以讓hadoop通過網路拓撲圖計算不同節點之間的距離,因此來減少資料傳輸消耗的資源。
通過hadoop官網我們知道,不配置機架感知,所有的都預設為/default-rack,可以通過命令hadoop dfsamin -printtopology來檢視hadoop的網路拓撲情況。
配置hadoop機架感知需要在core-site.xml中配置
topology.script.file.name
/home/***/topology.sh
topology.sh指令碼根據輸入的引數進行判斷,引數一般是主機名或者ip位址,判斷出它對應的機架號,
hosts為各個節點的資訊
topology.sh指令碼如下:
#! /bin/sh
file=/home/enche/software/hadoop-2.7.7/etc/hadoop/hosts
exec < $file
while [ $# -gt 0 ];do
result=""
arg=$1
while read line;do
arr=($)
if [ "$" = "$arg" ]||[ "$" = "$arg" ];then
result="$"
fidone
shift
if [ -z "$" ];then
echo -n "/default-rack"
else
echo -n "$result"
fidone
host文字資訊如下:
enche01 192.168.3.5 /dc1/rack1
enche02 192.168.3.6 /dc1/rack1
enche03 192.168.3.11 /dc1/rack2
enche04 192.168.3.100 /dc1/rack2
解釋:enchexx表示主機名 ***.***.***.***表示對應的ip /***/*** 表示對應的機架號
配置好後重啟集群,使用 hadoop dfsadmin -printtopoloty檢視hadoop節點對應的機架資訊
hadoop機架感知
在hadoop集群資料儲存多副本前提下,訪問hadoop hdfs集群時,訪問速度直接受到datanode選取策略的影響。可以通過自定義hadoop集群的網路拓撲結構,最大程度的發揮hadoop集群的效能。某生產環境採用hadoop集群部署,其中兩台資料節點在idc機房,一台資料節點在阿里雲。預設情...
hadoop集群配置機架感知
自己搭建的hadoop集群一般預設不具備機架感知能力,為了提高hadoop集群的網路效能,我們常常需要配置機架感知。下面是以下步驟 一 修改配置檔案core site.xml,新增配置屬性 topology.script.file.name home r203 hadoop 0.20.2 racka...
hadoop 三 hdfs 機架感知
client 向 active nn 傳送寫請求時,nn為這些資料分配dn位址,hdfs檔案塊副本的放置對於系統整體的可靠性和效能有關鍵性影響。乙個簡單但非優化的副本放置策略是,把副 本分別放在不同機架,甚至不同idc,這樣可以防止整個機架 甚至整個idc崩潰帶來的錯誤,但是這樣檔案寫必須在多個機架...