Назад | Перейти на главную страницу

Как hadoop определяет имена хостов его узлов?

В настоящее время URL-адреса, сгенерированные программой jobtracker и namenode, возвращают либо имена хостов, такие как bubble.local, либо просто пузырьки. Они не разрешаются, если клиентский компьютер не указал их в своем файле / etc / hosts.

Когда я запускаю hostname на этих машинах он возвращает имя хоста вместе с доменом (например, bubble.example.com)

Запуск небольшого java-теста на этих машинах

InetAddress addr = InetAddress.getLocalHost();
byte[] ipAddr = addr.getAddress();
String hostname = addr.getHostName();
System.out.println(hostname);

Производит вывод так же, как hostname команда.

Где еще hadoop мог получить имя хоста для использования в своем пользовательском интерфейсе jobtracker / namenode?

Это происходит в кластерах с Hadoop 1.0.3 и 1.0.4-SNAPSHOT с начала августа. Машины работают под управлением CentOS версии 5.8 (Final).

Сгенерированные URL-адреса, о которых я говорю, выглядят следующим образом

http://example:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/

или http://example.local:50075/browseDirectory.jsp?namenodeInfoPort=50070&dir=/

Мне удалось заставить WebUI использовать полное имя хоста, выполнив следующие действия.

На каждом подчиненном узле и главном узле /etc/hosts файл был изменен примерно так:

127.0.0.1 machine1.example.com machine1 localhost
#These 4 lines appear on all of the machines
1.2.3.3 machine1.example.com machine1
1.2.3.4 machine2.example.com machine2
1.2.3.5 machine3.example.com machine3
1.2.3.6 machine4.example.com machine4

Теперь, когда я нажимаю URL-адреса в трекере задач или веб-инструменте hdfs, они содержат полное имя хоста и разрешаются.

Где еще hadoop мог получить имя хоста для использования в своем пользовательском интерфейсе jobtracker / namenode?

conf/core-site.xml

<property>
    <name>fs.default.name</name>
    <value>hdfs://hmaster90:9000</value>
    <description>
    The name of the default file system. Either the literal string
    "local" or a host:port for NDFS.
    </description>
</property>

conf/mapred-site.xml

<property>
  <name>mapred.job.tracker</name>
  <value>hmaster90:9001</value>
</property>