本文介紹如何在E-MapReduce上配置Knox,以通過公網方式訪問HDFS、YARN、Spark和Ganglia等Web UI頁面。
前提條件
已創建E-MapReduce集群,詳情請參見創建集群。
準備工作
設置安全組訪問:
獲取您當前設備的公網訪問IP地址。
為了安全的訪問集群組件,在設置安全組策略時,推薦您只針對當前的公網訪問IP地址開放。訪問IP地址,即可查看您當前的公網訪問IP地址。
添加端口:
本文以添加8443端口為例介紹。
在EMR控制臺集群的基礎信息頁面的安全區域,單擊集群安全組鏈接。
在安全組規則頁面,單擊手動添加。
端口范圍填寫為8443/8443,授權對象填寫為上一步驟中獲取的公網訪問IP地址。
單擊保存。
重要為防止被外部的用戶攻擊導致安全問題,授權對象禁止填寫為0.0.0.0/0。
如果您創建集群時,沒有掛載公網IP,可以在ECS控制臺為該ECS實例添加公網IP。
設置Knox用戶
訪問Knox時需要驗證身份,即需要輸入您的用戶名和密碼。Knox的用戶身份驗證基于LDAP,您可以使用集群中Apache Directory Server的LDAP服務。
方式一(推薦)
在集群的用戶管理頁面,直接添加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的詳情,請參見訪問鏈接與端口。
常見問題
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服務區域的
。在彈出的對話框中,輸入執行原因,單擊確定。
在確認對話框中,單擊確定。