全部产品
Search
文档中心

E-MapReduce:Proses peningkatan dan rollback JindoSDK kluster EMR (X86)

更新时间:Nov 10, 2025

Topik ini menjelaskan langkah-langkah terperinci untuk meningkatkan JindoSDK dalam berbagai skenario pada kluster EMR dengan arsitektur X86.

Prasyarat

Anda telah membuat kluster EMR dengan arsitektur X86. Untuk informasi selengkapnya, lihat Buat kluster.

Skenario 1: Tingkatkan JindoSDK di kluster yang sudah ada

Jika Anda telah membuat kluster EMR V3.40.0 atau versi minor yang lebih baru, atau kluster EMR V5.6.0 atau versi minor yang lebih baru, dan mengalami masalah Masalah yang diketahui pada versi JindoData selama penggunaan, atau Anda perlu menggunakan fitur baru JindoSDK, Anda dapat meningkatkan JindoSDK dengan melakukan operasi berikut.

Penting

Jika Anda meningkatkan JindoSDK dari versi 4.6.8 atau lebih lama ke versi 4.6.9 atau lebih baru atau ke versi seri 6.X, jalur pekerjaan sementara default yang digunakan oleh JindoCommitter akan berubah. Untuk menghindari kehilangan data selama peningkatan, masuk ke halaman Cluster Services kluster sebelum peningkatan dan ubah salah satu konfigurasi berikut:

  • Tambahkan item konfigurasi fs.jdo.committer.allow.concurrent=false ke Hadoop-Common > Configuration > core-site.xml.

  • Tambahkan item konfigurasi spark.hadoop.fs.jdo.committer.allow.concurrent=false ke Spark > Configuration > spark-defaults.conf.

Setelah JindoSDK ditingkatkan di semua node dalam kluster Anda, termasuk node Gateway, atur parameter di atas menjadi true.

Langkah 1: Siapkan paket perangkat lunak dan skrip peningkatan

Catatan

Tentukan versi JindoSDK yang ingin Anda tingkatkan:

  • Akses langsung ke OSS/OSS-HDFS:

    Jika Anda hanya menggunakan JindoSDK untuk mengakses OSS atau OSS-HDFS secara langsung, periksa apakah versi dependensi Hadoop lokal bersifat khusus (misalnya lebih rendah dari 2.7). Jika versinya rendah, pemrosesan kompatibilitas tambahan mungkin diperlukan.

  • Menggunakan layanan semi-terkelola:

    Jika Anda menggunakan layanan semi-terkelola seperti JindoCache, JindoAuth, atau JindoFSx, kami menyarankan agar Anda menghubungi tim dukungan teknis Alibaba Cloud EMR untuk mengonfirmasi kompatibilitas versi JindoSDK guna memastikan proses peningkatan berjalan lancar.

  1. Masuk ke node master kluster EMR. Untuk informasi selengkapnya, lihat Masuk ke kluster.

  2. Unduh paket patch ke direktori home pengguna 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 perangkat lunak jindosdk-{VERSION}.tar.gz JindoSDK ke direktori jindosdk-patches yang Anda peroleh pada langkah sebelumnya.

    Dalam contoh ini, JindoSDK ditingkatkan 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

    Contoh isi direktori jindosdk-patches:

    -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 untuk peningkatan

  • Konfigurasi manual

    1. Edit file hosts dalam paket.

      vim hosts
    2. Tambahkan hostname, seperti master-1-1 dan core-1-1, dari semua node dalam kluster ke file hosts. Masukkan satu hostname per baris.

      Contoh isi file:

      master-1-1
      core-1-1
      core-1-2
  • Konfigurasi otomatis

    Anda juga dapat menjalankan perintah berikut untuk mendapatkan informasi semua node. Jika file hosts gagal diperoleh, Anda perlu melengkapinya secara manual.

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

Langkah 3: Lakukan peningkatan

Jalankan skrip apply_all.sh untuk meningkatkan JindoSDK ke versi tertentu.

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

Sebagai contoh, untuk meningkatkan JindoSDK dalam kluster ke versi 6.8.2:

./apply_all.sh 6.8.2

Ketika ### DONE muncul dalam informasi yang dikembalikan, eksekusi skrip telah selesai.

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

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

Jika autentikasi EMR OSS Ranger diaktifkan dan Anda meningkatkan JindoSDK dari versi yang lebih lama atau sama dengan EMR-3.51.2/EMR-5.17.2 ke versi dalam rentang [6.5.0, 6.7.2], masalah kompatibilitas mungkin terjadi. Kami menyarankan agar Anda meningkatkan JindoSDK ke versi 6.7.3 atau lebih baru dan mengubah konfigurasi kluster dengan melakukan operasi berikut:

  1. Pada halaman Configuration layanan HADOOP-COMMON, klik tab core-sites.xml.

  2. Pada halaman core-sites.xml, cari dan ubah item konfigurasi berikut:

    Parameter

    Deskripsi

    fs.jdo.plugin.dir

    Ubah direktori pemuatan plugin ke jalur plugin di bawah JindoSDK versi baru, yaitu ubah /opt/apps/RANGER/jindoauth-current/plugins menjadi /opt/apps/JINDOSDK/jindosdk-current/plugins.

