Todos los productos
Search
Centro de documentos

E-MapReduce:Upgrade and roll back JindoSDK on an EMR cluster (x86)

Última actualización: Sep 04, 2026

Este tema describe cómo actualizar JindoSDK en clústeres EMR basados en x86 para diferentes escenarios.

Requisitos previos

Debe haber creado un clúster EMR basado en x86. Para obtener más información, consulte Create a cluster.

Escenario 1: Actualizar un clúster existente

Si cuenta con un clúster EMR que ejecuta EMR v5.6.0 o posterior, o EMR v3.40.0 o posterior, y necesita resolver known JindoData issues o utilizar nuevas funciones de JindoSDK, siga estos pasos para actualizar JindoSDK.

Importante

Al actualizar de JindoSDK 4.6.8 o anterior a 4.6.9 o posterior, o a una versión 6.x, cambia la ruta temporal predeterminada que JindoCommitter utiliza para los trabajos. Para evitar la pérdida de datos durante la actualización, inicie sesión en la página Services del clúster y agregue uno de los siguientes elementos de configuración antes de proceder:

  • En la pestaña Configure del servicio Hadoop-Common, agregue el elemento de configuración fs.jdo.committer.allow.concurrent=false a core-site.xml.

  • En la pestaña Configure del servicio Configure, agregue el elemento de configuración spark.hadoop.fs.jdo.committer.allow.concurrent=false a spark-defaults.conf.

Después de actualizar JindoSDK en todos los nodos del clúster, incluidos los nodos Gateway, establezca el parámetro en true.

Paso 1: Preparar el paquete y los scripts de actualización

Nota

Determine la versión de JindoSDK necesaria para la actualización:

  • Acceso directo a OSS/OSS-HDFS:

    Si utiliza JindoSDK únicamente para acceder directamente a Object Storage Service (OSS) u OSS-HDFS, compruebe si su dependencia local de Hadoop es una versión antigua, como una versión anterior a la 2.7. De ser así, podrían requerirse ajustes adicionales de compatibilidad.

  • Uso de servicios semigestionados:

    Si utiliza servicios semigestionados como JindoCache, JindoAuth o JindoFSx, póngase en contacto con el equipo de soporte técnico de Alibaba Cloud EMR para confirmar la compatibilidad de la versión de JindoSDK y garantizar una actualización sin problemas.

  1. Inicie sesión en el nodo maestro del clúster EMR. Para obtener más información, consulte Log on to a cluster.

  2. Descargue el paquete de parches en el directorio principal de emr-user y descomprímalo.

    su - emr-user
    cd /home/emr-user/
    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/resources/emr-taihao/jindosdk-patches.tar.gz
    tar zxf jindosdk-patches.tar.gz
  3. Descargue el paquete de JindoSDK jindosdk-{VERSION}.tar.gz y colóquelo en el directorio descomprimido.

    Este ejemplo actualiza JindoSDK en el clúster a la versión 6.8.2.

    cd jindosdk-patches
    
    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/6.8.2/jindosdk-6.8.2-linux.tar.gz
    
    ls -l

    El directorio jindosdk-patches contiene los siguientes archivos:

    -rwxrwxr-x 1 emr-user emr-user      2439 May 01 00:00 apply_all.sh
    -rwxrwxr-x 1 emr-user emr-user      7315 May 01 00:00 apply.sh
    -rw-rw-r-- 1 emr-user emr-user        40 May 01 00:00 hosts
    -rw-r----- 1 emr-user emr-user xxxxxxxxx May 01 00:00 jindosdk-6.8.2-linux.tar.gz
    -rwxrwxr-x 1 emr-user emr-user      1112 May 01 00:00 revert_all.sh
    -rwxrwxr-x 1 emr-user emr-user      2042 May 01 00:00 revert.sh

