Memecahkan masalah Apache Spark menggunakan Azure HDInsight

Pelajari tentang masalah utama dan resolusi mereka ketika bekerja dengan payload Apache Spark di Apache Ambari.

Bagaimana cara mengonfigurasi aplikasi Apache Spark dengan menggunakan Apache Ambari pada kluster?

Nilai konfigurasi spark dapat disetel untuk membantu menghindari pengecualian aplikasi Apache SparkOutofMemoryError. Langkah-langkah berikut ini memperlihatkan nilai konfigurasi Spark default di Azure HDInsight:

  1. Masuk ke Ambari pada https://CLUSTERNAME.azurehdidnsight.net dengan info masuk kluster Anda. Layar awal menampilkan dasbor gambaran umum. Ada sedikit perbedaan kosmetik antara HDInsight 3.6 dan 4.0.

  2. Menavigasi ke Spark2 > Configs.

    Pilih tab Konfigurasi

  3. Dalam daftar konfigurasi, pilih dan perluas Custom-spark2-defaults.

  4. Cari pengaturan nilai yang perlu Anda sesuaikan, seperti spark.executor.memory. Dalam hal ini, nilai 9728m terlalu tinggi.

    Memilih custom-spark-defaults

  5. Atur nilai ke pengaturan yang direkomendasikan. Nilai 2048m direkomendasikan untuk pengaturan ini.

  6. Simpan nilai, lalu simpan konfigurasi. Pilih Simpan.

    Mengubah nilai menjadi 2048m

    Tulis catatan tentang perubahan konfigurasi, lalu pilih Simpan.

    Masukkan catatan tentang perubahan yang Anda buat

    Anda akan diberi tahu jika ada konfigurasi yang perlu diperhatikan. Perhatikan item, lalu pilih Tetap Lanjutkan.

    Pilih Tetap Lanjutkan

  7. Setiap kali konfigurasi disimpan, Anda akan diminta untuk memulai ulang layanan. Pilih Hidupkan ulang.

    Pilih Hidupkan ulang

    Konfirmasikan restart.

    Pilih Konfirmasi Mulai Ulang Semua

    Anda dapat meninjau proses yang sedang berjalan.

    Tinjau proses yang sedang berjalan

  8. Anda dapat menambahkan konfigurasi. Dalam daftar konfigurasi, pilih Custom-spark2-defaults, lalu pilih Tambahkan Properti.

    Pilih tambahkan properti

  9. Tentukan properti baru. Anda bisa menentukan satu properti dengan menggunakan kotak dialog untuk pengaturan tertentu seperti tipe data. Atau, Anda dapat menentukan beberapa properti dengan menggunakan satu definisi per baris.

    Dalam contoh ini, properti spark.driver.memory didefinisikan dengan nilai 4g.

    Tentukan properti baru

  10. Simpan konfigurasi, lalu mulai ulang layanan seperti yang dijelaskan dalam langkah 6 dan 7.

Perubahan ini adalah kluster secara luas tetapi dapat ditimpa ketika Anda mengirimkan pekerjaan Spark.

Bagaimana cara mengonfigurasi aplikasi Apache Spark dengan menggunakan Jupyter Notebook pada kluster?

Di sel pertama Buku Catatan Jupyter, setelah direktif %%mengonfigurasi, tentukan konfigurasi Spark dalam format JSON yang valid. Mengubah nilai aktual seperlunya:

Menambahkan konfigurasi

Bagaimana cara Saya mengonfigurasi aplikasi Apache Spark dengan menggunakan Apache Livy pada kluster?

Kirimkan aplikasi Spark ke Livy dengan menggunakan klien REST seperti cURL. Gunakan perintah yang mirip dengan yang berikut ini. Mengubah nilai aktual seperlunya:

curl -k --user 'username:password' -v -H 'Content-Type: application/json' -X POST -d '{ "file":"wasb://container@storageaccountname.blob.core.windows.net/example/jars/sparkapplication.jar", "className":"com.microsoft.spark.application", "numExecutors":4, "executorMemory":"4g", "executorCores":2, "driverMemory":"8g", "driverCores":4}'  

Bagaimana cara mengonfigurasikan aplikasi Apache Spark dengan menggunakan spark-submit pada kluster?

Luncurkan spark-shell dengan menggunakan perintah yang mirip dengan yang berikut ini. Ubah nilai aktual konfigurasi seperlunya:

spark-submit --master yarn-cluster --class com.microsoft.spark.application --num-executors 4 --executor-memory 4g --executor-cores 2 --driver-memory 8g --driver-cores 4 /home/user/spark/sparkapplication.jar

Bacaan tambahan

Apache Spark pengajuan pekerjaan pada kluster HDInsight

Langkah berikutnya

Jika Anda tidak menemukan masalah atau tidak dapat menyelesaikan masalah, kunjungi salah satu saluran berikut untuk mendapatkan dukungan lebih lanjut: