¿Cómo puedo evitar que la autenticación Kerberos caduque?
- Aplicaciones de Java:
Antes de conectar a HBase, HDFS u otros componentes de big data, invoque a loginUserFromKeytab para crear un UGI. A continuación, inicie un subproceso programado para comprobar periódicamente si la autenticación Kerberos caduca. Inicie sesión de nuevo en el sistema antes de que caduque la autenticación Kerberos.
private static void startCheckKeytabTgtAndReloginJob() { //The credential is checked every 10 minutes, and updated before the expiration time. 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."); }
- Tareas ejecutadas en modo shell:
- Ejecute el comando kinit para autenticar al usuario.
- Cree una tarea programada del sistema operativo o cualquier otra tarea programada para ejecutar el comando kinit para autenticar al usuario periódicamente.
- Envíe trabajos para ejecutar tareas de big data.
- Ttrabajos de Spark:
Si envía trabajos con spark-shell, spark-submit o spark-sql, puede especificar Keytab y Principal en el comando para realizar la autenticación y actualizar periódicamente las credenciales de inicio de sesión y los tokens de autorización para evitar el vencimiento de la autenticación.
Ejemplo:
spark-shell --principal spark2x/hadoop.<System domain name>@<System domain name> --keytab ${BIGDATA_HOME}/FusionInsight_Spark2x_8.1.0.1/install/FusionInsight-Spark2x-2.4.5/keytab/spark2x/SparkResource/spark2x.keytab --master yarn