選項 2,第 1 部分:使用動態連接埠轉送來設定主節點的 SSH 通道 - Amazon EMR

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

選項 2,第 1 部分:使用動態連接埠轉送來設定主節點的 SSH 通道

要連接到主節點上的本機 Web 伺服器,請在電腦和主節點之間建立一個 SSH 通道。這就是所謂的連接埠轉送。如果您使用動態連接埠轉送來建立您的 SSH 通道,所有路由到指定未使用的本機連接埠流量會轉送到主節點上的本機 Web 伺服器。這會建立一個 SOCKS 代理。然後,可以設定網際網路瀏覽器,以使用附加元件 (例如 FoxyProxy 或 SwitchyOmega) 來管理 SOCKS 代理設定。

使用代理管理附加元件可讓您根據文字模式自動篩選 URL,並將代理設定限制為與主節點 DNS 名稱之形式相符的域。當您在主節點上託管的檢視網站和網際網路上的檢視網站之間切換時,瀏覽器附加元件會自動處理代理的開啟和關閉。

開始之前,您需要主節點的公有 DNS 名稱和金鑰對私有金鑰檔案。如需有關如何找到主要公有 DNS 名稱的詳細資訊,請參閱 擷取主節點的公有 DNS 名稱。如需存取金鑰對的詳細資訊,請參閱《Amazon EC2 使用者指南》中的 Amazon EC2 金鑰對Amazon EC2 如需您想要在主節點上檢視之網站的詳細資訊,請參閱 檢視 Amazon EMR 叢集上託管的 Web 介面

搭配使用動態連接埠轉送與 OpenSSH 來設定主節點的 SSH 通道

搭配使用動態連接埠轉送與 OpenSSH 來設定 SSH 通道
  1. 確保已允許傳入 SSH 流量。如需說明,請參閱 連線至 Amazon EMR 之前:授權傳入流量

  2. 開啟終端機視窗。在 Mac OS X 上,選擇 Applications (應用程式) > Utilities (公用程式) > Terminal (終端機)。在其他 Linux 分佈,通常可於 Applications (應用程式) > Accessories (附屬應用程式) > Terminal (終端機) 找到終端機。

  3. 輸入下列命令以在本機電腦上開啟一個 SSH 通道。將 ~/mykeypair.pem 取代為.pem檔案的位置和檔案名稱、將 8157 取代為未使用的本機連接埠號碼,並將 ec2-###-##-##-###.compute-1.amazonaws.com 取代為叢集的主要公有 DNS 名稱。

    ssh -i ~/mykeypair.pem -N -D 8157 hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

    發出此命令後,終端會保持開啟,且不會傳回回應。

    注意

    -D 表示使用動態連接埠轉送,可讓您指定本機連接埠,用於將資料轉送至主節點本機 Web 伺服器上的所有遠端連接埠。動態連接埠轉送會在命令中指定的連接埠上建立本機 SOCKS 代理接聽。

  4. 通道在作用中後,為您的瀏覽器設定 SOCKS 代理。如需詳細資訊,請參閱選項 2,第 2 部分:設定代理設定以檢視託管在 Amazon EMR 叢集主節點上的網站

  5. 當您在主節點完成 Web 介面的處理時,請關閉終端視窗。

使用 的動態連接埠轉送來設定 SSH 通道 AWS CLI

您可以使用 Windows AWS CLI 上的 和 Linux、Unix 和 Mac OS X 上的 ,與主節點建立 SSH 連線。如果您在 Linux、Unix 或 Mac OS X AWS CLI 上使用 ,則必須設定 .pem 檔案的許可,如 所示若要設定金鑰對私有金鑰檔案權限。如果您在 Windows AWS CLI 上使用 ,PuTTY 必須出現在路徑環境變數中,否則您可能會收到如 OpenSSH 或 PuTTY 等錯誤

