All Products
Search
Document Center

E-MapReduce:Upgrade dan rollback JindoSDK pada kluster EMR (x86)

Last Updated:Aug 21, 2026

Topik ini menjelaskan cara melakukan upgrade JindoSDK pada kluster EMR berbasis x86 untuk berbagai skenario.

Prasyarat

Anda telah membuat kluster EMR berbasis x86. Untuk informasi selengkapnya, lihat Create a cluster.

Skenario 1: Upgrade kluster yang sudah ada

Jika Anda memiliki kluster EMR yang menjalankan EMR v5.6.0 atau versi lebih baru, atau EMR v3.40.0 atau versi lebih baru, dan perlu menyelesaikan masalah JindoData yang diketahui atau menggunakan fitur JindoSDK terbaru, ikuti langkah-langkah berikut untuk melakukan upgrade JindoSDK.

Penting

Saat Anda melakukan upgrade dari JindoSDK 4.6.8 atau versi sebelumnya ke 4.6.9 atau versi lebih baru, atau ke versi 6.x, path temporary default yang digunakan JindoCommitter untuk pekerjaan akan berubah. Untuk mencegah kehilangan data selama upgrade, login ke halaman Services kluster dan tambahkan salah satu item konfigurasi berikut sebelum upgrade:

  • Pada tab Configure layanan Hadoop-Common, tambahkan item konfigurasi fs.jdo.committer.allow.concurrent=false ke file core-site.xml.

  • Pada tab Configure layanan Configure, tambahkan item konfigurasi spark.hadoop.fs.jdo.committer.allow.concurrent=false ke file spark-defaults.conf.

Setelah Anda melakukan upgrade JindoSDK di semua node dalam kluster, termasuk node Gateway, atur parameter tersebut menjadi true.

Langkah 1: Siapkan paket dan skrip upgrade

Catatan

Tentukan versi JindoSDK yang diperlukan untuk upgrade:

  • Akses langsung ke OSS/OSS-HDFS:

    Jika Anda hanya menggunakan JindoSDK untuk mengakses langsung Object Storage Service (OSS) atau OSS-HDFS, periksa apakah dependensi Hadoop lokal Anda merupakan versi lama, misalnya versi sebelum 2.7. Jika demikian, penyesuaian kompatibilitas tambahan mungkin diperlukan.

  • Penggunaan layanan semi-managed:

    Jika Anda menggunakan layanan semi-managed seperti JindoCache, JindoAuth, atau JindoFSx, hubungi tim dukungan teknis Alibaba Cloud EMR untuk memastikan kompatibilitas versi JindoSDK dan memastikan proses upgrade berjalan lancar.

  1. Login ke node master kluster EMR. Untuk informasi selengkapnya, lihat Log on to a cluster.

  2. Unduh paket patch ke direktori home emr-user dan ekstrak paket tersebut.

    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. Unduh paket JindoSDK jindosdk-{VERSION}.tar.gz dan letakkan di direktori hasil ekstraksi.

    Contoh ini melakukan upgrade JindoSDK di kluster ke versi 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

    Direktori jindosdk-patches berisi file-file berikut:

    -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

Langkah 2: Konfigurasikan informasi node

  • Konfigurasi informasi node secara manual

    1. Edit file hosts dalam paket patch.

      vim hosts
    2. Tambahkan hostname semua node dalam kluster, seperti master-1-1 atau core-1-1, dengan satu hostname per baris.

      Sebagai contoh, file hosts berisi konten berikut:

      master-1-1
      core-1-1
      core-1-2
  • Isi informasi node secara otomatis

    Anda juga dapat menjalankan perintah berikut untuk mengambil semua informasi node. Jika perintah gagal mengisi file hosts, Anda harus menambahkan informasi node secara manual.

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

Langkah 3: Jalankan upgrade

Jalankan skrip apply_all.sh untuk meng-upgrade JindoSDK ke versi yang ditentukan.

./apply_all.sh $NEW_JINDOSDK_VERSION  # Jalankan skrip apply_all.sh dengan $NEW_JINDOSDK_VERSION yang ditentukan untuk meng-upgrade JindoSDK ke versi tersebut.

Sebagai contoh, untuk meng-upgrade JindoSDK di kluster ke versi 6.8.2:

./apply_all.sh 6.8.2

Skrip selesai ketika output berisi ### DONE.

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

Langkah 4: Modifikasi konfigurasi kluster (untuk kompatibilitas dengan autentikasi EMR OSS Ranger versi lama)