Langkah 5: Penanganan node khusus

  1. Tingkatkan node Gateway yang dibuat melalui CLI EMR.

    • Jika node Gateway dibuat melalui konsol EMR, langkah-langkah di atas telah mencakup konten terkait.

    • Jika node Gateway dibuat melalui CLI EMR, karena node-node ini dibuat secara independen, Anda perlu menjalankan skrip peningkatan secara manual untuk menyelesaikan peningkatan. Selain itu, saat node elastis diinisialisasi, Anda harus menyelesaikan peningkatan terlebih dahulu melalui skrip.

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

    Untuk versi yang lebih lama dari EMR-3.53.0 dan versi yang lebih lama dari EMR-5.19.0 (tidak termasuk), JindoSDK yang digunakan oleh layanan seperti Trino, Presto, dan Impala tidak akan ditingkatkan secara otomatis dalam langkah-langkah di atas. Anda perlu mengganti paket JAR JindoSDK secara manual di jalur plugins layanan-layanan tersebut dengan versi target dan mulai ulang layanan agar perubahan berlaku.

Langkah 6: Verifikasi peningkatan

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

Jika Anda berhasil meningkatkan JindoSDK dari versi default 6.2.0 ke versi 6.8.2, informasi berikut dikembalikan:

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 setelah peningkatan

Catatan

Untuk pekerjaan yang berjalan di YARN, seperti pekerjaan Spark Streaming atau Flink, lakukan restart bergulir pada YARN NodeManager setelah pekerjaan berhenti.

Mulai ulang layanan terkait, seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin, agar peningkatan berlaku.

Sebagai contoh, pada halaman layanan Hive kluster EMR, pilih More> > Restart di pojok kanan atas.

Skenario 2: Perluas kluster yang sudah ada atau buat kluster baru

Jika Anda ingin meningkatkan JindoSDK saat membuat kluster atau memperluas kluster yang sudah ada, Anda dapat menambahkan tindakan bootstrap di konsol EMR. Hal ini memastikan bahwa JindoSDK dapat ditingkatkan ke versi terbaru. Untuk meningkatkan JindoSDK secara efisien dan akurat, lakukan operasi berikut:

Langkah 1: Siapkan paket peningkatan bootstrap

  1. Jalankan perintah berikut untuk mengunduh paket jindosdk-patches.tar.gz dan jindosdk-{VERSION}-{PLATFORM}.tar.gz serta skrip bootstrap_jindosdk.sh:

    Dalam contoh ini, JindoSDK ditingkatkan 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

    Informasi 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 menyiapkan paket peningkatan:

    bash bootstrap_jindosdk.sh -gen $NEW_JINDOSDK_VERSION  # Jalankan skrip bootstrap_jindosdk.sh dengan $NEW_JINDOSDK_VERSION yang ditentukan untuk meningkatkan ke versi JindoSDK tersebut.
    Catatan
    • Untuk memperluas kluster yang sudah ada, gunakan opsi -gen untuk menghasilkan paket peningkatan ringan.

    • Untuk membuat kluster baru, gunakan opsi -gen-full untuk menghasilkan paket peningkatan dengan konten lengkap.

    Sebagai contoh, untuk meningkatkan JindoSDK ke versi 6.8.2:

    bash bootstrap_jindosdk.sh -gen 6.8.2

    Setelah Anda menyiapkan paket peningkatan, informasi berikut dikembalikan:

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

    Persiapan selesai, dan paket patch jindosdk-bootstrap-patches.tar.gz telah dihasilkan.

Langkah 2: Unggah paket peningkatan bootstrap

Unggah paket patch dan skrip bootstrap ke Object Storage Service (OSS). Anda dapat mengunggah paket patch dan skrip untuk kluster EMR dengan menjalankan perintah Hadoop, menggunakan OSSUtils atau OSS Browser, atau di konsol OSS.

Sebagai contoh, unggah ke jalur OSS 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/

Informasi 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 Kelola tindakan bootstrap.

Tabel berikut menjelaskan parameter yang dapat Anda konfigurasikan untuk menambahkan tindakan bootstrap.

Parameter

Deskripsi

Contoh

Nama

Nama tindakan bootstrap yang ingin Anda tambahkan.

update_jindosdk

Lokasi Skrip

Jalur OSS tempat file skrip berada. Jalur skrip harus dalam format oss://**/*.sh.

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

Parameter

Parameter skrip tindakan bootstrap. Parameter ini digunakan untuk menentukan nilai variabel yang dirujuk dalam skrip.

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

