全部產品
Search
文件中心

E-MapReduce:通過SSH隧道方式訪問開源組件Web UI

更新時間:Jul 01, 2024

在E-MapReduce(簡稱EMR)叢集中,為了確保叢集安全,Hadoop、Spark和Flink等開源組件的Web UI的連接埠均未對外開放。鑒於此安全機制,您無法直接存取這些組件的管理介面。EMR提供了控制台和SSH隧道兩種方式進行安全訪問。本文為您介紹如何通過SSH隧道方式訪問開源組件Web UI。

前提條件

  • 已建立叢集,詳情請參見建立叢集

  • 確保本機伺服器與叢集主節點網路連通。您可以在建立叢集時開啟掛載公網開關,或者在叢集建立好之後在ECS控制台上為主節點掛載公網,為主節點ECS執行個體分配固定公網IP或EIP,詳情請參見綁定輔助彈性網卡

擷取主節點的節點名稱和公網IP地址

  1. 進入節點管理頁面。

    1. 登入E-MapReduce控制台

    2. 在頂部功能表列處,根據實際情況選擇地區和資源群組

    3. 單擊目的地組群操作列的節點管理

  2. 單擊主執行個體組所在行的open表徵圖。

  3. 節點名稱公網IP列中,您可以查看主節點的節點名稱和公網IP地址。

    IP_Address

使用動態連接埠轉寄方式

建立從本機伺服器開放連接埠到叢集主節點的SSH隧道,並運行偵聽該連接埠的本地SOCKSProxy 伺服器,連接埠的資料會由SSH隧道轉寄到叢集主節點。

  1. 建立SSH隧道。

    重要

    完成隧道建立之後,請保持終端開啟狀態,此時並不會返迴響應。

    • 密鑰方式

      ssh -i <密鑰檔案路徑> -N -D 8157 root@<主節點公網IP地址>
    • 密碼方式

      ssh -N -D 8157 root@<主節點公網IP地址>

    相關參數描述如下:

    • 8157:本機伺服器連接埠以8157為例,實際配置時,您可使用本機伺服器未被使用的任意一個連接埠。

    • -D:使用動態連接埠轉寄,啟動SOCKS代理進程並偵聽使用者本地連接埠。

    • <主節點公網IP地址>:擷取方式請參見擷取主節點的節點名稱和公網IP地址

    • <密鑰檔案路徑>:密鑰檔案儲存的路徑。

  2. 配置瀏覽器。

    完成動態轉寄配置以後,您可以從以下兩種方式中選擇一種來進行瀏覽器配置。

    • Chrome瀏覽器命令列方式

      1. 開啟命令列視窗,進入本地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\

      2. 在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為例,實際配置時,您可使用本機伺服器未被使用的任意一個連接埠。

      3. 在瀏覽器地址欄輸入http://<主節點的主機名稱>:<port>,即可訪問相應的Web UI。

        組件連接埠資訊請參見服務常用連接埠及配置,主機名稱的擷取請參見擷取主節點的節點名稱和公網IP地址

        例如:訪問Yarn頁面時,在瀏覽器地址欄輸入http://master-1-1:8088

    • 代理擴充程式方式

      代理擴充程式可以協助您更加輕鬆地在瀏覽器中管理和使用代理,確保網頁瀏覽和叢集Web UI訪問互不干擾。

      1. 安裝Chrome的SwitchyOmega外掛程式。

      2. 安裝完成以後,單擊SwitchyOmega外掛程式,然後在彈出框中選擇選項進行配置。

      3. 單擊建立情景模式,輸入情景模式名稱(例如SSH tunnel),情景模式類型選擇PAC情景模式

      4. 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';
        }
      5. 完成上述參數配置後,在左側導覽列中單擊應用選項

      6. 開啟Chrome瀏覽器,在Chrome中單擊SwitchyOmega外掛程式,切換到之前建立的SSH tunnel情景模式下。

      7. 在瀏覽器地址欄輸入http://<主節點的主機名稱>:<port>,即可訪問相應的Web UI。

        組件連接埠資訊請參見服務常用連接埠及配置,主機名稱的擷取方式請參見擷取主節點的節點名稱和公網IP地址

        例如:訪問Yarn頁面時,在瀏覽器地址欄輸入http://master-1-1:8088

使用本地連接埠轉寄方式

重要

此方式只能查看最外層的頁面,無法查看詳細的作業資訊。

您可以通過SSH本地連接埠轉寄(即將主執行個體連接埠轉寄到本地連接埠),訪問當前主節點上啟動並執行網路應用介面,而不使用SOCKS代理。

  1. 在本機伺服器終端輸入以下命令,建立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地址

    • <密鑰檔案路徑>:密鑰檔案儲存的路徑。

  2. 保持終端開啟狀態,開啟瀏覽器,在瀏覽器地址欄中輸入http://localhost:8157/

服務常用連接埠及配置

服務

連接埠

描述

Hadoop 2.X

50070

HDFS Web UI的連接埠。

配置參數為dfs.namenode.http-addressdfs.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.defaultFSfs.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-addressdfs.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

  • Spark的Master與Worker節點進行通訊的連接埠。

  • Standalone叢集提交Application的連接埠。

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,詳情請參見訪問連結與連接埠