Jika autentikasi EMR OSS Ranger diaktifkan dan Anda melakukan upgrade JindoSDK dari EMR v3.51.2/v5.17.2 atau versi sebelumnya ke versi antara 6.5.0 dan 6.7.2, Anda mungkin mengalami masalah kompatibilitas. Kami menyarankan untuk meng-upgrade JindoSDK ke versi 6.7.3 atau lebih baru dan memodifikasi konfigurasi kluster sebagai berikut.

  1. Pada halaman Configure layanan HADOOP-COMMON, klik tab core-site.xml.

  2. Pada tab core-site.xml, temukan dan modifikasi item konfigurasi berikut.

    Parameter

    Deskripsi

    fs.jdo.plugin.dir

    Atur direktori pemuatan plugin ke path plugin versi JindoSDK baru. Ubah nilai dari /opt/apps/RANGER/jindoauth-current/plugins menjadi /opt/apps/JINDOSDK/jindosdk-current/plugins.

Langkah 5: Atasi node khusus

  1. Upgrade node Gateway yang dibuat menggunakan CLI EMR.

    • Jika node Gateway dibuat di konsol EMR, langkah-langkah sebelumnya sudah mencakupnya.

    • Jika Anda membuat node Gateway menggunakan CLI EMR, node tersebut berdiri sendiri dan Anda harus menjalankan skrip upgrade secara manual. Selain itu, Anda harus melakukan upgrade node elastis terlebih dahulu saat menginisialisasinya.

  2. Ganti JindoSDK untuk layanan seperti Trino, Presto, dan Impala.

    Untuk kluster EMR yang menjalankan versi sebelum EMR v3.53.0 atau v5.19.0, JindoSDK untuk layanan seperti Trino, Presto, dan Impala tidak di-upgrade secara otomatis. Anda harus mengganti file JAR JindoSDK secara manual di path plugins layanan tersebut dengan versi target dan restart layanan agar perubahan diterapkan.

Langkah 6: Verifikasi upgrade

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

Contoh berikut menunjukkan output setelah melakukan upgrade dari versi default 6.2.0 ke 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

Langkah 7: Mulai ulang layanan

Catatan

Hentikan semua pekerjaan YARN (aplikasi) yang sedang berjalan, seperti Spark Streaming atau pekerjaan Flink, lalu lakukan restart bergulir batch untuk layanan YARN NodeManager.

Untuk menerapkan upgrade, restart layanan seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin.

Sebagai contoh, untuk merestart layanan Hive, buka halaman layanan Hive di kluster EMR Anda dan pilih More > Restart di pojok kanan atas.

Skenario 2: Scale out atau buat kluster

Saat Anda melakukan scale out kluster yang sudah ada dan perlu menyebarkan versi JindoSDK baru, Anda dapat menggunakan tindakan bootstrap di konsol EMR untuk mengotomatiskan proses ini. Hal ini memastikan bahwa JindoSDK berhasil di-upgrade saat Anda membuat kluster baru atau menambahkan node ke kluster yang sudah ada. Ikuti langkah-langkah berikut untuk melakukan upgrade.

Langkah 1: Buat paket upgrade bootstrap

  1. Jalankan perintah berikut untuk mengunduh jindosdk-patches.tar.gz, jindosdk-{VERSION}-{PLATFORM}.tar.gz, dan bootstrap_jindosdk.sh.

    Contoh ini melakukan upgrade JindoSDK di kluster ke versi 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

    Output berikut dikembalikan:

    -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. Jalankan perintah berikut untuk membuat paket upgrade.

    bash bootstrap_jindosdk.sh -gen $NEW_JINDOSDK_VERSION  # Jalankan skrip bootstrap_jindosdk.sh dengan $NEW_JINDOSDK_VERSION yang ditentukan untuk meng-upgrade JindoSDK ke versi tersebut.
    Catatan
    • Untuk melakukan scale out kluster yang sudah ada, gunakan opsi -gen untuk menghasilkan paket upgrade ringan.

    • Untuk membuat kluster baru, gunakan opsi -gen-full untuk menghasilkan paket upgrade yang berisi semua konten yang diperlukan.

    Sebagai contoh, untuk meng-upgrade JindoSDK ke versi 6.8.2:

    bash bootstrap_jindosdk.sh -gen 6.8.2

    Setelah paket upgrade dibuat, pesan berikut ditampilkan.

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

    Saat pembuatan selesai, paket patch jindosdk-bootstrap-patches.tar.gz dihasilkan.

Langkah 2: Unggah paket bootstrap

Unggah paket patch dan skrip bootstrap ke OSS. Anda dapat menggunakan perintah Hadoop dari dalam kluster EMR, atau menggunakan alat seperti konsol OSS Alibaba Cloud, ossutil, atau OSS Browser.

Sebagai contoh, path OSS adalah oss://<bucket-name>/path/to/bootstrap_jindosdk.sh dan 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/

Output berikut dikembalikan:

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

Langkah 3: Tambahkan tindakan bootstrap

Tambahkan tindakan bootstrap di konsol EMR. Untuk informasi selengkapnya, lihat Manage bootstrap actions.

Konfigurasikan tindakan bootstrap dengan pengaturan pada tabel berikut.

Parameter

