Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ MapReduce Service/ Preguntas frecuentes/ Uso de Kerberos/ ¿Cómo puedo evitar que la autenticación Kerberos caduque?
Actualización más reciente 2023-11-20 GMT+08:00

¿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:
    1. Ejecute el comando kinit para autenticar al usuario.
    2. Cree una tarea programada del sistema operativo o cualquier otra tarea programada para ejecutar el comando kinit para autenticar al usuario periódicamente.
    3. 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