Paso 2: Configurar la información de los nodos

  • Configurar manualmente la información de los nodos

    1. Edite el archivo hosts en el paquete de parches.

      vim hosts
    2. Agregue los nombres de host de todos los nodos del clúster, como master-1-1 o core-1-1, con un nombre de host por línea.

      Por ejemplo, el archivo hosts contiene el siguiente contenido:

      master-1-1
      core-1-1
      core-1-2
  • Llenar automáticamente la información de los nodos

    También puede ejecutar el siguiente comando para recuperar toda la información de los nodos. Si el comando no logra llenar el archivo hosts, deberá agregar la información de los nodos manualmente.

    cat  /usr/local/taihao-executor-all/data/cache/.cluster_context | jq --raw-output '.nodes[].hostname.alias[]' > hosts

Paso 3: Ejecutar la actualización

Ejecute el script apply_all.sh para actualizar JindoSDK a la versión especificada.

./apply_all.sh $NEW_JINDOSDK_VERSION  # Run the apply_all.sh script with the specified $NEW_JINDOSDK_VERSION to upgrade JindoSDK to that version.

Por ejemplo, para actualizar JindoSDK en el clúster a la versión 6.8.2:

./apply_all.sh 6.8.2

El script finaliza cuando la salida contiene ### DONE.

>>> updating ...  master-1-1
>>> updating ...  core-1-1
>>> updating ...  core-1-2
### DONE

Paso 4: Modificar la configuración del clúster (para compatibilidad con la autenticación heredada de EMR OSS Ranger)

Si la autenticación de EMR OSS Ranger está habilitada y está actualizando JindoSDK desde EMR v3.51.2/v5.17.2 o anterior a una versión entre 6.5.0 y 6.7.2, podría encontrar problemas de compatibilidad. Se recomienda actualizar JindoSDK a la versión 6.7.3 o posterior y modificar la configuración del clúster de la siguiente manera.

  1. En la página Configure del servicio HADOOP-COMMON, haga clic en la pestaña core-site.xml.

  2. En la pestaña core-site.xml, busque y modifique el siguiente elemento de configuración.

    Parámetro

    Descripción

    fs.jdo.plugin.dir

    Establezca el directorio de carga del plugin en la ruta del plugin de la nueva versión de JindoSDK. Cambie el valor de /opt/apps/RANGER/jindoauth-current/plugins a /opt/apps/JINDOSDK/jindosdk-current/plugins.

Paso 5: Gestionar nodos especiales

  1. Actualice los nodos Gateway creados mediante la CLI de EMR.

    • Si un nodo Gateway se creó en la consola de EMR, ya está cubierto por los pasos anteriores.

    • Si creó un nodo Gateway mediante la CLI de EMR, este existe de forma independiente y debe ejecutar el script de actualización en él manualmente. Además, debe actualizar los nodos elásticos con antelación al inicializarlos.

  2. Reemplace JindoSDK para servicios como Trino, Presto e Impala.

    Para clústeres EMR que ejecutan versiones anteriores a EMR v3.53.0 o v5.19.0, JindoSDK para servicios como Trino, Presto e Impala no se actualiza automáticamente. Debe reemplazar manualmente el archivo JAR de JindoSDK en la ruta plugins de estos servicios con la versión objetivo y reiniciar los servicios para aplicar los cambios.

Paso 6: Verificar la actualización

ls -l /opt/apps/JINDOSDK/jindosdk-current/lib

El siguiente ejemplo muestra la salida después de actualizar de la versión predeterminada 6.2.0 a la 6.8.2.

lrwxrwxrwx 1 emr-user emr-user 64 Apr 12 11:08 jindo-core-6.2.0.jar -> /opt/apps/JINDOSDK/jindosdk-6.8.2-linux/lib/jindo-core-6.8.2.jar
lrwxrwxrwx 1 emr-user emr-user 82 Apr 12 11:08 jindo-core-linux-el7-aarch64-6.2.0.jar -> /opt/apps/JINDOSDK/jindosdk-6.8.2-linux/lib/jindo-core-linux-el7-aarch64-6.8.2.jar
lrwxrwxrwx 1 emr-user emr-user 63 Apr 12 11:08 jindo-sdk-6.2.0.jar -> /opt/apps/JINDOSDK/jindosdk-6.8.2-linux/lib/jindo-sdk-6.8.2.jar
lrwxrwxrwx 1 emr-user emr-user 50 Apr 12 11:08 native -> /opt/apps/JINDOSDK/jindosdk-6.8.2-linux/lib/native
lrwxrwxrwx 1 emr-user emr-user 57 Apr 12 11:08 site-packages -> /opt/apps/JINDOSDK/jindosdk-6.8.2-linux/lib/site-packages

Paso 7: Reiniciar servicios

Nota

Detenga cualquier trabajo (aplicación) de YARN en ejecución, como trabajos de Spark Streaming o Flink, y luego realice un reinicio progresivo por lotes del servicio YARN NodeManager.

Para aplicar la actualización, reinicie servicios como Hive, Presto, Impala, Flink, Ranger, Spark y Zeppelin.

Por ejemplo, para reiniciar el servicio Hive, vaya a la página del servicio Hive de su clúster EMR y seleccione More > Restart en la esquina superior derecha.

Escenario 2: Escalar horizontalmente o crear un clúster

Cuando escala horizontalmente un clúster existente y necesita desplegar una nueva versión de JindoSDK, puede usar una acción de arranque en la consola de EMR para automatizar el proceso. Esto asegura que JindoSDK se actualice correctamente al crear un nuevo clúster o agregar nodos a uno existente. Siga estos pasos para realizar la actualización.

Paso 1: Crear un paquete de actualización de arranque

  1. Ejecute los siguientes comandos para descargar jindosdk-patches.tar.gz, jindosdk-{VERSION}-{PLATFORM}.tar.gz y bootstrap_jindosdk.sh.

    Este ejemplo actualiza JindoSDK en el clúster a la versión 6.8.2.

    mkdir jindo-patch
    
    cd jindo-patch
    
    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/resources/emr-taihao/jindosdk-patches.tar.gz
    
    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/6.8.2/jindosdk-6.8.2-linux.tar.gz
    
    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/resources/emr-taihao/bootstrap_jindosdk.sh
    
    ls -l

    Se devuelve la siguiente salida:

    -rw-r----- 1 hadoop hadoop      xxxx May 01 00:00 bootstrap_jindosdk.sh
    -rw-r----- 1 hadoop hadoop xxxxxxxxx May 01 00:00 jindosdk-6.8.2-linux.tar.gz
    -rw-r----- 1 hadoop hadoop      xxxx May 01 00:00 jindosdk-patches.tar.gz
  2. Ejecute el siguiente comando para crear el paquete de actualización.

    bash bootstrap_jindosdk.sh -gen $NEW_JINDOSDK_VERSION  # Run the bootstrap_jindosdk.sh script with the specified $NEW_JINDOSDK_VERSION to upgrade JindoSDK to that version.
    Nota
    • Para escalar horizontalmente un clúster existente, utilice la opción -gen para generar un paquete de actualización ligero.

    • Para crear un nuevo clúster, utilice la opción -gen-full para generar un paquete de actualización que contenga todo el contenido necesario.

    Por ejemplo, para actualizar JindoSDK a la versión 6.8.2:

    bash bootstrap_jindosdk.sh -gen 6.8.2

    Una vez creado el paquete de actualización, se muestra el siguiente mensaje.

    Generated patch at /home/emr-user/jindo-patch/jindosdk-bootstrap-patches.tar.gz

    Cuando finaliza la compilación, se genera el paquete de parches jindosdk-bootstrap-patches.tar.gz.

Paso 2: Cargar el paquete de arranque

Cargue el paquete de parches y el script de arranque en OSS. Puede usar comandos de Hadoop desde dentro del clúster EMR, o utilizar herramientas como la consola de Alibaba Cloud OSS, ossutil u OSS Browser.

