Anda dapat membuat paket JAR yang berisi logika bisnis Anda dan mengunggahnya untuk mengembangkan pekerjaan Spark JAR. Topik ini menyediakan dua contoh cara mengembangkan dan men-deploy pekerjaan JAR.
Prasyarat
Ruang kerja telah dibuat. Untuk informasi selengkapnya, lihat Manajemen Ruang Kerja.
Aplikasi bisnis telah dikembangkan dan dikemas ke dalam file JAR.
Prosedur
Langkah 1: Mengembangkan paket JAR
E-MapReduce (EMR) Serverless Spark tidak menyediakan lingkungan pengembangan terintegrasi (IDE) untuk paket JAR. Oleh karena itu, Anda harus menulis kode aplikasi Spark dan mengemasnya ke dalam file JAR di platform pengembangan lokal atau mandiri. Topik ini menyediakan dua contoh.
Dalam file pom.xml proyek Maven Anda, tambahkan dependensi terkait Spark. Karena lingkungan runtime Serverless Spark telah menyertakan dependensi tersebut secara bawaan, Anda dapat mengatur scope menjadi provided. Hal ini mencegah pengemasan ganda dan konflik versi sekaligus memastikan dependensi tersedia selama fase kompilasi dan pengujian.
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.5.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.12</artifactId>
<version>3.5.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-hive_2.12</artifactId>
<version>3.5.2</version>
<scope>provided</scope>
</dependency>Kueri tabel DLF
public class HiveTableAccess {
public static void main(String[] args) {
SparkSession spark = SparkSession.builder()
.appName("DlfTableAccessExample")
.enableHiveSupport()
.getOrCreate();
spark.sql("SELECT * FROM test_table").show();
spark.stop();
}
}Menghitung nilai perkiraan pi (π)
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.sql.SparkSession;
import java.util.ArrayList;
import java.util.List;
/**
* Menghitung perkiraan nilai pi
* Penggunaan: JavaSparkPi [partisi]
*/
public final class JavaSparkPi {
public static void main(String[] args) throws Exception {
SparkSession spark = SparkSession
.builder()
.appName("JavaSparkPi")
.getOrCreate();
JavaSparkContext jsc = new JavaSparkContext(spark.sparkContext());
int slices = (args.length == 1) ? Integer.parseInt(args[0]) : 2;
int n = 100000 * slices;
List<Integer> l = new ArrayList<>(n);
for (int i = 0; i < n; i++) {
l.add(i);
}
JavaRDD<Integer> dataSet = jsc.parallelize(l, slices);
int count = dataSet.map(integer -> {
double x = Math.random() * 2 - 1;
double y = Math.random() * 2 - 1;
return (x * x + y * y <= 1) ? 1 : 0;
}).reduce((integer, integer2) -> integer + integer2);
System.out.println("Pi kira-kira " + 4.0 * count / n);
spark.stop();
}
}Klik SparkExample-1.0-SNAPSHOT.jar untuk mengunduh paket JAR uji coba.
Langkah 2: Mengunggah paket JAR
Buka halaman unggah file.
Masuk ke Konsol EMR.
Di panel navigasi sebelah kiri, pilih .
Di halaman Spark, klik nama ruang kerja yang dituju.
Di halaman EMR Serverless Spark, klik Files di panel navigasi sebelah kiri.
Di halaman Files, klik Upload File.
Di kotak dialog Upload File, klik area unggah untuk memilih paket JAR lokal, atau seret paket JAR ke area tersebut.
Pada contoh ini, paket SparkExample-1.0-SNAPSHOT.jar diunggah.
Langkah 3: Mengembangkan dan menjalankan pekerjaan
Di halaman EMR Serverless Spark, klik Data Development di panel navigasi sebelah kiri.
Di tab Development, klik ikon
.Masukkan nama, pilih sebagai Jenis, lalu klik OK.
Di pojok kanan atas, pilih antrian.
Untuk informasi selengkapnya tentang cara menambahkan antrian, lihat Kelola antrian sumber daya.
Di tab pekerjaan baru, konfigurasikan parameter berikut, biarkan parameter lain pada nilai default-nya, lalu klik Run.
Parameter
Deskripsi
Main JAR Resource
Pilih paket JAR yang telah Anda unggah pada langkah sebelumnya. Pada contoh ini, pilih SparkExample-1.0-SNAPSHOT.jar.
Main Class
Kelas utama yang ditentukan saat Anda mengirimkan pekerjaan Spark.
Untuk menghitung nilai perkiraan pi (π): Pada contoh ini, masukkan
org.example.JavaSparkPi.Untuk mengkueri tabel Hive: Pada contoh ini, masukkan
org.example.HiveTableAccess.
Setelah pekerjaan dijalankan, di bagian Execution Records, klik Log Probe di kolom Tindakan untuk melihat informasi log.


Langkah 4: Menerbitkan pekerjaan
Pekerjaan yang diterbitkan dapat digunakan sebagai node dalam alur kerja.
Setelah pekerjaan selesai, klik Publish di pojok kanan atas.
Di kotak dialog yang muncul, masukkan informasi rilis dan klik OK.
(Opsional) Langkah 5: Melihat Spark UI
Setelah pekerjaan berhasil dijalankan, Anda dapat melihat detail eksekusinya di Spark UI.
Di panel navigasi sebelah kiri, klik Job History.
Di halaman Application, temukan pekerjaan yang dituju dan klik Spark UI di kolom Tindakan.
Di halaman Spark Jobs, Anda dapat melihat detail pekerjaan.

Referensi
Setelah pekerjaan diterbitkan, Anda dapat menggunakannya untuk penjadwalan alur kerja. Untuk informasi selengkapnya, lihat Kelola alur kerja. Untuk contoh proses pengembangan lengkap untuk orkestrasi pekerjaan, lihat Memulai pengembangan SparkSQL.