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