Hadoop:JPS找不到已安装的Java

Hadoop:JPS找不到已安装的Java,java,ubuntu,hadoop,mapreduce,Java,Ubuntu,Hadoop,Mapreduce,我的配置是 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 -versio

我的配置是

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工作

似乎OpenJDK中没有JP。
对于hadoop,安装sun jvm将是一个更好的选择。

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

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

因此:

将完成这个技巧(除了jdk和dev工具外,还将学习demo和javadocs,但您将获得完整的命令行工具)

对于Ubuntu:

apt-get install java-1.6.0-openjdk-devel 
对于所有这些示例,您可以尝试JDK7(仅替换为1.7),截至2012年12月,Hadoop在没有Oracle库的情况下非常稳定。请看:

我找到了它

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
然后


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

导出路径=$PATH:$JAVA_HOME/bin

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

我找到了缺少JPS命令的解决方案。我在ubuntu机器上以伪分布式模式安装Hadoop1.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 scirpt !#/bin/bash

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

结束 我将这两行保存在一个名为jps的文件中,并使用execute权限将其存储在hadoop/bin目录中

**下面是脚本的结果 hduser@localhsot#//日本

-Dproc名称节点

-Dproc数据节点

-Dproc作业跟踪器


-Dproc TaskTracker**

打开syneptics软件包管理器并安装
openjdk-7-jdk
openjdk-6-jdk
软件包。在这之后,jps将起作用

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

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)

试试这个

sudo apt-get install openjdk-7-jdk

使用sudo apt get安装openjdk-7-jdk,而不是openjdk-7-jre

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

使用Oracle(Sun)Java代替openjdk。根据Hadoop的文档类型,不推荐使用OpenJDK#/bin/bash应该是#/宾/巴什,不是吗?这对我有用。我在Ubuntu17上安装了Java 8,并且遇到了这个JPS问题,但是通过上面的命令我安装了它,现在它工作正常。我运行这个命令是为了用Java-1.8.0-openjdk
yum安装Java-1.8.0-openjdk-devel.x86_64
而不是使用星号,所以我在CentOS 7上安装的软件包至少明确地是那个(如上所述)和
java-1.8.0-openjdk.x86_64
。。。。
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
sudo apt-get install openjdk-7-jdk