Rumah >Java >javaTutorial >Bagaimanakah fail JAR ditambahkan pada kerja Spark menggunakan Spark-Submit, dan apakah pilihan serta pertimbangan berbeza untuk berbuat demikian?

Bagaimanakah fail JAR ditambahkan pada kerja Spark menggunakan Spark-Submit, dan apakah pilihan serta pertimbangan berbeza untuk berbuat demikian?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-16 17:41:03797semak imbas

How are JAR files added to a Spark job using Spark-Submit,  and what are the different options and considerations for doing so?

Menambah Fail JAR pada Kerja Spark dengan Spark-Submit

Apabila menggunakan Spark-Submit, terdapat beberapa pilihan untuk menambah fail JAR pada kerja Spark, setiap satu dengan implikasinya sendiri untuk laluan kelas, pengedaran fail dan keutamaan.

Kesan ClassPath

Spark-Submit mempengaruhi ClassPaths melalui pilihan ini:

  • spark.driver.extraClassPath atau --driver-class-path: Menentukan laluan kelas tambahan untuk nod pemacu.
  • spark.executor.extraClassPath: Menentukan laluan kelas tambahan untuk nod pekerja.

Untuk memasukkan fail pada kedua-dua ClassPaths, ia perlu dinyatakan dalam kedua-dua bendera.

Pengagihan Fail

Pengedaran fail bergantung pada mod pelaksanaan:

  • Mod pelanggan: Spark mengedarkan fail ke nod pekerja melalui pelayan HTTP.
  • Mod Kluster: Spark tidak mengedarkan fail dan anda mesti menyediakannya secara manual kepada semua nod pekerja melalui HDFS atau storan kongsi lain.

Format URI yang Diterima

Spark-Submit menyokong awalan URI berikut untuk pengedaran fail:

  • fail:: Disediakan oleh pelayan HTTP pemacu.
  • hdfs:, http:, https:, ftp:: Ditarik daripada URI yang ditentukan.
  • local:: Mestilah fail setempat pada setiap nod pekerja.

Pilihan Terjejas

Pilihan yang disebut dalam soalan mempengaruhi pengendalian fail JAR seperti berikut:

  • --jar dan SparkContext.addJar: Pilihan setara yang tidak menambah JAR pada ClassPaths.
  • SparkContext.addFile: Digunakan untuk fail arbitrari yang bukan kebergantungan masa jalan.
  • --conf spark.driver.extraClassPath atau - -driver-class-path: Alias ​​untuk pengubahsuaian ClassPath pemandu.
  • --conf spark.driver.extraLibraryPath atau --driver-library-path: Alias ​​untuk laluan perpustakaan pemandu.
  • -- conf spark.executor.extraClassPath: Digunakan untuk kebergantungan masa jalan yang tidak boleh disertakan dalam JAR über.
  • --conf spark.executor.extraLibraryPath: Menentukan pilihan java.library.path JVM.

Keutamaan

Sifat yang ditetapkan terus pada SparkConf mempunyai keutamaan tertinggi, diikuti dengan bendera Spark-Submit dan kemudian pilihan dalam spark-defaults.conf. Oleh itu, sebarang nilai yang ditetapkan dalam kod akan mengatasi bendera atau pilihan yang sepadan.

Menambah Fail JAR Serentak

Dalam mod klien, adalah selamat untuk menambah fail JAR menggunakan ketiga-tiga pilihan utama:

spark-submit --jars additional1.jar,additional2.jar \
  --driver-class-path additional1.jar:additional2.jar \
  --conf spark.executor.extraClassPath=additional1.jar:additional2.jar \
  --class MyClass main-application.jar

Walau bagaimanapun, dalam mod kluster, anda hanya perlu menambah fail menggunakan --jars dan mengedarkannya sendiri ke nod pekerja secara manual. Argumen berlebihan seperti menghantar fail JAR ke --driver-library-path harus dielakkan.

Atas ialah kandungan terperinci Bagaimanakah fail JAR ditambahkan pada kerja Spark menggunakan Spark-Submit, dan apakah pilihan serta pertimbangan berbeza untuk berbuat demikian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn