除了通過EMR控制台提供的連結地址訪問開源組件Web介面外,還可通過SSH隧道方式進行安全訪問。通過SSH隧道和SOCKS代理,您可在不暴露叢集內部網路結構的情況下訪問開源組件Web介面。
開源組件Web介面訪問方式選擇,請參見查看開源組件 Web 介面。
前提條件
已建立叢集,詳情請參見建立叢集。
確保用戶端機器與叢集主節點網路連通,詳情可參見綁定Elastic IP Address。
SSH本地連接埠轉寄訪問
此方式只能查看最外層的頁面,無法查看詳細的作業資訊。
您可以通過SSH本地連接埠轉寄,將叢集主節點的連接埠映射到本地連接埠,從而直接存取叢集主節點上啟動並執行Web應用介面。
1、建立SSH隧道
開啟本地命令列視窗,通過SSH方式串連到叢集主節點。您可根據您建立叢集時的配置選擇密碼方式或密鑰方式訪問。
密鑰方式訪問
ssh -i <密鑰檔案路徑> -N -L <本地連接埠>:<主節點的節點名稱>:<組件連接埠> root@<主節點公網IP地址>相關參數描述如下:
-i:指定用於身分識別驗證的私密金鑰檔案路徑。-N:僅用於設定連接埠轉寄,建立隧道而不需要執行命令。-L:使用本地連接埠轉寄,用於將資料轉寄到主節點本地Web伺服器上標識的遠程連接埠。<密鑰檔案路徑>:密鑰檔案儲存的路徑,詳情請參見管理金鑰組。<本地連接埠>:您可使用本機伺服器未被使用的任意一個連接埠(例如,8156)。<主節點的節點名稱>:叢集詳情頁節點管理下主節點的節點名稱,詳情請參見擷取節點名稱(例如,master-1-1)。<組件連接埠>:組件連接埠資訊請參見開源組件常用連接埠(例如,Yarn UI連接埠8088)。<主節點公網IP地址>:叢集詳情頁節點管理下主節點的公網IP地址,詳情請參見擷取節點公網IP。
密碼方式訪問
ssh -N -L <本地連接埠>:<主節點的節點名稱>:<組件連接埠> root@<主節點公網IP地址>相關參數描述如下:
完成隧道建立之後,請保持終端開啟狀態,此時並不會返迴響應。
2、訪問開源組件地址
在瀏覽器地址欄輸入http://localhost:<本地連接埠>,即可訪問相應的Web UI。其中,<本地連接埠>為步驟1中配置的本地連接埠。例如,本樣本開啟http://localhost:8156即可訪問YARN UI。
如果同時訪問多個開源組件的Web介面,需要重複此方式開啟另外一個本地連接埠進行轉寄。
SSH動態連接埠轉寄訪問
通過建立SSH隧道,將本地主機的請求通過一個SOCKSProxy 伺服器轉寄到叢集主節點。這樣,本機伺服器上的請求即可訪問叢集主節點上開源組件的Web介面資料。
1、建立SSH隧道
開啟本地命令列視窗,通過SSH方式串連到叢集主節點。您可根據您建立叢集時的配置選擇密碼方式或密鑰方式訪問。
密鑰方式訪問
ssh -i <密鑰檔案路徑> -N -D <連接埠> root@<主節點公網IP地址>相關參數描述如下:
密碼方式訪問
ssh -N -D <連接埠> root@<主節點公網IP地址>相關參數描述如下:
-N:僅用於設定連接埠轉寄,建立隧道而不需要執行命令。-D:使用動態連接埠轉寄,啟動SOCKS代理進程並偵聽使用者本地連接埠。<連接埠>:您可使用本機伺服器未被使用的任意一個連接埠(例如,8157)。<主節點公網IP地址>:叢集詳情頁節點管理下主節點的公網IP地址,詳情請參見擷取節點公網IP。
完成隧道建立之後,請保持終端開啟狀態,此時並不會返迴響應。
2、配置瀏覽器代理
完成動態轉寄配置以後,您可從以下兩種方式中選擇一種來進行瀏覽器代理配置。
Chrome瀏覽器命令列方式
開啟本地命令列視窗,進入本地Google Chrome瀏覽器用戶端的安裝目錄。
作業系統
Chrome預設安裝目錄
macOS X
/Applications/Google\ Chrome.app/Contents/macOS
Linux
/usr/bin/google-chrome
Windows
64位和32位系統預設路徑分別如下:
C:\Program Files\Google\Chrome\Application\
C:\Program Files (x86)\Google\Chrome\Application\
說明作業系統不同,Chrome瀏覽器的預設安裝目錄不同。
將Google Chrome配置為通過本地SOCKS代理,並啟動Google Chrome瀏覽器。啟動連接埠為在步驟1建立SSH隧道中開啟的連接埠號碼。
說明本樣本示範8157連接埠的命令。
macOS X
./Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Linux
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/Windows
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=c:\\tmppath\\
Chrome外掛程式代理方式
外掛程式方式可協助您更方便地在瀏覽器中管理和使用代理,確保網頁瀏覽和叢集Web介面訪問互不干擾。
安裝Chrome的SwitchyOmega外掛程式。
進入外掛程式配置頁面,單擊建立情景模式,輸入情景模式名稱(例如SSH tunnel),情景模式類型選擇PAC情景模式。
在PAC指令碼中配置以下內容。
說明本樣本示範8157連接埠的代碼。
function regExpMatch(url, pattern) { try { return new RegExp(pattern).test(url); } catch (ex) { return false; } } function FindProxyForURL(url, host) { if (shExpMatch(url, "*localhost*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-header*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*emr-worker*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*master*")) return "SOCKS5 localhost:8157"; if (shExpMatch(url, "*core*")) return "SOCKS5 localhost:8157"; return 'DIRECT'; }完成上述參數配置後,在左側導覽列中單擊應用選項。
在瀏覽器右上方,將代理模式切換至剛建立的SSH tunnel情景模式。
3、訪問開源組件地址
在瀏覽器地址欄輸入http://<主節點的節點名稱>:<連接埠>,即可訪問相應服務的Web介面。 例如,訪問YARN UI地址為http://master-1-1:8088。
參數描述如下:
<主節點的節點名稱>:叢集詳情頁節點管理下主節點的節點名稱,詳情請參見擷取節點名稱(例如,master-1-1)。<連接埠>:目標組件的實際連接埠。組件連接埠資訊請參見開源組件常用連接埠(例如,Yarn UI連接埠8088)。
如果同時訪問多個開源組件的Web介面,直接修改連接埠即可。
相關文檔
如果您需要通過控制台的方式訪問Web UI,詳情請參見通過控制台訪問開源組件Web介面。
服務使用問題,詳情請參見常見問題。