Our Community is getting an upgrade! To get everything ready for the relaunch, we’ll be placing the site in read-only mode starting September 21st.
We really appreciate your understanding while we get things set up behind the scenes. Catch up on all the exciting details about the move here.
Need help or have questions? Drop us a line at [email protected]
Created 08-24-2017 12:49 PM
I'm in the process of installing and starting a 3 node HDP2.6 cluster using Ambari UI. Completed installation successfully, but services failed to start. How do I fix this problem?
Datanode does not start, and gives below error on each node:
2017-08-23 12:00:49,443 - Mount point for directory /hadoop/hdfs/data is /
2017-08-23 12:00:49,443 - Mount point for directory /appl/hadoop/hdfs/data is /appl
2017-08-23 12:00:49,444 - Mount point for directory /usr/db/hadoop/hdfs/data is /usr/db
2017-08-23 12:00:49,444 - Mount point for directory /usr/local/opt/hadoop/hdfs/data is /usr/local/opt
2017-08-23 12:00:49,444 - File['/var/lib/ambari-agent/data/datanode/dfs_data_dir_mount.hist'] {'content': ..., 'owner': 'hdfs', 'group': 'hadoop', 'mode': 0644}
2017-08-23 12:00:49,445 - Writing File['/var/lib/ambari-agent/data/datanode/dfs_data_dir_mount.hist'] because it doesn't exist
2017-08-23 12:00:49,445 - Changing owner for /var/lib/ambari-agent/data/datanode/dfs_data_dir_mount.hist from 0 to hdfs
2017-08-23 12:00:49,445 - Changing group for /var/lib/ambari-agent/data/datanode/dfs_data_dir_mount.hist from 0 to hadoop
2017-08-23 12:00:49,447 - Directory['/var/run/hadoop'] {'owner': 'hdfs', 'group': 'hadoop', 'mode': 0755}
2017-08-23 12:00:49,447 - Changing owner for /var/run/hadoop from 0 to hdfs
2017-08-23 12:00:49,447 - Changing group for /var/run/hadoop from 0 to hadoop
2017-08-23 12:00:49,448 - Directory['/var/run/hadoop/hdfs'] {'owner': 'hdfs', 'group': 'hadoop', 'create_parents': True}
2017-08-23 12:00:49,448 - Creating directory Directory['/var/run/hadoop/hdfs'] since it doesn't exist.
2017-08-23 12:00:49,448 - Changing owner for /var/run/hadoop/hdfs from 0 to hdfs
2017-08-23 12:00:49,448 - Changing group for /var/run/hadoop/hdfs from 0 to hadoop
2017-08-23 12:00:49,448 - Directory['/var/log/hadoop/hdfs'] {'owner': 'hdfs', 'group': 'hadoop', 'create_parents': True}
2017-08-23 12:00:49,449 - Creating directory Directory['/var/log/hadoop/hdfs'] since it doesn't exist.
2017-08-23 12:00:49,449 - Changing owner for /var/log/hadoop/hdfs from 0 to hdfs
2017-08-23 12:00:49,449 - Changing group for /var/log/hadoop/hdfs from 0 to hadoop
2017-08-23 12:00:49,450 - File['/var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid'] {'action': ['delete'], 'not_if': 'ambari-sudo.sh -H -E test -f /var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid && ambari-sudo.sh -H -E pgrep -F /var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid'}
2017-08-23 12:00:49,456 - Execute['ambari-sudo.sh su hdfs -l -s /bin/bash -c 'ulimit -c unlimited ; /usr/hdp/current/hadoop-client/sbin/hadoop-daemon.sh --config /usr/hdp/current/hadoop-client/conf start datanode''] {'environment': {'HADOOP_LIBEXEC_DIR': '/usr/hdp/current/hadoop-client/libexec'}, 'not_if': 'ambari-sudo.sh -H -E test -f /var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid && ambari-sudo.sh -H -E pgrep -F /var/run/hadoop/hdfs/hadoop-hdfs-datanode.pid'}
2017-08-23 12:00:53,609 - Execute['find /var/log/hadoop/hdfs -maxdepth 1 -type f -name '*' -exec echo '==> {} <==' \; -exec tail -n 40 {} \;'] {'logoutput': True, 'ignore_failures': True, 'user': 'hdfs'}
==> /var/log/hadoop/hdfs/hadoop-hdfs-datanode-vlmazgrpmaster.fisdev.local.out <==
/usr/hdp/2.6.1.0-129//hadoop-hdfs/bin/hdfs.distro: line 317: /home/e1009156/apps/jdk1.8.0_144//bin/java: Permission denied
/usr/hdp/2.6.1.0-129//hadoop-hdfs/bin/hdfs.distro: line 317: exec: /home/winnie/apps/jdk1.8.0_144//bin/java: cannot execute: Permission denied
ulimit -a for user hdfs
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 64084
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 128000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 65536
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
Command failed after 1 tries
Created 08-24-2017 05:04 PM
Can you try moving the "/home/winnie/apps/jdk1.8.0_144/" JDK to outside the /home/winnie directory adn then try again.
Example:
# mkdir -p /usr/jdk64 # mv /home/winnie/apps/jdk1.8.0_144 /usr/jdk64 # chmod -R 755 /usr/jdk64//jdk1.8.0_144
.
Set the JAVA_HOME at the environment level or globally and also alternatives.
.
Also i see there are two // slash between "jdk1.8.0_144//bin" can you please fix that as well.
/home/winnie/apps/jdk1.8.0_144//bin/java -version
.
Created 08-24-2017 01:29 PM
You have not given the Execute permission to your "java" binary. Please check the permission on this.
# ls -lart /home/winnie/apps/jdk1.8.0_144//bin/java
.
Please give it correct execute permission.
Like
# cd /home/winnie/apps/jdk1.8.0_144//bin/java # chmod 755 /home/winnie/apps/jdk1.8.0_144//bin/*
Example:
[root@sandbox bin]# pwd /usr/jdk64/jdk1.8.0_112/bin [root@sandbox bin]# ls -l java -rwxr-xr-x 1 root root 7734 Sep 23 2016 java
.
Created 08-24-2017 02:42 PM
It looks like I have permissions: The owner of the folder was different, I changed them all to root:root and restarted all servers as well. still getting same error.
[root@vlmazgrpdata2 ~]# ls -lart /home/winnie/apps/jdk1.8.0_144//bin/java
-rwxr-xr-x 1 root root 7734 Jul 22 00:07 /home/winnie/apps/jdk1.8.0_144//bin/java
here are the additional info:
[root@vlmazgrpdata2 ~]# which java
/bin/java
[root@vlmazgrpdata2 ~]# ls -l /bin/java
lrwxrwxrwx 1 root root 22 Aug 16 15:16 /bin/java -> /etc/alternatives/java
[root@vlmazgrpdata2 ~]# ls -l /etc/alternatives/java
lrwxrwxrwx 1 root root 41 Aug 16 15:16 /etc/alternatives/java -> /home/winnie/apps/jdk1.8.0_144/bin/java
[root@vlmazgrpdata2 ~]# ls -l /home/winnie/apps/jdk1.8.0_144/bin/java
-rwxr-xr-x 1 root root 7734 Jul 22 00:07 /home/e1009156/apps/jdk1.8.0_144/bin/java
Created 08-24-2017 02:51 PM
The Line 317 of the script "/usr/hdp/2.6.0.3-8/hadoop-hdfs/bin/hdfs.distro" is following:
exec "$JAVA" -Dproc_$COMMAND $JAVA_HEAP_MAX $HADOOP_OPTS $CLASS "$@"
.
So if you have enough permission for "java" then i suspect that "exec" might not have enough permission to be executed.
.
Can you check if you are able to do the following:
# su - hdfs # /home/winnie/apps/jdk1.8.0_144//bin/java -version
AND then try the following to see if it works?
# su - hdfs # exec /home/winnie/apps/jdk1.8.0_144//bin/java -version
.
Created 08-24-2017 03:08 PM
How do I check the permission for "exec"?
Created 08-24-2017 04:56 PM
Thank you, Jay! That's exactly is the problem. I can execute the java -version as root, but not as "hdfs". I don't know how to fix it. I issued 777 permission, still not worked.
[root@vlmazgrpdata2 ~]# ls -l /home/winnie/apps/jdk1.8.0_144/bin/java
-rwxr-xr-x 1 root root 7734 Jul 22 00:07 /home/winnie/apps/jdk1.8.0_144/bin/java
[root@vlmazgrpdata2 ~]# chmod 777 /home/winnie/apps/jdk1.8.0_144/bin/java
[root@vlmazgrpdata2 ~]# ls -l /home/winnie/apps/jdk1.8.0_144/bin/java
-rwxrwxrwx 1 root root 7734 Jul 22 00:07 /home/winnie/apps/jdk1.8.0_144/bin/java
[root@vlmazgrpdata2 ~]# su hdfs
[hdfs@vlmazgrpdata2 root]$ /home/winnie/apps/jdk1.8.0_144//bin/java -version
bash: /home/winnie/apps/jdk1.8.0_144//bin/java: Permission denied
Created 08-24-2017 05:04 PM
Can you try moving the "/home/winnie/apps/jdk1.8.0_144/" JDK to outside the /home/winnie directory adn then try again.
Example:
# mkdir -p /usr/jdk64 # mv /home/winnie/apps/jdk1.8.0_144 /usr/jdk64 # chmod -R 755 /usr/jdk64//jdk1.8.0_144
.
Set the JAVA_HOME at the environment level or globally and also alternatives.
.
Also i see there are two // slash between "jdk1.8.0_144//bin" can you please fix that as well.
/home/winnie/apps/jdk1.8.0_144//bin/java -version
.
Created 08-24-2017 06:55 PM
Thanks so much Jay!
My problem is fixed. After fixing JAVA_HOME path, I stopped ambari-server and edited ambari-server.property file to reflect the new java_home path, and restarted. After that I was able to start datanode etc.
Thanks again for helping me today!!!