檢視和重新啟動 Amazon EMR和應用程式程序 (精靈) - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢視和重新啟動 Amazon EMR和應用程式程序 (精靈)

當您對叢集進行疑難排解時,您可能需要列出執行中的程序。您可能還想停止或重新啟動程序。例如,您可以在變更組態後重新啟動程序,或在分析日誌檔案和錯誤訊息後發現特定程序有問題。

在叢集上執行的程序有兩種:Amazon EMR 程序 (例如執行個體控制器和 Log Pusher),以及與叢集上安裝的應用程式相關聯的程序 (例如 hadoop-hdfs-namenode和 hadoop-yarn-resourcemanager)。

若要直接在叢集上使用程序,您必須先連接至主節點。如需詳細資訊,請參閱連線至 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服務與EMR叢集上安裝的 Amazon 版本相關聯。

sudo /etc/init.d/hadoop-hdfs-namenode stop
範例 :重新啟動應用程式程序

下列範例命令會重新啟動 hadoop-hdfs-namenode 程序:

sudo /etc/init.d/hadoop-hdfs-namenode start
範例 :停止 Amazon EMR 程序

下列範例會停止程序,例如執行個體控制器,該程序與叢集EMR上的 Amazon 版本無關。

sudo /sbin/stop instance-controller
範例 :重新啟動 Amazon EMR 程序

下列範例會重新啟動程序,例如執行個體控制器,該程序與叢集EMR上的 Amazon 版本無關。

sudo /sbin/start instance-controller
注意

/sbin/start, stoprestart 命令是 /sbin/intictl 的符號連結。如需 initctl 的更多資訊,請在命令提示字元輸入 man initctl 以參閱 initctl man 頁面。