我使用apache-hadoop二进制文件运行一个hadoop,我使用以下命令启动了dfs,yarn和mr deamon:
start-dfs.sh
start-yarn.sh
mr-jobhistory-daemon.sh start historyserver
在此之后一切正常,即我可以看到HDFS UI,资源管理器UI,作业历史UI等。
这是jps命令输出:
sh-3.2# jps
61601 Jps
sh-3.2#
但是,当我使用jps命令检查正在运行的进程时,它显示没有进程正在运行,没有名称节点,没有datanode,没有资源管理器,没有secondarynamenode。即使我可以轻松地将文件从本地复制到HDFS,也可以在HDFS上制作目录等。
我的问题是为什么jps命令没有显示实际运行的进程?我们是否需要使用其他参数调用jps来检查进程?
答案 0 :(得分:2)
引用jps文档:
jps命令生成的JVM列表可能受授予运行该命令的主体的权限的限制。该命令仅列出原则具有访问权限的JVM,具体取决于操作系统特定的访问控制机制。
实际上,这通常意味着jps
仅打印运行jps
的同一用户所拥有的JVM进程的信息。在典型的Hadoop集群中,守护进程在不同的用户下运行,例如NameNode的用户hdfs
和ResourceManager的用户yarn
。如果您sudo
访问并以jps
作为其中一个用户运行,则可以查看这些流程。