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.
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=falseke Hadoop-Common > Configuration > core-site.xml.Tambahkan item konfigurasi
spark.hadoop.fs.jdo.committer.allow.concurrent=falseke 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
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.
Masuk ke node master kluster EMR. Untuk informasi selengkapnya, lihat Masuk ke kluster.
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.gzUnduh 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 -lContoh 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
Edit file hosts dalam paket.
vim hostsTambahkan 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
hostsgagal 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.2Ketika ### DONE muncul dalam informasi yang dikembalikan, eksekusi skrip telah selesai.
>> updating ... master-1-1
>>> updating ... core-1-1
>>> updating ... core-1-2
### DONELangkah 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:
Pada halaman Configuration layanan HADOOP-COMMON, klik tab core-sites.xml.
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/pluginsmenjadi/opt/apps/JINDOSDK/jindosdk-current/plugins.
Langkah 5: Penanganan node khusus
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.
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
pluginslayanan-layanan tersebut dengan versi target dan mulai ulang layanan agar perubahan berlaku.
Langkah 6: Verifikasi peningkatan
ls -l /opt/apps/JINDOSDK/jindosdk-current/libJika 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-packagesLangkah 7: Mulai ulang layanan setelah peningkatan
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 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
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 -lInformasi 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.gzJalankan 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.CatatanUntuk memperluas kluster yang sudah ada, gunakan opsi
-genuntuk menghasilkan paket peningkatan ringan.Untuk membuat kluster baru, gunakan opsi
-gen-fulluntuk menghasilkan paket peningkatan dengan konten lengkap.
Sebagai contoh, untuk meningkatkan JindoSDK ke versi 6.8.2:
bash bootstrap_jindosdk.sh -gen 6.8.2Setelah Anda menyiapkan paket peningkatan, informasi berikut dikembalikan:
Generated patch at /home/emr-user/jindo-patch/jindosdk-bootstrap-patches.tar.gzPersiapan selesai, dan paket patch
jindosdk-bootstrap-patches.tar.gztelah 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.gzLangkah 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 |
|
Parameter | Parameter skrip tindakan bootstrap. Parameter ini digunakan untuk menentukan nilai variabel yang dirujuk dalam skrip. |
|
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
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.
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
pluginslayanan-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
Masuk ke node master kluster EMR. Untuk informasi selengkapnya, lihat Masuk ke kluster.
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 -lInformasi 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
Edit file hosts dalam paket.
vim hostsTambahkan 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
hostsgagal 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.shKetika ### DONE muncul dalam informasi yang dikembalikan, eksekusi skrip telah selesai.
>> updating ... master-1-1
>>> updating ... core-1-1
>>> updating ... core-1-2
### DONELangkah 4: Verifikasi rollback
ls -l /opt/apps/JINDOSDK/jindosdk-current/libJika 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 nativeLangkah 5: Penanganan node khusus
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.
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
pluginslayanan-layanan tersebut dengan versi default dan mulai ulang layanan agar perubahan berlaku.
Langkah 6: Mulai ulang layanan
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 di pojok kanan atas.