如何检查Hadoop守护进程是否正在运行?
比如,如果我想找出为什么HDFS没有正确设置,我会想知道一种检查namenode/datanode/jobtracker/tasktracker在这台机器上是否正在运行的方法。
有没有快速检查而不查看日志或使用ps命令(在Linux上)的方法?
如果在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
ps -ef | grep hadoop | grep -P 'namenode|datanode|tasktracker|jobtracker'
只是为了查看程序是否运行
以及
./hadoop dfsadmin -report
但上次只有在服务器运行时才有效。
jps
命令,它可以指定正在运行的Java进程。/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
如何检查守护进程是否正在运行?
您可以使用jps命令进行检查。
您也可以使用以下命令:
ps -ef | grep -w namenode
ps -ef | grep -w datanode
ps -ef | grep -w tasktracker
-w:将帮助获取精确字符串
如果您拥有超级用户特权,则还可以使用以下命令来执行相同的操作:
./hadoop dfsadmin -report
检查Hadoop节点是否正在运行:
sudo -u hdfs hdfs dfsadmin -report
尝试运行这个:
for service in /etc/init.d/hadoop-hdfs-*; do $service status; done;