Hadoop - Yedek Verilerini (Replica) Neye Göre Konumlandırılıyor? yazısında belirtmiştik. Peki Hadoop bizim ağ yapımızı nerden biliyor?
Hadoop sistemine ağ topolojimizi bizim tanımlamamız gerekiyor. Aksi durumda tüm sunucuların default-rack üzerinde bulunduğunu varsayıyor. Bu tanımlamayı yapabilmek için "topology.script.file.name" parametresinde belirtilen dosya adında bir dosya oluşturularak hadoop_conf dizinine bırakılır. Bu dosyanın örneği:
HADOOP_CONF=/etc/hadoop/conf
while [ $# -gt 0 ] ; do
nodeArg=$1
exec< ${HADOOP_CONF}/topology.data
result=""
while read line ; do
ar=( $line )
if [ "${ar[0]}" = "$nodeArg" ] ; then
result="${ar[1]}"
fi
done
shift
if [ -z "$result" ] ; then
echo -n "/default/rack "
else
echo -n "$result "
fi
done
Bu dosyada belirtilen "topology.data" dosyası hazırlanır ve burada hangi sunucunun hangi rack üzerinde olduğu belirtilir.
hadoopdata1.ec.com /dc1/rack1 hadoopdata1 /dc1/rack1 10.1.1.1 /dc1/rack2
Örnekler: http://wiki.apache.org/hadoop/topology_rack_awareness_scripts adresinden alınmıştır.
Hiç yorum yok:
Yorum Gönder