BlueDog BlueDog - 1 year ago 152
Java Question

Cloudera insufficient memory for the Java Runtime Environment to continue

I try to connect to my public dns instance to cloudera on port 7180

I get 'Unable to connect' message in my webbrowser.

I use EC2 AWS + RedHat7 + Cloudera 5

When I start Cloudera Server I get message:

root@ip-100-10-10-10 sysconfig]# service cloudera-scm-server start
Starting cloudera-scm-server (via systemctl): [ OK ]

When I curl I get:

[root@ip-100-10-10-10 sysconfig]# curl -i -u ‘admin:admin’ http://localhost:7180/api/v1/tools/echo
curl: (7) Failed connect to localhost:7180; Connection refused

this is the log file for cloudera server with command
sudo ls -l /var/log/cloudera-scm-server

[root@ip-172-31-45-90 sysconfig]# $sudo cat /var/log/cloudera-scm-server/cloudera-scm-server.out
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000787295000, 155291648, 0) failed; error='Cannot allocate memory' (errno=12)
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (malloc) failed to allocate 155291648 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /tmp/hs_err_pid2370.log

How to fix it?

Answer Source

I use EC2 AWS ... I have chosen the basic one, the one for free

Read the Cloudera Manager installation guide

RAM - 4 GB is appropriate for most cases, and is required when using Oracle databases. 2 GB may be sufficient for non-Oracle deployments involving fewer than 100 hosts. However, if you want to run the Cloudera Manager Server on a machine with 2 GB of RAM, you must tune down its maximum heap size (by modifying -Xmx in /etc/default/cloudera-scm-server). Otherwise the kernel may kill the Server for consuming too much RAM

I would go further and say that is the recommended free space to have, so 6 or 8GB would be my recommendation if you plan on running all the services. The t2.micro, or t2.nano, or whatever instance type you have doesn't have that much memory.