Cakupan Eksekusi

Pilih Cluster.

Kluster

Waktu Eksekusi

Pilih After Component Startup.

Setelah Komponen Dimulai

Kebijakan Kegagalan

Pilih Proceed With Execution.

Lanjutkan eksekusi

Langkah 4: Penanganan node khusus

  1. Tingkatkan node Gateway yang dibuat melalui CLI EMR.

    • Jika node Gateway dibuat melalui konsol EMR, langkah-langkah di atas telah mencakup konten terkait.

    • Jika node Gateway dibuat melalui CLI EMR, karena node-node ini dibuat secara independen, Anda perlu menjalankan skrip peningkatan secara manual untuk menyelesaikan peningkatan. Selain itu, saat node elastis diinisialisasi, Anda harus menyelesaikan peningkatan terlebih dahulu melalui skrip.

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

    Untuk versi yang lebih lama dari EMR-3.53.0 dan versi yang lebih lama dari EMR-5.19.0 (tidak termasuk), JindoSDK yang digunakan oleh layanan seperti Trino, Presto, dan Impala tidak akan ditingkatkan secara otomatis dalam langkah-langkah di atas. Anda perlu mengganti paket JAR JindoSDK secara manual di jalur plugins layanan-layanan tersebut dengan versi terbaru dan mulai ulang layanan agar perubahan berlaku.

Langkah 5: Mulai ulang layanan

Mulai ulang layanan terkait agar peningkatan berlaku.

  • Setelah Anda membuat kluster, mulai ulang layanan terkait, seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin.

  • Setelah Anda memperluas kluster yang sudah ada, mulai ulang layanan terkait untuk node baru, seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin.

Skenario 3: Rollback JindoSDK ke versi default

Untuk kluster EMR V3.40.0 atau versi minor yang lebih baru, atau kluster EMR V5.6.0 atau versi minor yang lebih baru, jika Anda mengalami masalah selama peningkatan JindoSDK, Anda dapat melakukan operasi berikut untuk melakukan rollback JindoSDK ke versi default:

Langkah 1: Siapkan skrip rollback

  1. Masuk ke node master kluster EMR. Untuk informasi selengkapnya, lihat Masuk ke kluster.

  2. Simpan paket patch yang diunduh di direktori HOME pengguna 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

    Informasi 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 untuk rollback

  • Konfigurasi manual

    1. Edit file hosts dalam paket.

      vim hosts
    2. Tambahkan hostname, seperti master-1-1 dan core-1-1, dari semua node dalam kluster ke file hosts. Masukkan satu hostname per baris.

      Contoh isi file:

      master-1-1
      core-1-1
      core-1-2
  • Konfigurasi otomatis

    Anda juga dapat menjalankan perintah berikut untuk mendapatkan informasi semua node. Jika file hosts gagal diperoleh, Anda perlu melengkapinya secara manual.

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

Langkah 3: Lakukan rollback

Jalankan skrip berikut untuk membatalkan semua perubahan:

./revert_all.sh

Ketika ### DONE muncul dalam informasi yang dikembalikan, eksekusi skrip telah selesai.

>> 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

Jika Anda berhasil melakukan rollback JindoSDK ke versi 6.2.0, informasi berikut dikembalikan:

-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: Penanganan node khusus

  1. Tingkatkan node Gateway yang dibuat melalui CLI EMR.

    • Jika node Gateway dibuat melalui konsol EMR, langkah-langkah di atas telah mencakup konten terkait.

    • Jika node Gateway dibuat melalui CLI EMR, karena node-node ini dibuat secara independen, Anda perlu menjalankan skrip peningkatan secara manual untuk menyelesaikan peningkatan. Selain itu, saat node elastis diinisialisasi, Anda harus menyelesaikan peningkatan terlebih dahulu melalui skrip.

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

    Untuk versi yang lebih lama dari EMR-3.53.0 dan versi yang lebih lama dari EMR-5.19.0 (tidak termasuk), JindoSDK yang digunakan oleh layanan seperti Trino, Presto, dan Impala tidak akan ditingkatkan secara otomatis dalam langkah-langkah di atas. Anda perlu mengganti paket JAR JindoSDK secara manual di jalur plugins layanan-layanan tersebut dengan versi default dan mulai ulang layanan agar perubahan berlaku.

Langkah 6: Mulai ulang layanan

Catatan

Untuk pekerjaan yang berjalan di YARN, seperti pekerjaan Spark Streaming atau Flink, lakukan restart bergulir pada YARN NodeManager setelah pekerjaan berhenti.

Mulai ulang layanan terkait, seperti Hive, Presto, Impala, Flink, Ranger, Spark, dan Zeppelin, agar rollback berlaku.

Sebagai contoh, pada halaman layanan Hive kluster EMR, pilih More> > Restart di pojok kanan atas.