使用 的動態連接埠轉送來設定 SSH 通道 AWS CLI
  1. 確保已允許傳入 SSH 流量。如需說明,請參閱 連線至 Amazon EMR 之前:授權傳入流量

  2. 建立主節點的 SSH 連線與,如 使用 AWS CLI連接至主節點 中所示。

  3. 若要擷取叢集識別符,輸入:

    aws emr list-clusters

    輸出會列出叢集 (包括叢集 ID)。請注意,叢集 ID 表示您正連接至其中的叢集。

    "Status": { "Timeline": { "ReadyDateTime": 1408040782.374, "CreationDateTime": 1408040501.213 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "NormalizedInstanceHours": 4, "Id": "j-2AL4XXXXXX5T9", "Name": "AWS CLI cluster"
  4. 輸入以下命令,以使用動態連接埠轉送來開啟主節點的 SSH 通道。在下列範例中,使用叢集 ID 來取代 j-2AL4XXXXXX5T9 並使用您 檔案 (若是 Linux、Unix 和 Mac OS X) 或 檔案 (若是 Windows) 的位置和檔名來取代 .pem~/mykeypair.key.ppk

    aws emr socks --cluster-id j-2AL4XXXXXX5T9 --key-pair-file ~/mykeypair.key
    注意

    socks 命令會在本機連接埠 8157 上自動設定動態連接埠轉送。目前,此設定無法修改。

  5. 通道在作用中後,為您的瀏覽器設定 SOCKS 代理。如需詳細資訊,請參閱選項 2,第 2 部分:設定代理設定以檢視託管在 Amazon EMR 叢集主節點上的網站

  6. 當您完成使用主節點上的 Web 介面時,請關閉 AWS CLI 視窗。

    如需在 中使用 Amazon EMR 命令的詳細資訊 AWS CLI,請參閱 https://docs.aws.amazon.com/cli/latest/reference/emr

使用 PuTTY 來設定主節點的 SSH 通道

Windows 使用者可以使用 SSH 用戶端 (例如 PuTTY) 來建立主節點的 SSH 通道。連接到 Amazon EMR 主節點之前,應該下載並安裝 PuTTY 和 PuTTYgen。可以從 PuTTY 下載頁面中下載這些工具。

PuTTY 原生並不支援 Amazon EC2 所產生的金鑰對私有金鑰檔案格式 (.pem)。可使用 PuTTYgen 將金鑰檔案轉換為所需的 PuTTY 格式 (.ppk)。必須將金鑰轉換為此格式 (.ppk),再嘗試使用 PuTTY 連接至主節點。

如需轉換金鑰的詳細資訊,請參閱《Amazon EC2 使用者指南》中的使用 PuTTYgen 轉換私有金鑰

搭配使用動態連接埠轉送與 PuTTY 來設定 SSH 通道
  1. 確保已允許傳入 SSH 流量。如需說明,請參閱 連線至 Amazon EMR 之前:授權傳入流量

  2. 按兩下 putty.exe 以啟動 PuTTY。也可以從 Windows 程式清單啟動 PuTTY。

    注意

    如果您已經擁有作用中的 SSH 工作階段與主節點,可以透過在 PuTTY 標題列按一下滑鼠右鍵並選擇變更設定來新增通道。

  3. 必要時,選擇 Category (類別) 清單中的 Session (工作階段)

  4. Host Name (主機名稱) 欄位,輸入 hadoop@MasterPublicDNS。例如:hadoop@ec2-###-##-##-###.compute-1.amazonaws.com

  5. Category (類別) 清單中,展開 Connection > SSH (連線 > SSH),然後選擇 Auth

  6. 針對 Private key file for authentication (要身分驗證的私密金鑰檔案),選擇 Browse (瀏覽) 並選取您產生的 .ppk 檔案。

    注意

    PuTTY 原生並不支援 Amazon EC2 所產生的金鑰對私有金鑰檔案格式 (.pem)。可使用 PuTTYgen 將金鑰檔案轉換為所需的 PuTTY 格式 (.ppk)。必須將金鑰轉換為此格式 (.ppk),再嘗試使用 PuTTY 連接至主節點。

  7. Category (類別) 清單中,展開 Connection > SSH (連線 > SSH),然後選擇 Tunnels (通道)

  8. 來源連接埠欄位中,輸入 8157 (未使用的本機連接埠),然後選擇新增

  9. Destination (目的地) 欄位保留空白。

  10. 選取 Dynamic (動態)Auto (自動) 選項。

  11. 選擇 Open (開啟)。

  12. 選擇 Yes (是) 關閉 PuTTY 安全提醒。

    重要

    登入主節點時,如果系統提示您輸入使用者名稱,請輸入 hadoop

  13. 通道在作用中後,為您的瀏覽器設定 SOCKS 代理。如需詳細資訊,請參閱選項 2,第 2 部分:設定代理設定以檢視託管在 Amazon EMR 叢集主節點上的網站

  14. 當您在主節點完成 Web 介面的處理時,請關閉 PuTTY 視窗。