2012-07-31 252 views
13

问题是Hadoop的:不能使用JPS命令

[email protected]:/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 <selected package> 

我的配置是

[email protected]:/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

[email protected]:/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。所以任何帮助将不胜感激。

回答

19

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

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

例如别名可能是:

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

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

ps aux | grep java 

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

6

此问题是由于您从Oracle(可能)安装JDK而引起的。您可以通过使用update-alternatives程序将jps链接到标准路径目录来解决此问题。使用此命令在终端

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

使用在合适的JDK,而不是jdk1.6实际jps程序路径(你的JDK版本),这是专门针对我来解决这个问题。希望这会有所帮助。

9

您是否安装了包java-1.6.0-openjdk-devel谁提供了jps工具?

$ 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 
+0

是的,你需要做的百胜安装java-1.8.0-的OpenJDK-devel.x86_64获得JPS (YUM安装java-1.8.0-openjdk.x86_64不提供的话) – 2017-04-21 11:10:14

2

JPS似乎(在AMX的Linux至少64/CentOS的)是通过蚂蚁可用。

sudo yum install ant 

,你可以运行JPS

+0

它的工作对JDK 1.8 感谢 – Ravi 2017-12-05 08:52:06

0

如果你正在使用的OpenJDK,那么你必须安装额外的无头JRE 尝试:

命令和apt-get安装的Java 1.8。0-的OpenJDK,无头

它的工作对我来说,你可以给正确的OpenJDK的版本我的是1.8

+0

我认为运不使用OpenJDK的,他们的状态,他们正在使用“太阳JDK”。 – navicore 2017-12-24 17:35:21