

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

# 哪些工具可用於對 Amazon EMR 叢集進行故障診斷？
<a name="emr-troubleshoot-tools"></a>

若要識別並修正叢集錯誤，您可以使用此頁面所述的工具。在啟動叢集時，您可能需要初始化部分工具。依預設，每個叢集都可使用其他工具。

**Topics**
+ [檢視 EMR 叢集詳細資訊](#emr-troubleshoot-tools-details)
+ [檢視 EMR 叢集錯誤詳細資訊](#emr-troubleshoot-errordetail)
+ [執行指令碼並設定 Amazon EMR 程序](#emr-troubleshoot-tools-commands)
+ [檢視 日誌檔](#emr-troubleshoot-tools-logs)
+ [監控 EMR 叢集效能](#emr-troubleshoot-tools-performance)

## 檢視 EMR 叢集詳細資訊
<a name="emr-troubleshoot-tools-details"></a>

您可以使用 AWS 管理主控台 AWS CLI或 EMR API 來擷取 EMR 叢集和任務執行的詳細資訊。如需使用 AWS 管理主控台 和 的詳細資訊 AWS CLI，請參閱 [檢視 Amazon EMR 叢集狀態和詳細資訊](emr-manage-view-clusters.md)。

### Amazon EMR 主控台詳細資訊窗格
<a name="emr-troubleshoot-tools-console"></a>

在 Amazon EMR 主控台上的**叢集**清單中，您可以查看在您的帳戶和 AWS 區域中每個叢集狀態的高階資訊。此清單會顯示您在過去兩個月啟動的所有作用中和終止的叢集。從 **Clusters (叢集)** 清單中，您可以選擇叢集 **Name (名稱)** 來查看叢集詳細資訊。此資訊分為不同類別，讓您可以輕鬆導覽。

叢集詳細資訊頁面中的**應用程式使用者介面**可能有助於對叢集進行疑難排解。其提供 YARN 應用程式的狀態，針對部分應用程式 (例如 Spark 應用程式)，您可以深入不同的指標和面向 (例如作業、階段和執行者)。如需詳細資訊，請參閱[檢視 Amazon EMR 應用程式歷史記錄](emr-cluster-application-history.md)。此功能僅適用於 Amazon EMR 5.8.0 版及更高版本。

### Amazon EMR 命令列介面
<a name="emr-troubleshoot-tools-cli"></a>

您可以使用 AWS CLI `--describe`引數從 找到叢集的詳細資訊。

### Amazon EMR API
<a name="emr-troubleshoot-tools-api"></a>

您可以使用 `DescribeJobFlows` 動作從 API 中尋找叢集的詳細資訊。

## 檢視 EMR 叢集錯誤詳細資訊
<a name="emr-troubleshoot-errordetail"></a>

當 EMR 叢集因錯誤而終止時，`DescribeCluster` 和 `ListClusters` API 會傳回錯誤碼和錯誤訊息。對於選取的叢集錯誤，`ErrorDetail` 資料陣列可協助您對故障進行疑難排解。

如需包含 `ErrorDetail` 資料的錯誤代碼清單，請參閱 [Amazon EMR 中具有 ErrorDetail 資訊的錯誤代碼](emr-troubleshoot-error-errordetail.md)。

**注意**  
我們會不斷完善錯誤訊息，以便您收到最新的相關資訊。我們不建議您剖析 `ErrorMessage` 中的文字，因為此文字可能會發生變更。

## 執行指令碼並設定 Amazon EMR 程序
<a name="emr-troubleshoot-tools-commands"></a>

在疑難排解程序中，您可能會發現在叢集上執行自訂指令碼或檢視和設定叢集程序很有幫助。

### 檢視並重新啟動應用程式程序
<a name="emr-troubleshoot-tools-stop-start-processes"></a>

檢視叢集上執行中的程序以便診斷潛在問題可能很有幫助。您可以透過連接至叢集的主節點來停止和重新啟動叢集程序。如需詳細資訊，請參閱[檢視和重新啟動 Amazon EMR 和應用程式程序 (常駐程式)](emr-process-restart-stop-view.md)。

### 在沒有 SSH 連線的情況下執行命令和指令碼
<a name="emr-troubleshoot-tools-run-scripts"></a>

若要作為步驟在叢集上執行命令或指令碼，您可以使用 `command-runner.jar` 或 `script-runner.jar` 工具，而無需建立與主節點的 SSH 連線。如需詳細資訊，請參閱在 [Amazon EMR 叢集上執行命令和指令碼](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-commandrunner.html)。

## 檢視 日誌檔
<a name="emr-troubleshoot-tools-logs"></a>

叢集執行時，Amazon EMR 和 Hadoop 會同時產生日誌檔案。您可以從多種不同的工具存取這些日誌檔案，具體取決於您在啟動叢集時指定的組態而定。如需詳細資訊，請參閱[設定 Amazon EMR 叢集記錄和偵錯](emr-plan-debugging.md)。

### 主節點上的日誌檔案
<a name="emr-troubleshoot-tools-logs-master"></a>

每個叢集會將日誌檔案到發佈到主節點上的 /mnt/var/log/ 目錄。這些日誌檔只可在叢集執行時可供使用。

### 封存至 Amazon S3 的日誌檔案
<a name="emr-troubleshoot-tools-logs-s3"></a>

如果您啟動叢集，並指定 Amazon S3 日誌路徑，叢集會以 5 分鐘的間隔，將儲存在主節點上 /mnt/var/log/ 的日誌檔案複製到 Amazon S3。這可確保即使叢集終止，您仍有權存取日誌檔。由於系統以 5 分鐘的間隔封存一次檔案，最後幾分鐘突然終止的叢集可能會無法提供使用。

## 監控 EMR 叢集效能
<a name="emr-troubleshoot-tools-performance"></a>

Amazon EMR 提供多種工具來監控您叢集的效能。

### Hadoop Web 介面
<a name="emr-troubleshoot-tools-hadoop-ui"></a>

每個叢集會在包含叢集資訊的主節點上發佈一組 Web 界面。您可以使用 SSH 通道連接主節點上的 web 頁面，以存取這些網頁。如需詳細資訊，請參閱[檢視 Amazon EMR 叢集上託管的 Web 介面](emr-web-interfaces.md)。

### CloudWatch 指標
<a name="emr-troubleshoot-tools-cloudwatch"></a>

每個叢集都會向 CloudWatch 報告指標。CloudWatch 是一項追蹤指標的 Web 服務，可用來設定對這些指標的警示。如需詳細資訊，請參閱[使用 CloudWatch 來監控 Amazon EMR 指標](UsingEMR_ViewingMetrics.md)。