【问题标题】:Hadoop : JPS can not find Java installedHadoop:JPS 找不到安装的 Java
【发布时间】:2011-10-20 23:24:21
【问题描述】:

我的配置是

hduser@worker1:/usr/local/hadoop/conf$ jps
The program 'jps' can be found in the following packages:
 * openjdk-6-jdk
 * openjdk-7-jdk
Ask your administrator to install one of them

我已经安装了java

hduser@worker1:/usr/local/hadoop/conf$ java -version
java version "1.6.0_23"
OpenJDK Runtime Environment (IcedTea6 1.11pre) (6b23~pre10-0ubuntu5)
OpenJDK 64-Bit Server VM (build 20.0-b11, mixed mode)

hduser@worker1:/usr/local/hadoop/conf$ echo $JAVA_HOME 
/usr/lib/jvm/java-1.6.0-openjdk

也设置在conf/hadoop-env.sh

hduser@worker1:/usr/local/hadoop/conf$ cat hadoop-env.sh | grep JAVA_HOME
# The only required environment variable is JAVA_HOME.  All others are
# set JAVA_HOME in this file, so that it is correctly defined on
 export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk

如何使 JPS 工作?

【问题讨论】:

  • 使用 Oracle (Sun) Java 代替 OpenJDK。根据他们的文档,不建议将 OpenJDK 用于 Hadoop

标签: java ubuntu hadoop mapreduce


【解决方案1】:

试试这个....

sudo apt-get install openjdk-7-jdk

【讨论】:

    【解决方案2】:

    这也可能是一个原因。很简单:看看 $javac 是否有效。注意:$java 可能有效,请检查 javac。如果 $javac 不起作用,那么 $jps 也不起作用。 所以你可能想做类似的事情

    导出 PATH=$PATH:$JAVA_HOME/bin

    然后再试一次。 javac和jps。 祝你好运。

    【讨论】:

      【解决方案3】:

      Saurabh Saxena 的上述回答不再正确。 要获取 jps,您还需要安装开发工具 java-1.6.0-openjdk-devel。 在 CentOS 6 上,该文件是: java-1.6.0-openjdk-devel.x86_64

      所以:

      yum install java-1.6.0-openjdk*
      

      可以解决问题(除了 jdk 和 dev 工具之外,还可以使用 demo 和 javadocs,但您将获得完整的命令行工具)。

      对于 Ubuntu:

      apt-get install java-1.6.0-openjdk-devel 
      

      对于所有这些示例,您可以尝试 JDK7(仅替代 1.7),截至 2012 年 12 月,Hadoop 在没有 Oracle 库的情况下相当稳定。见:http://openjdk.java.net/install/

      【讨论】:

      • 我用 java-1.8.0-openjdk yum install java-1.8.0-openjdk-devel.x86_64 运行这个来修复这个问题,而不是使用星号,所以我用 CentOS 7 安装的唯一软件包至少是这样一个(上述)和java-1.8.0-openjdk.x86_64 ....
      【解决方案4】:

      我找到了缺少 JPS 命令的解决方案。我在 ubuntu 机器上以伪分布式模式安装 Hadoop 1.x。我使用 Java-7-openJDK 来提供 Java 命令和工具。出于某种原因,版本 6 有一个 java-1.6.0-openjdk-devel,但版本 7 没有,特别是 debian 和 ubuntu 发行版。我不确定 Fedora 和 Redhat 是否也是如此。所以当时最好的答案是使用 linux 命令

      ps -aux | grep java

      我不喜欢这样做,因为 Hadoop 守护程序一开始有很多选项,以至于每个结果都占满了一个屏幕。除了看到 java 正在运行之外,不可能看到正在运行的 hadoop 守护进程。因此我想出了一个简短的单行shell脚本形式的灵魂

      这是我的开放 JDK 的 JPS 脚本

      !#/bin/bash

      ps -aux | grep java | awk '{打印 $12}'

      结束

      我将这两行保存在一个名为 jps 的文件中,并将其存储在具有执行权限的 hadoop/bin 目录中

      **这里是脚本的结果 hduser@localhsot# ./jps

      -Dproc-namenode

      -Dproc-datanode

      -Dproc-JobTracker

      -Dproc-TaskTracker**

      【讨论】:

      • 错字:!#/bin/bash 应该是#!/bin/bash,不是吗?
      【解决方案5】:

      对于 ubuntu 中的 java 8,请使用以下命令。 sudo apt install openjdk-8-jdk-headless

      【讨论】:

      • 这对我有用。我已经在 Ubuntu 17 上安装了 Java 8 并且遇到了这个 JPS 问题,但是使用上面的命令我安装了它,现在它工作正常。
      【解决方案6】:

      好像 open-jdk 里面没有 jps。 对于hadoop,安装sun-jvm会是更好的选择。

      【讨论】:

        【解决方案7】:

        我想为那些面临同样问题的人更新主题。

        JDK8 也没有“jps”命令,但 JDK7 有。

        root@tahirpc:/home/tahir# java -version
        java version "1.7.0_65"
        OpenJDK Runtime Environment (IcedTea 2.5.3) (**7u71-2.5.3-0ubuntu0.14.04.1**)
        OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
        

        root@tahirpc:~# jps
        5036 NodeManager
        4368 NameNode
        4912 ResourceManager
        5315 Jps
        4773 SecondaryNameNode
        4487 DataNode
        

        【讨论】:

          【解决方案8】:

          使用 sudo apt-get install openjdk-7-jdk 而不是 openjdk-7-jre。 .

          【讨论】:

            【解决方案9】:

            对于 Hadoop,Oracle JDK 6 preferred,我不确定是否有人在没有任何补丁的情况下成功地将 OpenJDK 与 Hadoop 一起使用。仅供参考,也有一些关于 JDK 7 的 support 的讨论。目前,Oracle JDK 上的dependency 太多了。希望依赖性很快消失。

            【讨论】:

              【解决方案10】:

              找到了

              rpm -qlp java-1.6.0-openjdk-devel-1.6.0.0-1.39.1.9.7.el6.x86_64.rpm | grep jps
              /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/jps
              

              然后

              rpm -i java-1.6.0-openjdk-devel-1.6.0.0-1.39.1.9.7.el6.x86_64.rpm
              

              【讨论】:

                【解决方案11】:

                打开 syneptics 包管理器并安装 openjdk-7-jdkopenjdk-6-jdk 包。之后 jps 将工作

                【讨论】:

                  猜你喜欢
                  • 2021-10-26
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-06-05
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多