本文介绍如何在E-MapReduce上使用Knox。
前提条件
准备工作
- 设置安全组访问:
- 获取您当前设备的公网访问IP地址。
为了安全的访问集群组件,在设置安全组策略时,推荐您只针对当前的公网访问IP地址开放。获取您当前公网访问IP地址的方法是,访问ip.taobao.com,然后在左下角即可查看您当前的公网访问IP地址。
- 添加8443端口:
- 在集群详情页面的网络信息区域,查看网络类型,单击安全组ID链接。
- 单击添加安全组规则。
- 端口范围填写8443/8443。
- 授权对象填写步骤a中获取的公网访问IP地址。
- 单击确定。
注意- 为防止被外部的用户攻击导致安全问题,授权对象禁止填写为0.0.0.0/0。
- 如果您创建集群时,没有挂载公网IP,可以在ECS控制台为该ECS实例添加公网IP。添加成功后,返回EMR控制台,在集群管理下的主机列表页面,单击同步主机信息可以立即同步主机信息。
- Knox节点新挂载公网IP后,需要提交工单处理,进行域名和公网IP的绑定操作。
- 获取您当前设备的公网访问IP地址。
- 设置Knox用户
访问Knox时需要验证身份,即需要输入您的用户名和密码。Knox的用户身份验证基于LDAP,您可以使用自有LDAP服务,也可以使用集群中Apache Directory Server的LDAP服务。
- 使用集群中的LDAP服务
方式一(推荐)
在用户管理中直接添加Knox访问账号。
方式二 :- SSH登录到集群上,详细步骤请参见使用SSH连接主节点。
- 准备您的用户数据,例如Tom。
编辑users.ldif文件。
su knox cd /usr/lib/knox-current/templates vi users.ldif
设置文件中所有的
emr-guest
替换为Tom
,将EMR GUEST
替换为Tom
,设置setPassword的值为您自己的密码。 - 导入用户数据至LDAP。
su knox cd /usr/lib/knox-current/templates sh ldap-sample-users.sh
- 使用自有LDAP服务的情况:
- 在Knox的配置页面,单击cluster-topo页签。
- 配置xml-direct-to-file-content中参数。
配置项 描述 main.ldapRealm.userDnTemplate
设置为您的用户DN模板。 main.ldapRealm.contextFactory.url
设置为您的LDAP服务器域名和端口。 - 单击右上角的保存。
- 在确认修改对话框中,配置各项参数,单击确定。
- 单击右上角的 。
- 在执行集群操作对话框中,配置各项参数,单击确定。
在确认对画框中,单击确定。
- 开启Knox访问公网LDAP服务的端口,例如10389。
您可以参见8443端口的开启步骤,选择出方向,开启10389端口。
- 使用集群中的LDAP服务
访问Knox的Web UI
您可以使用Knox账号访问HDFS、YARN、Spark和Ganglia等Web UI页面。
- 使用E-MapReduce链接访问:
- 已通过主账号登录阿里云E-MapReduce控制台。
- 在顶部菜单栏处,根据实际情况选择地域(Region)和资源组。
- 单击上方的集群管理页签。
- 在集群管理页面,单击集群右侧的详情。
- 在左侧导航栏,单击访问链接与端口。
- 在访问链接与端口页面,单击服务所在行的链接。
- 使用集群公网IP地址访问:
- 在集群基础信息页面,查看公网IP地址。
- 在浏览器中访问相应服务的URL。
- HDFS UI:https://{集群公网IP地址}:8443/gateway/cluster-topo/hdfs/。
- Yarn UI:https://{集群公网IP地址}:8443/gateway/cluster-topo/yarn/。
- SparkHistory UI:https://{集群公网IP地址}:8443/gateway/cluster-topo/sparkhistory/。
- Ganglia UI:https://{集群公网IP地址}:8443/gateway/cluster-topo/ganglia/。
- Storm UI:https://{集群公网IP地址}:8443/gateway/cluster-topo/storm/。
- Oozie UI:https://{集群公网IP地址}:8443/gateway/cluster-topo/oozie/。
用户权限管理(ACLs)
Knox提供服务级别的权限管理,可以限制特定的用户、用户组和P地址访问特定的服务,详情请参见Apache Knox授权。
- 场景:YARN UI只允许用户Tom访问。
- 操作步骤:
- 在Knox的配置页面,单击cluster-topo页签。
- 配置xml-direct-to-file-content中参数。
在
<gateway>...</gateway>
标签之间添加ACLs代码。<provider> <role>authorization</role> <name>AclsAuthz</name> <enabled>true</enabled> <param> <name>YARNUI.acl</name> <value>Tom;*;*</value> </param> </provider>
- 单击右上角的保存。
- 在确认修改对话框中,配置各项参数,单击确定。
- 单击右上角的 。
- 在执行集群操作对话框中,配置各项参数,单击确定。
在确认对画框中,单击确定。
警告 Knox会开放对应服务的REST API,您可以通过各服务的REST API操作服务。例如:HDFS文件的添加、删除等操作。出于安全原因,请勿使用Knox安装目录下的LDAP用户名和密码作为Knox的访问用户。