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

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

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

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

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

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

使用具有 Open 的動態連接埠轉送設定主要節點的SSH通道SSH

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

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

  3. 輸入下列命令,在本機機器上開啟SSH通道。Replace (取代) ~/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 必須出現在路徑環境變數中,否則您可能會收到開啟SSH或 PuTTY 無法使用等錯誤

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

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

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

    aws emr list-clusters

    輸出會列出您的叢集,包括叢集 IDs。請注意,叢集 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通道。在下列範例中,取代 j-2AL4XXXXXX5T9 使用叢集 ID 並取代 ~/mykeypair.key 您的.pem檔案 (適用於 Linux、Unix 和 Mac OS X) 或.ppk檔案 (適用於 Windows) 的位置和檔案名稱。

    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

使用 Pu 設定主要節點的SSH通道TTY

Windows 使用者可以使用 PuTTY 等SSH用戶端來建立主要節點的SSH通道。在連線至 Amazon EMR主節點之前,您應該下載並安裝 PuTTY 和 P uTTYgen。您可以從 PuTTY 下載頁面 下載這些工具。

PuTTY 原生不支援 Amazon 產生的金鑰對私有金鑰檔案格式 (.pem)EC2。您可以使用 P uTTYgen 將金鑰檔案轉換為所需的 PuTTY 格式 (.ppk)。您必須先將金鑰轉換為此格式 (.ppk),才能使用 Pu 連線到主要節點TTY。

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

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

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

    注意

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

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

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

  5. 類別清單中,展開連線 > SSH,然後選擇驗證

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

    注意

    PuTTY 原生不支援 Amazon 產生的金鑰對私有金鑰檔案格式 (.pem)EC2。您可以使用 P uTTYgen 將金鑰檔案轉換為所需的 PuTTY 格式 (.ppk)。您必須先將金鑰轉換為此格式 (.ppk),才能使用 Pu 連線到主要節點TTY。

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

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

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

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

  11. 選擇 Open (開啟)。

  12. 選擇以關閉 PuTTY 安全提醒。

    重要

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

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

  14. 當您完成使用主要節點上的 Web 介面時,請關閉 PuTTY 視窗。