Por ejemplo, las rutas de OSS son oss://<bucket-name>/path/to/bootstrap_jindosdk.sh y oss://<bucket-name>/path/to/jindosdk-bootstrap-patches.tar.gz.

hadoop dfs -mkdir -p oss://<bucket-name>/path/to/patch/

cd /home/hadoop/patch/
hadoop dfs -put jindosdk-bootstrap-patches.tar.gz oss://<bucket-name>/path/to/patch/
hadoop dfs -put bootstrap_jindosdk.sh oss://<bucket-name>/path/to/patch/

hadoop dfs -ls oss://<bucket-name>/path/to/patch/

Se devuelve la siguiente salida:

Found 2 items
-rw-rw-rw-   1       2634 2022-05-13 14:07 oss://<bucket-name>/.../bootstrap_jindosdk.sh
-rw-rw-rw-   1  597342992 2022-05-13 13:41 oss://<bucket-name>/.../jindosdk-bootstrap-patches.tar.gz

Paso 3: Agregar una acción de arranque

Agregue una acción de arranque en la consola de EMR. Para obtener más información, consulte Manage bootstrap actions.

Configure la acción de arranque con los ajustes de la siguiente tabla.

Parámetro

Descripción

Ejemplo

Name

El nombre de la acción de arranque. Por ejemplo, Upgrade JindoSDK.

update_jindosdk

Script location

La ruta de OSS donde se almacena el script. La ruta del script debe tener el formato oss://**/*.sh.

oss:///path/to/patch/bootstrap_jindosdk.sh

Arguments

Los argumentos para el script de la acción de arranque. Estos argumentos especifican los valores de las variables a las que hace referencia el script.

-bootstrap oss:///path/to/patch/jindosdk-bootstrap-patches.tar.gz

Execution scope

Seleccione Cluster.

Cluster

Execution time

Seleccione After Component Startup.

After Component Startup

Failure policy

Seleccione Proceed.

Proceed With Execution

Paso 4: Gestionar nodos especiales

  1. Actualice los nodos Gateway creados mediante la CLI de EMR.

    • Si un nodo Gateway se creó en la consola de EMR, ya está cubierto por los pasos anteriores.

    • Si creó un nodo Gateway mediante la CLI de EMR, este existe de forma independiente y debe ejecutar el script de actualización en él manualmente. Además, debe actualizar los nodos elásticos con antelación al inicializarlos.

  2. Reemplace JindoSDK para servicios como Trino, Presto e Impala.

    Para clústeres EMR que ejecutan versiones anteriores a EMR v3.53.0 o v5.19.0, JindoSDK para servicios como Trino, Presto e Impala no se actualiza automáticamente. Debe reemplazar manualmente el archivo JAR de JindoSDK en la ruta plugins de estos servicios con la versión objetivo y reiniciar los servicios para aplicar los cambios.

Paso 5: Reiniciar servicios

Reinicie los servicios correspondientes para asegurar que carguen las correcciones más recientes.

  • Si está creando un nuevo clúster, reinicie servicios como Hive, Presto, Impala, Flink, Ranger, Spark y Zeppelin.

  • Si está escalando horizontalmente agregando nuevos nodos, reinicie los servicios en esos nodos.

Escenario 3: Revertir JindoSDK

Si su clúster ejecuta EMR v5.6.0 o posterior, o EMR v3.40.0 o posterior, y encuentra problemas durante una actualización y necesita revertir a la versión predeterminada de JindoSDK, siga estos pasos.

