已创建的MRS集群如何修改Kerberos认证的开启状态?
MRS服务暂不支持集群创建完成后手动开启和关闭Kerberos服务。
如需更换Kerberos认证状态,建议重新创建MRS集群,然后进行数据迁移。
Kerberos认证服务的端口有哪些?
Kerberos认证服务的常用端口有21730(TCP)、21731(TCP/UDP)、21732(TCP/UDP)。
如何避免Kerberos认证过期?
- 对于JAVA应用
在连接HBase、HDFS或者其他大数据组件前,先调用loginUserFromKeytab()创建UGI,然后启动一个定时线程进行检查是否过期并在过期前重新登录。
private static void startCheckKeytabTgtAndReloginJob() {
//10分钟循环,达到距离到期时间一定范围就会更新凭证
ThreadPool.updateConfigThread.scheduleWithFixedDelay(() -> {
try {
UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
logger.warn("get tgt:{}", UserGroupInformation.getLoginUser().getTGT());
logger.warn("Check Kerberos Tgt And Relogin From Keytab Finish.");
} catch (IOException e) {
logger.error("Check Kerberos Tgt And Relogin From Keytab Error", e);
}
}, 0, 10, TimeUnit.MINUTES);
logger.warn("Start Check Keytab TGT And Relogin Job Success.");
}
- 对于Shell客户端方式执行的任务
1.先执行kinit命令认证用户。
2.通过操作系统定时任务或者其他定时任务方式定时执行kinit命令认证用户。
3.提交作业执行大数据任务。
- 对于Spark作业
通过spark-shell、spark-submit、spark-sql方式提交作业,可以直接在命令行中指定Keytab和Principal以获取认证,定期更新登录凭证和授权tokens,避免认证过期。
例如:
spark-shell --principal spark2x/hadoop.<系统域名>@<系统域名> --keytab ${BIGDATA_HOME}/FusionInsight_Spark2x_XXX/install/FusionInsight-Spark2x-2.4.5/keytab/spark2x/SparkResource/spark2x.keytab --master yarn