本文介紹如何在E-MapReduce上配置Knox,以通過公網方式訪問HDFS、YARN、Spark和Ganglia等Web UI頁面。
前提條件
已建立選擇了Knox服務的E-MapReduce,詳情請參見建立叢集。
如果您建立的叢集未選擇Knox服務,可以通過新增服務來添加。
準備工作
設定安全性群組訪問
擷取您當前裝置的公網訪問IP地址。
為了安全的訪問叢集組件,在設定安全性群組策略時,推薦您只針對當前的公網訪問IP地址開放。訪問IP地址,即可查看您當前的公網訪問IP地址。
添加連接埠:
本文以添加8443連接埠為例介紹。
在EMR控制台叢集的基礎資訊頁面的安全地區,單擊叢集安全性群組右側的連結。
在安全性群組頁面,單擊入方向中的增加規則。
訪問來源填寫為上一步驟中擷取的公網訪問IP地址,訪問目的填寫為8443/8443。
單擊儲存。
為防止被外部的使用者攻擊導致安全問題,授權對象禁止填寫為0.0.0.0/0。
如果您建立叢集時,沒有掛載公網IP,可以在ECS控制台為Master節點上的ECS執行個體添加公網IP。
設定Knox使用者
訪問Knox時需要驗證身份,即需要輸入您的使用者名稱和密碼。Knox的使用者身分識別驗證基於LDAP,您可以使用叢集中Apache Directory Server的LDAP服務。
方式一(推薦)
在EMR on ECS頁面,單擊目的地組群的叢集名稱。單擊上方的使用者管理頁簽,直接添加Knox訪問帳號,詳情請參見使用者管理。
方式二 :
通過SSH方式串連叢集,詳情請參見登入叢集。
準備您的使用者資料,例如Tom。
編輯users.ldif檔案。
su knox vim /opt/apps/KNOX/knox-current/templates/users.ldif替換檔案中所有的
emr-guest為Tom,替換EMR GUEST為Tom,設定userPassword的值為您自己的密碼。執行以下命令,匯入使用者資料至LDAP。
cd /opt/apps/KNOX/knox-current/templates sh ldap-sample-users.sh
訪問Web UI
訪問Web UI的詳情,請參見通過控制台訪問開源組件Web介面。
常見問題
Q:Knox組件異常停止,啟動Knox的時候報錯
Failed to start gateway: org.apache.hadoop.gateway.services.ServiceLifecycleException: Gateway SSL Certificate is Expired,具體資訊如下圖所示。
A:您可以按照以下步驟處理。
使用SSH登入叢集,詳情請參見登入叢集。
執行以下命令,將之前錯誤的認證重新命名。
sudo mv /opt/apps/KNOX/knox-current/data/security/keystores/gateway.jks /opt/apps/KNOX/knox-current/data/security/keystores/bak_gateway.jks說明您也可以將之前錯誤的認證移動到其他目錄。
啟動Knox。
在EMR控制台的叢集服務頁面,選擇Knox服務地區的。
在彈出的對話方塊中,輸入執行原因,單擊確定。
在確認對話方塊中,單擊確定。
> 啟動