[
https://issues.apache.org/jira/browse/BIGTOP-1012?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13879807#comment-13879807
]
Tsuyoshi OZAWA commented on BIGTOP-1012:
----------------------------------------
+1 for the change(non binding). JDK can be install anywhere. This is a log when
we faced a problem by using bigtop-detect-javahome.
{code}
[root@localhost hadoop-hdfs]# which hdfs
/usr/bin/hdfs
bash-4.1$ whoami
hdfs
bash-4.1$ echo $JAVA_HOME
/home/user1/jdk1.6.0_43
{code}
{code}
[root@localhost hadoop-hdfs]# sudo -u hdfs bash -x hdfs
+ '[' -e /usr/libexec/bigtop-detect-javahome ']'
+ . /usr/libexec/bigtop-detect-javahome
++ '[' -r /etc/default/bigtop-utils ']'
++ . /etc/default/bigtop-utils
++ '[' -z '' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/j2sdk1.6-sun/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/jvm/java-6-sun/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre//bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/jvm/j2sdk1.6-oracle/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/jvm/j2sdk1.6-oracle/jre/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/java/jdk1.6*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/java/jre1.6*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/java/jdk1.7*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/java/jre1.7*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /Library/Java/Home/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/java/default/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/jvm/default-java/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/jvm/java-openjdk/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e /usr/lib/jvm/jre-openjdk/bin/java ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/lib/jvm/java-1.7.0-openjdk*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/lib/jvm/java-7-openjdk*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/lib/jvm/java-1.6.0-openjdk-1.6.*/bin/java' ']'
++ for candidate in /usr/lib/j2sdk1.6-sun /usr/lib/jvm/java-6-sun
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*'
'/usr/lib/jvm/java-1.6.0-sun-1.6.0.*/jre/' /usr/lib/jvm/j2sdk1.6-oracle
/usr/lib/jvm/j2sdk1.6-oracle/jre '/usr/java/jdk1.6*' '/usr/java/jre1.6*'
'/usr/java/jdk1.7*' '/usr/java/jre1.7*' /Library/Java/Home /usr/java/default
/usr/lib/jvm/default-java /usr/lib/jvm/java-openjdk /usr/lib/jvm/jre-openjdk
'/usr/lib/jvm/java-1.7.0-openjdk*' '/usr/lib/jvm/java-7-openjdk*'
'/usr/lib/jvm/java-1.6.0-openjdk-1.6.*' '/usr/lib/jvm/jre-1.6.0-openjdk*'
++ '[' -e '/usr/lib/jvm/jre-1.6.0-openjdk*/bin/java' ']'
+ export HADOOP_LIBEXEC_DIR=//usr/lib/hadoop/libexec
+ HADOOP_LIBEXEC_DIR=//usr/lib/hadoop/libexec
+ exec /usr/lib/hadoop-hdfs/bin/hdfs
Error: JAVA_HOME is not set and could not be found.
{code}
> bigtop-detect-javahome should check PATH if JAVA_HOME is unset
> --------------------------------------------------------------
>
> Key: BIGTOP-1012
> URL: https://issues.apache.org/jira/browse/BIGTOP-1012
> Project: Bigtop
> Issue Type: Bug
> Reporter: Rick Schultz
>
> Even in cases where java is in a user's $PATH, bigtop-detect-javahome will
> only check a fixed list of locations and leave JAVA_HOME unset if java is
> installed somewhere else. Folks who install a non-distro JRE/JDK are likely
> to put it into /usr/local or /opt and modify PATH appropriately.
> Other projects (cf. FLUME-1154) are working around this in their own init
> scripts. This should be handled centrally within the bigtop-detect-javahome
> script itself.
> {code}
> diff --git a/bigtop-packages/src/common/bigtop-utils/bigtop-detect-javahome
> b/bigtop-packages/src/common/bigtop-utils/bigtop-detect-javahome
> index de64e1d..b3b858a 100644
> --- a/bigtop-packages/src/common/bigtop-utils/bigtop-detect-javahome
> +++ b/bigtop-packages/src/common/bigtop-utils/bigtop-detect-javahome
> @@ -52,3 +52,9 @@ if [ -z "$JAVA_HOME" ]; then
> done
> fi
>
> +if [ -z "${JAVA_HOME}" ] ; then
> + JAVA_DEFAULT=$(type -p java)
> + if [ -n "$JAVA_DEFAULT" ] ; then
> + export JAVA_HOME=$(cd $(dirname $(readlink -f $JAVA_DEFAULT))/..; pwd)
> + fi
> +fi
> {code}
> This can be reproduced installing Cloudera
> [CDH4|http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/latest/CDH4-Installation-Guide/cdh4ig_topic_4_4.html]
> on a host where java is in /usr/local/bin:
> {code}
> ubuntu:~$ type -a java
> java is /usr/local/bin/java
> ubuntu:~$ sudo vi /etc/apt/sources.list.d/cloudera.list
> ubuntu:~$ curl -s
> http://archive.cloudera.com/cdh4/ubuntu/precise/amd64/cdh/archive.key| sudo
> apt-key add -
> OK
> ubuntu:~$ sudo apt-get update
> (...)
> ubuntu:~$ sudo apt-get install hadoop-0.20-mapreduce-jobtracker
> Reading package lists... Done
> (...)
> Setting up hadoop-hdfs (2.0.0+1357-1.cdh4.3.0.p0.21~precise-cdh4.3.0) ...
> Setting up hadoop-0.20-mapreduce
> (2.0.0+1357-1.cdh4.3.0.p0.21~precise-cdh4.3.0) ...
> Setting up hadoop-0.20-mapreduce-jobtracker
> (2.0.0+1357-1.cdh4.3.0.p0.21~precise-cdh4.3.0) ...
> * Starting Hadoop jobtracker:
> +======================================================================+
> | Error: JAVA_HOME is not set and Java could not be found |
> +----------------------------------------------------------------------+
> | Please download the latest Sun JDK from the Sun Java web site |
> | > http://java.sun.com/javase/downloads/ < |
> | |
> | Hadoop requires Java 1.6 or later. |
> | NOTE: This script will find Sun Java whether you install using the |
> | binary or the RPM based installer. |
> +======================================================================+
> invoke-rc.d: initscript hadoop-0.20-mapreduce-jobtracker, action "start"
> failed.
> {code}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)