如何检查Hadoop守护进程是否正在运行?

27

如何检查Hadoop守护进程是否正在运行?

比如,如果我想找出为什么HDFS没有正确设置,我会想知道一种检查namenode/datanode/jobtracker/tasktracker在这台机器上是否正在运行的方法。

有没有快速检查而不查看日志或使用ps命令(在Linux上)的方法?

9个回答

19
在 shell 中输入 'jps' 命令(您可能需要一个 JDK 来运行 jps)。它会列出所有正在运行的 Java 进程,并列出正在运行的 Hadoop 守护进程。

12

如果在ps -ef|grep hadoop中没有看到hadoop进程正在运行,运行sbin/start-dfs.sh。使用hdfs dfsadmin -report监视:

[mapr@node1 bin]$ hadoop dfsadmin -report
Configured Capacity: 105689374720 (98.43 GB)
Present Capacity: 96537456640 (89.91 GB)
DFS Remaining: 96448180224 (89.82 GB)
DFS Used: 89276416 (85.14 MB)
DFS Used%: 0.09%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 2 (2 total, 0 dead)

Name: 192.168.1.16:50010
Decommission Status : Normal
Configured Capacity: 52844687360 (49.22 GB)
DFS Used: 44638208 (42.57 MB)
Non DFS Used: 4986138624 (4.64 GB)
DFS Remaining: 47813910528(44.53 GB)
DFS Used%: 0.08%
DFS Remaining%: 90.48%
Last contact: Tue Aug 20 13:23:32 EDT 2013


Name: 192.168.1.17:50010
Decommission Status : Normal
Configured Capacity: 52844687360 (49.22 GB)
DFS Used: 44638208 (42.57 MB)
Non DFS Used: 4165779456 (3.88 GB)
DFS Remaining: 48634269696(45.29 GB)
DFS Used%: 0.08%
DFS Remaining%: 92.03%
Last contact: Tue Aug 20 13:23:34 EDT 2013

7
我没有找到一个很好的解决方案,所以我使用了
ps -ef | grep hadoop | grep -P  'namenode|datanode|tasktracker|jobtracker'

只是为了查看程序是否运行

以及

./hadoop dfsadmin -report

但上次只有在服务器运行时才有效。


以上命令的预期输出是什么?我尝试了第一个命令,但没有显示任何内容。 - NIMISHAN

6
尝试使用jps命令,它可以指定正在运行的Java进程。

1
您可能需要澄清这个答案。 - summea

6
您可以像Vipin所说的那样使用Jps命令,命令如下:
/usr/lib/java/jdk1.8.0_25/bin/jps  

当然,您需要将Java的路径更改为您安装Java的路径。
Jps是一个非常方便的工具,用于检查预期的Hadoop进程是否正在运行(自Java v1.5.0以来就是Sun Java的一部分)。
结果将类似于:

2287 TaskTracker  
2149 JobTracker  
1938 DataNode  
2085 SecondaryNameNode  
2349 Jps  
1788 NameNode  

我从这个教程中得到了答案:http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/

5
除了 JPS,另一个好办法是使用 Hadoop 提供的 NameNode 和 JobTracker 的 Web 接口。它不仅显示进程,还提供了大量其他有用信息,如群集摘要、正在运行的作业等等。如果要进入 NN UI,请将您的 Web 浏览器指向 "YOUR_NAMENODE_HOST:9000",对于 JT UI,请指向 "YOUR_JOBTRACKER_HOST:9001"。

谢谢,我知道这个 - 只是我花了一些时间才弄清楚为什么Web界面没有启动以及为什么节点没有连接 - 所以UI并不是非常有用的东西。 - Bohdan
当然,那是内部的东西,不在Hadoop中。 - Bohdan
是的,如果您的HDFS正常工作,那么这不应该是一个问题。 - Tariq

0

如何检查守护进程是否正在运行?

您可以使用jps命令进行检查。

您也可以使用以下命令:

ps -ef | grep -w namenode

ps -ef | grep -w datanode

ps -ef | grep -w tasktracker 

-w:将帮助获取精确字符串

如果您拥有超级用户特权,则还可以使用以下命令来执行相同的操作:

./hadoop dfsadmin -report

希望这能有所帮助!!!

0

检查Hadoop节点是否正在运行:

sudo -u hdfs hdfs dfsadmin -report

已配置容量:28799380685(26.82 GB) 当前容量:25104842752(23.38 GB) DFS剩余容量:25012056064(23.29 GB) DFS已使用的空间:92786688(88.49 MB) DFS已使用%:0.37% 不完整备份块数:436 损坏副本块数:0 丢失块数:0
可用数据节点:1(总共1个,无死亡节点) 活动数据节点: 名称:127.0.0.1:50010(localhost.localdomain) 主机名:localhost.localdomain 机架:/default 停用状态:正常 已配置容量:28799380685(26.82 GB) DFS已使用:92786688(88.49 MB) 非DFS已使用:3694537933(3.44 GB) DFS剩余容量:25012056064(23.29 GB) DFS已使用%:0.32% DFS剩余%:86.85% 最后联系时间:Thu Mar 01 22:01:38 IST 2018

-1

尝试运行这个:

for service in /etc/init.d/hadoop-hdfs-*; do $service status; done;

这可以工作,但是当它从shell启动时就不行了。而且这仅适用于HDFS。 - Bohdan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接