Support Questions

Find answers, ask questions, and share your expertise
Announcements
Celebrating as our community reaches 100,000 members! Thank you!

Installation failed. Failed to receive heartbeat from agent.

avatar
Explorer

I am trying to install Cloudrea Manager Standard edition and CHD4 with parcels. This is being installed on three Dell machines running Ubuntu 12.04.2 LTS 64 bit. I am receiving an error on all three machines:

    Ensure that the host's hostname is configured properly.

    Ensure that port 7182 is accessible on the Cloudera Manager server (check firewall rules).

    Ensure that ports 9000 and 9001 are free on the host being added.

    Check agent logs in /var/log/cloudera-scm-agent/ on the host being added (some of the logs can be found in the installation details).

 

I checked that the hostname is configured.

 

I checked that Ports 7182, 9000 and 9001 are free (I am guessing that Cloudera is using 9000 & 9001 for python because these ports are in use after the install fails but not before the install).

sudo netstat -tulpn

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name

tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN      1104/X

tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1123/dnsmasq

tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      655/sshd

tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      792/cupsd

tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      29403/0

tcp6       0      0 :::6000                 :::*                    LISTEN      1104/X

tcp6       0      0 :::22                   :::*                    LISTEN      655/sshd

tcp6       0      0 ::1:631                 :::*                    LISTEN      792/cupsd

tcp6       0      0 ::1:6010                :::*                    LISTEN      29403/0

udp        0      0 127.0.0.1:53            0.0.0.0:*                           1123/dnsmasq

udp        0      0 0.0.0.0:68              0.0.0.0:*                           1073/dhclient

udp        0      0 0.0.0.0:36051           0.0.0.0:*                           790/avahi-daemon: r

udp        0      0 0.0.0.0:5353            0.0.0.0:*                           790/avahi-daemon: r

udp6       0      0 :::50807                :::*                                790/avahi-daemon: r

udp6       0      0 :::5353                 :::*                                790/avahi-daemon: r

 

And I checked the firewalls and they are open

sudo iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination

 

Chain FORWARD (policy ACCEPT)

target     prot opt source               destination

 

Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination

 

Lastly I checked the log files in /var/log/cloudera-scm-agent/ and they do not show any errors  and there was only one warning, that the default socket timeout was set to 30.

 

Can anyone point me to what the possible problem is? We are looking at using Hadoop in one of our solutions and are trying to evaluate it before purchasing the Enterprise version. I cannot use a cloud version because of data restrictions put on my by the data vendor and client so I need to have an internal sandbox to get an idea of what we need to develop and what we will need to support. Thanks!

 

2 ACCEPTED SOLUTIONS

avatar
Guru

@enelso:  Your hostname needs to be tied to an actual IP address on your local network which can send/receive traffic between all the hosts.  The address you have associated your hostname with is the loopback address, which cannot route actual network traffic off the host.

 

Use "ifconfig -a" to see a listing of your network interfaces and choose one that has an actual IP address. 

View solution in original post

avatar
Guru

Hello,

 

  I apologize for the delay.  I think there may be a couple of things going on.  For starters, you should add your own hostname and IP address to the /etc/hosts file on each machine.  In other words, both Host1 and Host2 entries should be in the /etc/hosts file on both machines.  Also, have you checked to see if iptables is running?  That is a firewall app that can stop traffic between nodes.  To identify if iptables is running and disable it, do this (as root):

 

$ sudo chkconfig iptables --list
iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

 

 

If you see iptables as "on" for any of those values (especially #5), than it's probably getting in your way, you should disable it unless you've got a company policy requiring it be enabled.  To disable it, run this command:

 

sudo chkconfig iptables off

 

View solution in original post

30 REPLIES 30

avatar
Expert Contributor

What is the error message?

avatar
Expert Contributor


Update /etc/hosts of all the nodes in the cluster according to the following format for each entry.

<IP address> <FQDN> <shortname>

avatar
Expert Contributor

After /etc/hosts files have been updated,  restart the cloudera-scm-agent on each node to apply the changes of the /etc/hosts file. 

avatar
Explorer

 

There error was Installation failed. Failed to receive heartbeat from agent.

 

The service was already stopped. I restarted it and still recieved the Failed to recieve hearbeat error.

sudo service cloudera-scm-agent restart
cloudera-scm-agent is already stopped
Starting cloudera-scm-agent:  * cloudera-scm-agent started

avatar
Explorer

In the /etc/hostsfile I have it configured as:

127.0.0.1 localhost enelso-cluster-001

 

And the /etc/hostname file is

enelso-cluster-001

avatar
Expert Contributor

Not the local host entry.


Find the IP address, FQDN and shortname for each of nodes and add them to the /etc/hosts on all nodes in the format:


<IP address> <FQDN> <shortname>

 

To get shortname and FQDN:


>hostname && hostname -f

avatar
Guru

@enelso:  Your hostname needs to be tied to an actual IP address on your local network which can send/receive traffic between all the hosts.  The address you have associated your hostname with is the loopback address, which cannot route actual network traffic off the host.

 

Use "ifconfig -a" to see a listing of your network interfaces and choose one that has an actual IP address. 

avatar
Explorer

@clint, DUH!!!! I can't believe I did that. I was seeing the entire IP in my head everytime I looked at that! I already knew the IP's because I had to enter them in an earlier step in the wizard configuration. Thanks for seeing my error!

avatar
Guru

Smiley Very Happy  We all fall victim to that, glad to be of assistance!