配置MapReduce应用安全认证
场景说明
在安全集群环境下,各个组件之间的相互通信不能够简单的互通,而需要在通信之前进行相互认证,以确保通信的安全性。
用户在提交MapReduce应用程序时,需要与Yarn、HDFS等之间进行通信。那么提交MapReduce的应用程序中需要写入安全认证代码,确保MapReduce程序能够正常运行。
安全认证有两种方式:
MapReduce的安全认证代码
目前使用统一调用LoginUtil类进行安全认证。
在MapReduce样例工程的“com.huawei.bigdata.mapreduce.examples”包的“FemaleInfoCollector”类的代码中,test@<系统域名>、user.keytab和krb5.conf为示例,实际操作时需要已将相应账号对应权限的keytab文件和krb5.conf文件放入到“conf”目录,安全登录方法如下代码所示。
public static final String PRINCIPAL= "test@<系统域名>"; public static final String KEYTAB = FemaleInfoCollector.class.getClassLoader().getResource("user.keytab").getPath(); public static final String KRB = FemaleInfoCollector.class.getClassLoader().getResource("krb5.conf").getPath(); ... // Security login LoginUtil.login(PRINCIPAL, KEYTAB, KRB, conf);
- test:为准备集群认证用户信息创建的用户名称,例如developuser。
- 系统域名:登录FusionInsight Manager后,选择“系统 > 权限 > 域和互信”,查看“本端域”参数,即为当前系统域名。