查看并重新启动 Amazon EMR 和应用程序进程(进程守护程序)
当您排除集群故障时,您可能想要列出正在运行的进程。您可能还想停止或重新启动进程。例如,在更改配置之后或在分析日志文件和错误消息从而发现特定进程的问题之后,重启程序。
在集群上运行的进程有两种类型:Amazon EMR 进程(例如实例控制器和日志推送程序),以及与集群上安装的应用程序关联的进程(例如 hadoop-hdfs-namenode 和 hadoop-yarn-resourcemanager)。
要在集群上直接使用进程,您首先要连接到主节点 (master node)。有关更多信息,请参阅连接到 Amazon EMR 集群。
查看正在运行的进程
用来查看集群上正在运行进程的方法取决于您使用的 Amazon EMR 版本。
- EMR 5.30.0 and 6.0.0 and later
-
例 :列出所有运行中的进程
以下示例使用
systemctl
并指定--type
查看所有进程。systemctl --type=service
例 :列出特定的流程
以下示例列出含有
hadoop
名称的所有进程。systemctl --type=service | grep -i
hadoop
输出示例:
hadoop-hdfs-namenode.service loaded active running Hadoop namenode hadoop-httpfs.service loaded active running Hadoop httpfs hadoop-kms.service loaded active running Hadoop kms hadoop-mapreduce-historyserver.service loaded active running Hadoop historyserver hadoop-state-pusher.service loaded active running Daemon process that processes and serves EMR metrics data. hadoop-yarn-proxyserver.service loaded active running Hadoop proxyserver hadoop-yarn-resourcemanager.service loaded active running Hadoop resourcemanager hadoop-yarn-timelineserver.service loaded active running Hadoop timelineserver
例 :查看特定进程的详细状态报告
以下示例显示了
hadoop-hdfs-namenode
服务的详细状态报告。sudo systemctl status
hadoop-hdfs-namenode
输出示例:
hadoop-hdfs-namenode.service - Hadoop namenode Loaded: loaded (/etc/systemd/system/hadoop-hdfs-namenode.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-08-18 21:01:46 UTC; 26min ago Main PID: 9733 (java) Tasks: 0 Memory: 1.1M CGroup: /system.slice/hadoop-hdfs-namenode.service ‣ 9733 /etc/alternatives/jre/bin/java -Dproc_namenode -Xmx1843m -server -XX:OnOutOfMemoryError=kill -9 %p ... Aug 18 21:01:37 ip-172-31-20-123 systemd[1]: Starting Hadoop namenode... Aug 18 21:01:37 ip-172-31-20-123 su[9715]: (to hdfs) root on none Aug 18 21:01:37 ip-172-31-20-123 hadoop-hdfs-namenode[9683]: starting namenode, logging to /var/log/hadoop-hdfs/ha...out Aug 18 21:01:46 ip-172-31-20-123 hadoop-hdfs-namenode[9683]: Started Hadoop namenode:[ OK ] Aug 18 21:01:46 ip-172-31-20-123 systemd[1]: Started Hadoop namenode. Hint: Some lines were ellipsized, use -l to show in full.
- EMR 4.x - 5.29.0
-
例 :列出所有运行中的进程
以下示例列出了所有正在运行的进程。
initctl list
- EMR 2.x - 3.x
-
例 :列出所有运行中的进程
以下示例列出了所有正在运行的进程。
ls /etc/init.d/
停止并重新启动进程
在确定哪些进程正在运行后,您可以根据需要将其停止然后重新启动。
- EMR 5.30.0 and 6.0.0 and later
-
例 : 停止进程
以下示例停止
hadoop-hdfs-namenode
进程。sudo systemctl stop
hadoop-hdfs-namenode
您可以查询
status
以验证该进程是否已停止。sudo systemctl status
hadoop-hdfs-namenode
输出示例:
hadoop-hdfs-namenode.service - Hadoop namenode Loaded: loaded (/etc/systemd/system/hadoop-hdfs-namenode.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2021-08-18 21:37:50 UTC; 8s ago Main PID: 9733 (code=exited, status=143)
例 : 启动进程
以下示例启动
hadoop-hdfs-namenode
进程。sudo systemctl start
hadoop-hdfs-namenode
您可以查询状态以确认该进程是否正在运行。
sudo systemctl status
hadoop-hdfs-namenode
输出示例:
hadoop-hdfs-namenode.service - Hadoop namenode Loaded: loaded (/etc/systemd/system/hadoop-hdfs-namenode.service; enabled; vendor preset: disabled) Active: active (running) since Wed 2021-08-18 21:38:24 UTC; 2s ago Process: 13748 ExecStart=/etc/init.d/hadoop-hdfs-namenode start (code=exited, status=0/SUCCESS) Main PID: 13800 (java) Tasks: 0 Memory: 1.1M CGroup: /system.slice/hadoop-hdfs-namenode.service ‣ 13800 /etc/alternatives/jre/bin/java -Dproc_namenode -Xmx1843m -server -XX:OnOutOfMemoryError=kill -9 %p...
- EMR 4.x - 5.29.0
-
例 : 停止正在运行的进程
以下示例停止
hadoop-hdfs-namenode
服务。sudo stop
hadoop-hdfs-namenode
例 :重新启动已停止的进程
以下示例重新启动
hadoop-hdfs-namenode
服务。您必须使用start
命令而不是restart
。sudo start
hadoop-hdfs-namenode
例 :查看进程状态
以下获取
hadoop-hdfs-namenode
的状态。您可以使用status
命令以确认该过程是否已停止或启动。sudo status
hadoop-hdfs-namenode
- EMR 2.x - 3.x
-
例 :停止应用程序进程
以下示例停止
hadoop-hdfs-namenode
服务,该服务与集群上安装的 Amazon EMR 版本相关联。sudo /etc/init.d/
hadoop-hdfs-namenode
stop例 :重新启动应用程序进程
以下示例命令重新启动
hadoop-hdfs-namenode
进程:sudo /etc/init.d/
hadoop-hdfs-namenode
start例 : 停止 Amazon EMR 过程
以下示例停止与集群上的 Amazon EMR 版本无关的进程,例如:实例控制器。
sudo /sbin/stop
instance-controller
例 :重新启动 Amazon EMR 进程
以下示例重新启动与集群上的 Amazon EMR 版本无关的进程,例如:实例控制器。
sudo /sbin/start
instance-controller
注意
/sbin/start, stop
和restart
命令是/sbin/intictl
的符号链接。有关initctl
的更多信息,请在命令提示中键入man initctl
,以查看 initctl man 页面。