Hadoop:无法使用Jps命令

问题是

hduser@saket-K53SM:/usr/local/hadoop$ jps The program 'jps' can be found in the following packages: * openjdk-6-jdk * openjdk-7-jdk Try: sudo apt-get install  

我的配置是

 hduser@saket-K53SM:/usr/local/hadoop$ java -version java version "1.6.0_33" Java(TM) SE Runtime Environment (build 1.6.0_33-b04) Java HotSpot(TM) 64-Bit Server VM (build 20.8-b03, mixed mode) 

设置conf / hadoop-env.sh

 hduser@saket-K53SM:/usr/local/hadoop$ cat conf/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/jdk1.6.0_33/ 

我知道有一个问题(http://stackoverflow.com/questions/7843422/hadoop-jps-can-not-find-java-installed)与此类似。 但是我在这里安装了Sun jdk。 所以任何帮助将不胜感激..

这实际上不是Hadoop问题。 Hadoop不使用JPS。

如果找不到JPS,则必须将其放入路径或创建别名。 JPS可执行文件可以在$JAVA_HOME/bin/jps下找到。

别名例如可以是:

 alias jps='/usr/lib/jvm/jdk1.6.0_33/bin/jps' 

或者,如果您不关心使用JPS,您可以改为使用JPS

 ps aux | grep java 

这将约。 给你相同的结果;)

你安装了提供jps工具的java-1.6.0-openjdk-devel软件包吗?

 $ sudo yum provides /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/jps Loaded plugins: product-id, subscription-manager Updating certificate-based repositories. Unable to read consumer identity 1:java-1.6.0-openjdk-devel-1.6.0.0-1.45.1.11.1.el6.x86_64 : OpenJDK Development Environment Repo : installed Matched from: Other : Provides-match: /usr/lib/jvm/java-1.6.0-openjdk.x86_64/bin/jps 

由于您已从Oracle安装JDK(可能是),因此导致此问题。 您可以通过使用update-alternatives程序将jps链接到标准路径目录来解决此问题。 使用此命令在终端中修复此问题

  sudo update-alternatives --install /usr/bin/jps jps /usr/lib/jvm/jdk1.6/bin/jps 1 

在相应的jdk(你的jdk版本)中使用实际的jps程序路径,而不是特定于我的jdk1.6 。 希望这会有所帮助。

JPS似乎(至少在amx linux 64 / centos上)可通过ant获得。

 sudo yum install ant 

你可以运行jps

如果您不能使用jps,请使用此命令

ps -aux | grep java | awk'{print $ 12}’

它会将文件显示为

在图片中显示这样的文件

如果你正在使用openjdk,那么你已经安装了额外的无头jre尝试:

sudo apt-get install java-1.8.0-openjdk-headless

它对我有用,你可以得到正确的openjdk版本我的1.8