Deskripsi

Contoh

Name

Nama tindakan bootstrap. Misalnya, Upgrade JindoSDK.

update_jindosdk

Script location

Path OSS tempat skrip disimpan. Path skrip harus dalam format oss://**/*.sh.

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

Arguments

Argumen untuk skrip tindakan bootstrap. Argumen ini menentukan nilai variabel yang dirujuk oleh skrip.

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

Execution scope

Pilih Cluster.

Cluster

Execution time

Pilih After Component Startup.

After Component Startup

Failure policy

Pilih Proceed.

Proceed With Execution

Langkah 4: Atasi node khusus

  1. Upgrade node Gateway yang dibuat menggunakan CLI EMR.

    • Jika node Gateway dibuat di konsol EMR, langkah-langkah sebelumnya sudah mencakupnya.

    • Jika Anda membuat node Gateway menggunakan CLI EMR, node tersebut berdiri sendiri dan Anda harus menjalankan skrip upgrade secara manual. Selain itu, Anda harus melakukan upgrade node elastis terlebih dahulu saat menginisialisasinya.

  2. Ganti JindoSDK untuk layanan seperti Trino, Presto, dan Impala.

    Untuk kluster EMR yang menjalankan versi sebelum EMR v3.53.0 atau v5.19.0, JindoSDK untuk layanan seperti Trino, Presto, dan Impala tidak di-upgrade secara otomatis. Anda harus mengganti file JAR JindoSDK secara manual di path plugins layanan tersebut dengan versi target dan restart layanan agar perubahan diterapkan.

Langkah 5: Restart layanan

Restart layanan yang relevan untuk memastikan mereka memuat perbaikan terbaru.

  • Jika Anda membuat kluster baru, restart layanan seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin.

  • Jika Anda melakukan scale out dengan menambahkan node baru, restart layanan pada node tersebut.

Skenario 3: Rollback JindoSDK

Jika kluster Anda menjalankan EMR v5.6.0 atau versi lebih baru, atau EMR v3.40.0 atau versi lebih baru, dan Anda mengalami masalah selama upgrade serta perlu melakukan rollback ke versi JindoSDK default, ikuti langkah-langkah berikut.

Langkah 1: Siapkan skrip rollback

  1. Login ke node master kluster EMR. Untuk informasi selengkapnya, lihat Log on to a cluster.

  2. Unduh paket patch ke direktori home emr-user dan ekstrak paket tersebut.

    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

    Output berikut dikembalikan:

    -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

Langkah 2: Konfigurasikan informasi node

  • Konfigurasi informasi node secara manual

    1. Edit file hosts dalam paket patch.

      vim hosts
    2. Tambahkan hostname semua node dalam kluster, seperti master-1-1 atau core-1-1, dengan satu hostname per baris.

      Sebagai contoh, file hosts berisi konten berikut:

      master-1-1
      core-1-1
      core-1-2
  • Isi informasi node secara otomatis

    Anda juga dapat menjalankan perintah berikut untuk mengambil semua informasi node. Jika perintah gagal mengisi file hosts, Anda harus menambahkan informasi node secara manual.

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

Langkah 3: Jalankan rollback

Jalankan perintah berikut untuk membatalkan semua perubahan.

./revert_all.sh

Skrip selesai ketika output berisi ### DONE.

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

Langkah 4: Verifikasi rollback

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

Contoh berikut menunjukkan output setelah melakukan rollback ke versi 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

Langkah 5: Atasi node khusus

  1. Upgrade node Gateway yang dibuat menggunakan CLI EMR.

    • Jika node Gateway dibuat di konsol EMR, langkah-langkah sebelumnya sudah mencakupnya.

    • Jika Anda membuat node Gateway menggunakan CLI EMR, node tersebut berdiri sendiri dan Anda harus menjalankan skrip upgrade secara manual. Selain itu, Anda harus melakukan upgrade node elastis terlebih dahulu saat menginisialisasinya.

  2. Ganti JindoSDK untuk layanan seperti Trino, Presto, dan Impala.

    Untuk kluster EMR yang menjalankan versi sebelum EMR v3.53.0 atau v5.19.0, JindoSDK untuk layanan seperti Trino, Presto, dan Impala tidak di-rollback secara otomatis. Ganti secara manual file JAR JindoSDK di path plugins layanan tersebut dengan versi default, lalu restart layanan agar perubahan diterapkan.

Langkah 6: Restart layanan

Catatan

Hentikan semua pekerjaan YARN (aplikasi) yang sedang berjalan, seperti Spark Streaming atau pekerjaan Flink, lalu lakukan restart bergulir batch untuk layanan YARN NodeManager.

Untuk menerapkan rollback, restart layanan seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin.

Sebagai contoh, untuk merestart layanan Hive, buka halaman layanan Hive di kluster EMR Anda dan pilih More > Restart di pojok kanan atas.