

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 查看并重新启动 Amazon EMR 和应用程序进程（进程守护程序）
<a name="emr-process-restart-stop-view"></a>

当您排除集群故障时，您可能想要列出正在运行的进程。您可能还想停止或重新启动进程。例如，在更改配置之后或在分析日志文件和错误消息从而发现特定进程的问题之后，重启程序。

集群上运行的进程有两种类型：Amazon EMR 进程（例如，实例控制器和日志推送器），以及与集群上安装的应用程序关联的进程（例如、和）。 hadoop-hdfs-namenode hadoop-yarn-resourcemanager

要在集群上直接使用进程，您首先要连接到主节点 (master node)。有关更多信息，请参阅[连接到 Amazon EMR 集群](emr-connect-master-node.md)。

## 查看正在运行的进程
<a name="emr-process-view"></a>

用来查看集群上正在运行进程的方法取决于您使用的 Amazon EMR 版本。

------
#### [ EMR 5.30.0 and 6.0.0 and later ]

**Example ：列出所有运行中的进程**  
以下示例使用`systemctl`并指定`--type`查看所有进程。  

```
systemctl --type=service
```

**Example ：列出特定的流程**  
以下示例列出含有`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
```

**Example ：查看特定进程的详细状态报告**  
以下示例显示了`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 ]

**Example ：列出所有运行中的进程**  
以下示例列出了所有正在运行的进程。  

```
initctl list
```

------
#### [ EMR 2.x - 3.x ]

**Example ：列出所有运行中的进程**  
以下示例列出了所有正在运行的进程。  

```
ls /etc/init.d/
```

------

## 停止并重新启动进程
<a name="emr-process-restart"></a>

在确定哪些进程正在运行后，您可以根据需要将其停止然后重新启动。

------
#### [ EMR 5.30.0 and 6.0.0 and later ]

**Example : 停止进程**  
以下示例停止`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)
```

**Example : 启动进程**  
以下示例启动`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 ]

**Example : 停止正在运行的进程**  
以下示例停止`hadoop-hdfs-namenode`服务。  

```
sudo stop hadoop-hdfs-namenode
```

**Example ：重新启动已停止的进程**  
以下示例重新启动`hadoop-hdfs-namenode`服务。您必须使用`start`命令而不是`restart`。  

```
sudo start hadoop-hdfs-namenode
```

**Example ：查看进程状态**  
以下获取`hadoop-hdfs-namenode`的状态。您可以使用`status`命令以确认该过程是否已停止或启动。  

```
sudo status hadoop-hdfs-namenode
```

------
#### [ EMR 2.x - 3.x ]

**Example ：停止应用程序进程**  
以下示例停止`hadoop-hdfs-namenode`服务，该服务与集群上安装的 Amazon EMR 版本相关联。  

```
sudo /etc/init.d/hadoop-hdfs-namenode stop
```

**Example ：重新启动应用程序进程**  
以下示例命令重新启动`hadoop-hdfs-namenode`进程：  

```
sudo /etc/init.d/hadoop-hdfs-namenode start
```

**Example : 停止 Amazon EMR 过程**  
以下示例停止与集群上的 Amazon EMR 版本无关的进程，例如：实例控制器。  

```
sudo /sbin/stop instance-controller
```

**Example ：重新启动 Amazon EMR 进程**  
以下示例重新启动与集群上的 Amazon EMR 版本无关的进程，例如：实例控制器。  

```
sudo /sbin/start instance-controller
```

**注意**  
`/sbin/start, stop` 和 `restart` 命令是 `/sbin/intictl` 的符号链接。有关 `initctl` 的更多信息，请在命令提示中键入 `man initctl`，以查看 initctl man 页面。

------