在E-MapReduce(簡稱EMR)叢集中,為了確保叢集安全,Hadoop、Spark和Flink等開源組件的Web UI的連接埠均未對外開放。鑒於此安全機制,您無法直接存取這些組件的管理介面。EMR提供了控制台和SSH隧道兩種方式進行安全訪問。本文為您介紹如何通過SSH隧道方式訪問開源組件Web UI。
前提條件
擷取主節點的節點名稱和公網IP地址
進入節點管理頁面。
在頂部功能表列處,根據實際情況選擇地區和資源群組。
單擊目的地組群操作列的節點管理。
單擊主執行個體組所在行的表徵圖。
在節點名稱和公網IP列中,您可以查看主節點的節點名稱和公網IP地址。
使用動態連接埠轉寄方式
建立從本機伺服器開放連接埠到叢集主節點的SSH隧道,並運行偵聽該連接埠的本地SOCKSProxy 伺服器,連接埠的資料會由SSH隧道轉寄到叢集主節點。
建立SSH隧道。
重要完成隧道建立之後,請保持終端開啟狀態,此時並不會返迴響應。
密鑰方式
ssh -i <密鑰檔案路徑> -N -D 8157 root@<主節點公網IP地址>
密碼方式
ssh -N -D 8157 root@<主節點公網IP地址>
相關參數描述如下:
8157
:本機伺服器連接埠以8157
為例,實際配置時,您可使用本機伺服器未被使用的任意一個連接埠。-D
:使用動態連接埠轉寄,啟動SOCKS代理進程並偵聽使用者本地連接埠。<主節點公網IP地址>
:擷取方式請參見擷取主節點的節點名稱和公網IP地址。<密鑰檔案路徑>
:密鑰檔案儲存的路徑。
配置瀏覽器。
完成動態轉寄配置以後,您可以從以下兩種方式中選擇一種來進行瀏覽器配置。
Chrome瀏覽器命令列方式
開啟命令列視窗,進入本地Google Chrome瀏覽器用戶端的安裝目錄。
作業系統不同,Chrome瀏覽器的預設安裝目錄不同。
作業系統
Chrome預設安裝目錄
macOS X
/Applications/Google\ Chrome.app/Contents/macOS
Linux
/usr/bin/google-chrome
Windows
C:\Program Files (x86)\Google\Chrome\Application\
在Chrome瀏覽器的預設安裝目錄下,執行以下命令。
Windows和Linux
chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/
macOS X
./Google\ Chrome --proxy-server="socks5://localhost:8157" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/
相關參數描述如下:
/tmp/
:如果是Windows作業系統,則/tmp/
可以寫成類似/c:/tmppath/
的路徑。如果是Linux或者Mac OS X作業系統,則可直接寫成/tmp/路徑。8157
:本機伺服器連接埠以8157
為例,實際配置時,您可使用本機伺服器未被使用的任意一個連接埠。
在瀏覽器地址欄輸入
http://<主節點的主機名稱>:<port>
,即可訪問相應的Web UI。組件連接埠資訊請參見服務常用連接埠及配置,主機名稱的擷取請參見擷取主節點的節點名稱和公網IP地址。
例如:訪問Yarn頁面時,在瀏覽器地址欄輸入
http://master-1-1:8088
。
代理擴充程式方式
代理擴充程式可以協助您更加輕鬆地在瀏覽器中管理和使用代理,確保網頁瀏覽和叢集Web UI訪問互不干擾。
安裝Chrome的SwitchyOmega外掛程式。
安裝完成以後,單擊SwitchyOmega外掛程式,然後在彈出框中選擇選項進行配置。
單擊建立情景模式,輸入情景模式名稱(例如SSH tunnel),情景模式類型選擇PAC情景模式。
在PAC指令碼中配置以下內容。
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'; }
完成上述參數配置後,在左側導覽列中單擊應用選項。
開啟Chrome瀏覽器,在Chrome中單擊SwitchyOmega外掛程式,切換到之前建立的SSH tunnel情景模式下。
在瀏覽器地址欄輸入
http://<主節點的主機名稱>:<port>
,即可訪問相應的Web UI。組件連接埠資訊請參見服務常用連接埠及配置,主機名稱的擷取方式請參見擷取主節點的節點名稱和公網IP地址。
例如:訪問Yarn頁面時,在瀏覽器地址欄輸入
http://master-1-1:8088
。
使用本地連接埠轉寄方式
此方式只能查看最外層的頁面,無法查看詳細的作業資訊。
您可以通過SSH本地連接埠轉寄(即將主執行個體連接埠轉寄到本地連接埠),訪問當前主節點上啟動並執行網路應用介面,而不使用SOCKS代理。
在本機伺服器終端輸入以下命令,建立SSH隧道。
重要完成隧道建立之後,請保持終端開啟狀態,此時並不會返迴響應。
密鑰方式
ssh -i <密鑰檔案路徑> -N -L 8157:<主節點主機名稱>:8088 root@<主節點公網IP地址>
密碼方式
ssh -N -L 8157:<主節點主機名稱>:8088 root@<主節點公網IP地址>
相關參數描述如下:
-L
:使用本地連接埠轉寄,您可以指定一個本地連接埠,用於將資料轉寄到主節點本地Web伺服器上標識的遠程連接埠。8088
:主節點上ResourceManager的訪問連接埠,您可以替換為其他組件的連接埠。組件連接埠資訊請參見服務常用連接埠及配置,主機名稱的擷取請參見擷取主節點的節點名稱和公網IP地址。
8157
:本機伺服器連接埠以8157
為例,實際配置時,您可使用本機伺服器未被使用的任意一個連接埠。<主節點公網IP地址>
:擷取方式請參見擷取主節點的節點名稱和公網IP地址。<密鑰檔案路徑>
:密鑰檔案儲存的路徑。
保持終端開啟狀態,開啟瀏覽器,在瀏覽器地址欄中輸入
http://localhost:8157/
。
服務常用連接埠及配置
服務 | 連接埠 | 描述 |
Hadoop 2.X | 50070 | HDFS Web UI的連接埠。 配置參數為dfs.namenode.http-address或dfs.http.address。 說明 dfs.http.address已到期但仍能使用。 |
50075 | DataNode Web UI的連接埠。 | |
50010 | Datanode服務連接埠,用於資料轉送。 | |
50020 | IPC服務的連接埠。 | |
8020 | 高可用的HDFS RPC連接埠。 | |
8025 | ResourceManager連接埠。 配置參數為yarn.resourcemanager.resource-tracker.address。 | |
9000 | 非高可用的HDFS RPC連接埠。 配置參數為fs.defaultFS或fs.default.name。 說明 fs.default.name已經到期但仍能使用。 | |
8088 | YARN Web UI的連接埠。 | |
8485 | JournalNode的RPC連接埠。 | |
8019 | ZKFC的連接埠。 | |
19888 | JobHistory Server的Web UI連接埠。 配置參數為mapreduce.jobhistory.webapp.address。 | |
10020 | JobHistory Server的Web UI連接埠。 配置參數為mapreduce.jobhistory.address。 | |
Hadoop 3.X | 8020 | NameNode的連接埠。 配置參數為dfs.namenode.http-address或dfs.http.address。 說明 dfs.http.address已到期但仍能使用。 |
9870 | ||
9871 | NameNode的連接埠。 | |
9866 | DataNode的連接埠。 | |
9864 | DataNode的連接埠。 | |
9865 | DataNode的連接埠。 | |
8088 | ResourceManager的連接埠。 配置參數為yarn.resourcemanager.webapp.address。 | |
MapReduce | 8021 | JobTracker的連接埠。 配置參數為mapreduce.jobtracker.address。 |
Zookeeper | 2181 | 用戶端串連Zookeeper的連接埠。 |
2888 | Zookeeper叢集內通訊使用,Leader監聽此連接埠。 | |
3888 | Zookeeper連接埠,用於選舉Leader。 | |
HBase | 16010 | Hbase的Master節點的Web UI連接埠。 配置參數為hbase.master.info.port。 |
16000 | HMaster的連接埠。 配置參數為hbase.master.port。 | |
16030 | Hbase的RegionServer的Web UI管理連接埠。 配置參數為hbase.regionserver.info.port。 | |
16020 | HRegionServer的連接埠。 配置參數為hbase.regionserver.port。 | |
9099 | ThriftServer的連接埠。 | |
Hive | 9083 | MetaStore服務預設監聽連接埠。 |
10000 | Hive的JDBC連接埠。 | |
10001 | Spark Thrift Sever的JDBC連接埠。 | |
Spark | 7077 |
|
8080 | Master節點的Web UI連接埠,用於資源調度。 | |
8081 | Worker節點的Web UI連接埠,用於資源調度。 | |
4040 | Driver的Web UI連接埠,用於任務調度。 | |
18080 | Spark History Server的Web UI 連接埠。 | |
Kafka | 9092 | Kafka叢集節點之間通訊的RPC連接埠。 |
Redis | 6379 | Redis服務連接埠。 |
HUE | 8888 | Hue Web UI的連接埠。 |
Oozie | 11000 | Oozie Web UI的連接埠。 |
Druid | 18888 | Druid Web UI的連接埠。 |
18090 | Overlord的連接埠。 配置參數為overlord.runtime頁簽下的druid.plaintextPort。 | |
18091 | MiddleManager的連接埠。 配置參數為middleManager.runtime頁簽下的druid.plaintextPort。 | |
18081 | Coordinator的連接埠。 配置參數為coordinator.runtime頁簽下的druid.plaintextPort。 | |
18083 | Historical的連接埠。 配置參數為historical.runtime頁簽下的druid.plaintextPort。 | |
18082 | Broker的連接埠。 配置參數為broker.runtime頁簽下的druid.plaintextPort。 | |
Ganglia | 9292 | Ganglia Web UI的連接埠。 |
Ranger | 6080 | Ranger Web UI的連接埠。 |
Kafka Manager | 8085 | Kafka Manager的連接埠。 |
Superset | 18088 | Superset Web UI的連接埠。 |
Impala | 21050 | 使用JDBC串連Impala的連接埠。 |
Presto | 9090 | Presto Web UI的連接埠。 |
相關文檔
如果您需要通過控制台的方式訪問Web UI,詳情請參見訪問連結與連接埠。