Paso 1: Preparar los scripts de reversión

  1. Inicie sesión en el nodo maestro del clúster EMR. Para obtener más información, consulte Log on to a cluster.

  2. Descargue el paquete de parches en el directorio principal de emr-user y descomprímalo.

    su - emr-user
    cd /home/emr-user/
    wget https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/resources/emr-taihao/jindosdk-patches.tar.gz
    tar zxf jindosdk-patches.tar.gz
    cd jindosdk-patches
    ls -l

    Se devuelve la siguiente salida:

    -rwxrwxr-x 1 emr-user emr-user      2439 May 01 00:00 apply_all.sh
    -rwxrwxr-x 1 emr-user emr-user      7315 May 01 00:00 apply.sh
    -rw-rw-r-- 1 emr-user emr-user        40 May 01 00:00 hosts
    -rwxrwxr-x 1 emr-user emr-user      1112 May 01 00:00 revert_all.sh
    -rwxrwxr-x 1 emr-user emr-user      2042 May 01 00:00 revert.sh

Paso 2: Configurar la información de los nodos

  • Configurar manualmente la información de los nodos

    1. Edite el archivo hosts en el paquete de parches.

      vim hosts
    2. Agregue los nombres de host de todos los nodos del clúster, como master-1-1 o core-1-1, con un nombre de host por línea.

      Por ejemplo, el archivo hosts contiene el siguiente contenido:

      master-1-1
      core-1-1
      core-1-2
  • Llenar automáticamente la información de los nodos

    También puede ejecutar el siguiente comando para recuperar toda la información de los nodos. Si el comando no logra llenar el archivo hosts, deberá agregar la información de los nodos manualmente.

    cat  /usr/local/taihao-executor-all/data/cache/.cluster_context | jq --raw-output '.nodes[].hostname.alias[]' > hosts

Paso 3: Ejecutar la reversión

Ejecute el siguiente comando para revertir todos los cambios.

./revert_all.sh

El script finaliza cuando la salida contiene ### DONE.

>>> updating ...  master-1-1
>>> updating ...  core-1-1
>>> updating ...  core-1-2
### DONE

Paso 4: Verificar la reversión

ls -l /opt/apps/JINDOSDK/jindosdk-current/lib

El siguiente ejemplo muestra la salida después de revertir a la versión 6.2.0.

-rw-r--r-- 1 emr-user emr-user  1253740 Apr 24 17:40 jindo-core-6.2.0.jar
-rw-r--r-- 1 emr-user emr-user 13110547 Apr 24 17:40 jindo-core-linux-el7-aarch64-6.2.0.jar
-rw-r--r-- 1 emr-user emr-user  4432227 Apr 24 17:40 jindo-sdk-6.2.0.jar
drwxr-xr-x 2 emr-user emr-user     4096 Apr 24 17:40 native

Paso 5: Gestionar nodos especiales

  1. Actualice los nodos Gateway creados mediante la CLI de EMR.

    • Si un nodo Gateway se creó en la consola de EMR, ya está cubierto por los pasos anteriores.

    • Si creó un nodo Gateway mediante la CLI de EMR, este existe de forma independiente y debe ejecutar el script de actualización en él manualmente. Además, debe actualizar los nodos elásticos con antelación al inicializarlos.

  2. Reemplace JindoSDK para servicios como Trino, Presto e Impala.

    Para clústeres EMR que ejecutan versiones anteriores a EMR v3.53.0 o v5.19.0, JindoSDK para servicios como Trino, Presto e Impala no se revierte automáticamente. Reemplace manualmente el archivo JAR de JindoSDK en la ruta plugins de estos servicios con la versión predeterminada y reinicie los servicios para aplicar los cambios.

Paso 6: Reiniciar servicios

Nota

Detenga cualquier trabajo (aplicación) de YARN en ejecución, como trabajos de Spark Streaming o Flink, y luego realice un reinicio progresivo por lotes del servicio YARN NodeManager.

Para aplicar la reversión, reinicie servicios como Hive, Presto, Impala, Flink, Ranger, Spark y Zeppelin.

Por ejemplo, para reiniciar el servicio Hive, vaya a la página del servicio Hive de su clúster EMR y seleccione More > Restart en la esquina superior derecha.