Configuring Network Names

Configure each host in the cluster as follows to ensure that all members can communicate with each other:

  1. Set the hostname to a unique name (not localhost).
    sudo hostnamectl set-hostname foo-1.example.com
  2. Edit /etc/hosts with the IP address and fully qualified domain name (FQDN) of each host in the cluster. You can add the unqualified name as well.
    1.1.1.1  foo-1.example.com  foo-1
    2.2.2.2  foo-2.example.com  foo-2
    3.3.3.3  foo-3.example.com  foo-3
    4.4.4.4  foo-4.example.com  foo-4
  3. Edit /etc/sysconfig/network with the FQDN of this host only:
    HOSTNAME=foo-1.example.com
  4. Verify that each host consistently identifies to the network:
    1. Run uname -a and check that the hostname matches the output of the hostname command.
    2. Run /sbin/ifconfig and note the value of inet addr in the eth0 (or bond0) entry, for example:
      $ /sbin/ifconfig
      eth0      Link encap:Ethernet  HWaddr 00:0C:29:A4:E8:97  
                inet addr:172.29.82.176  Bcast:172.29.87.255  Mask:255.255.248.0
      ...
    3. Run host -v -t A `hostname` and verify that the output matches the hostname command.

      The IP address should be the same as reported by ifconfig for eth0 (or bond0):

      $ host -v -t A `hostname`
      Trying "foo-1.example.com"
      ...
      ;; ANSWER SECTION:
      foo-1.example.com. 60 IN
      A
      172.29.82.176
  5. For YARN: ensure conf/core-site.xml and conf/yarn-site.xml have the hostnames (not the IP addresses) of the NameNode, the ResourceManager, and ResourceManager Scheduler. See Customizing Configuration Files and Setting Up MapReduce v2 with YARN Using the Command Line.
  6. Ensure components that depend on a client-server relationship (Oozie, HBase, ZooKeeper) are properly configured: