本文介绍如何在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。
- 获取您当前设备的公网访问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
您可以使用Knox账号访问HDFS、YARN、Spark和Ganglia等Web UI页面。
- 登录EMR on ECS控制台。
- 在顶部菜单栏处,根据实际情况选择地域和资源组。
- 单击目标集群右侧的集群服务。
- 单击上方的访问链接与端口页签。
- 在访问链接与端口页面,单击服务所在行的链接。
常见问题
- 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服务区域的 。
- 在弹出的对话框中,输入执行原因,单击确定。
- 在确认对话框中,单击确定。