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