Spark adalah mesin serbaguna, berkinerja tinggi, dan mudah digunakan untuk analitik data skala besar. Anda dapat menggunakan Spark untuk melakukan analisis kompleks dalam memori dan membangun aplikasi analitik data besar dengan latensi rendah. DataWorks menyediakan node EMR Spark untuk membantu Anda mengembangkan dan menjadwalkan tugas Spark secara berkala. Topik ini menjelaskan cara membuat node EMR Spark dan memberikan contoh terperinci.
Prasyarat
Sebelum mengembangkan node, jika perlu menyesuaikan lingkungan komponen, Anda dapat membuat gambar kustom berdasarkan gambar resmi
dataworks_emr_base_task_poddan menggunakan gambar kustom di DataStudio.Sebagai contoh, Anda dapat mengganti paket JAR Spark atau menyertakan
pustaka,file, ataupaket JARtertentu saat membuat gambar kustom.Kluster EMR telah didaftarkan ke DataWorks. Untuk informasi selengkapnya, lihat DataStudio (versi lama): Mengikat sumber daya komputasi EMR.
(Opsional) Jika Anda menggunakan Pengguna Resource Access Management (RAM) untuk mengembangkan tugas, tambahkan pengguna tersebut ke ruang kerja yang sesuai dan berikan peran Developer atau Workspace Administrator. Peran Administrator Ruang Kerja mencakup izin yang luas dan harus diberikan dengan hati-hati. Untuk informasi selengkapnya, lihat Menambahkan anggota ke ruang kerja.
Kelompok sumber daya telah dibeli dan dikonfigurasi. Konfigurasi mencakup mengikat ruang kerja dan mengonfigurasi jaringan. Untuk informasi selengkapnya, lihat Menggunakan kelompok sumber daya Serverless.
Alur bisnis harus dibuat. Karena operasi pengembangan untuk mesin yang berbeda di DataStudio dilakukan berdasarkan alur bisnis, Anda harus membuat alur bisnis sebelum membuat node. Untuk informasi selengkapnya, lihat Membuat alur bisnis.
Jika tugas Anda memerlukan lingkungan pengembangan tertentu, Anda dapat menggunakan fitur gambar kustom DataWorks untuk membangun citra komponen guna eksekusi tugas. Untuk informasi selengkapnya, lihat Gambar kustom.
Batasan
Jenis node ini hanya dapat dijalankan pada kelompok sumber daya serverless atau grup sumber daya eksklusif untuk penjadwalan. Disarankan menggunakan kelompok sumber daya serverless. Jika perlu menggunakan citra di DataStudio, gunakan kelompok sumber daya komputasi serverless.
Untuk kluster DataLake atau kluster kustom, Anda harus mengonfigurasi EMR-HOOK pada kluster untuk mengelola metadata di DataWorks. Jika EMR-HOOK tidak dikonfigurasi, Anda tidak dapat melihat metadata secara real-time, menghasilkan log audit, melihat alur data, atau melakukan tugas administrasi data terkait EMR di DataWorks. Untuk informasi lebih lanjut tentang cara mengonfigurasi EMR-HOOK, lihat Mengonfigurasi EMR-HOOK untuk Spark SQL.
Kluster EMR on ACK Spark tidak mendukung penampilan alur data. Kluster EMR Serverless Spark mendukung penampilan alur data.
Kluster EMR on ACK Spark dan kluster EMR Serverless Spark hanya mendukung merujuk sumber daya OSS menggunakan OSS REF dan mengunggah sumber daya ke OSS. Keduanya tidak mendukung pengunggahan sumber daya ke HDFS.
Kluster DataLake dan kluster kustom mendukung merujuk sumber daya OSS menggunakan OSS REF, mengunggah sumber daya ke OSS, serta mengunggah sumber daya ke HDFS.
Catatan
Jika Anda mengaktifkan kontrol akses Ranger untuk Spark di kluster EMR yang terikat ke ruang kerja saat ini:
Fitur ini tersedia secara default saat Anda menjalankan tugas Spark yang menggunakan gambar default.
Untuk menjalankan tugas Spark yang menggunakan gambar kustom, Anda harus mengajukan tiket ke helpdesk untuk meningkatkan gambar agar mendukung fitur ini.
Persiapan: Kembangkan tugas Spark dan dapatkan paket JAR
Sebelum menjadwalkan tugas EMR Spark di DataWorks, Anda harus mengembangkan kode tugas Spark di EMR dan mengompilasinya untuk menghasilkan paket JAR. Untuk informasi selengkapnya tentang cara mengembangkan tugas EMR Spark, lihat Ikhtisar Spark.
Anda harus mengunggah paket JAR tugas ke DataWorks untuk menjadwalkan tugas EMR Spark secara berkala.
Langkah 1: Buat node EMR Spark
Buka halaman DataStudio.
Masuk ke Konsol DataWorks. Di bilah navigasi atas, pilih wilayah yang diinginkan. Di panel navigasi kiri, pilih . Pada halaman yang muncul, pilih ruang kerja yang diinginkan dari daftar drop-down dan klik Go to Data Development.
Buat node EMR Spark.
Klik kanan alur bisnis target dan pilih .
CatatanAnda juga dapat mengarahkan kursor ke Create dan memilih .
Pada kotak dialog Create Node, masukkan Name dan pilih Engine Instance, Node Type, dan Path. Klik OK untuk membuka halaman editor node EMR Spark.
CatatanNama node dapat berisi huruf kapital, huruf kecil, karakter Tionghoa, angka, garis bawah (_), dan titik (.).
Langkah 2: Kembangkan tugas Spark
Pada halaman editor node EMR Spark, klik ganda node yang telah dibuat untuk membuka halaman pengembangan tugas. Pilih salah satu operasi berikut berdasarkan skenario Anda:
(Direkomendasikan) Unggah sumber daya dari mesin lokal Anda ke DataStudio lalu rujuk sumber daya tersebut. Untuk informasi selengkapnya, lihat Skenario 1: Unggah lalu rujuk sumber daya JAR EMR.
Rujuk sumber daya OSS menggunakan OSS REF. Untuk informasi selengkapnya, lihat Skenario 2: Langsung merujuk sumber daya OSS.
Skenario 1: Unggah lalu rujuk sumber daya JAR EMR
DataWorks memungkinkan Anda mengunggah sumber daya dari mesin lokal ke DataStudio lalu merujuk sumber daya tersebut. Setelah Anda mengompilasi tugas EMR Spark, dapatkan paket JAR hasil kompilasi. Disarankan menyimpan sumber daya paket JAR berdasarkan ukurannya.
Anda dapat mengunggah sumber daya paket JAR, membuatnya sebagai sumber daya EMR DataWorks, lalu mengirimkannya. Atau, Anda dapat menyimpannya langsung di HDFS EMR. Kluster EMR on ACK Spark dan kluster EMR Serverless Spark tidak mendukung pengunggahan sumber daya ke HDFS.
Jika paket JAR berukuran kurang dari 500 MB
Buat sumber daya JAR EMR.
Jika paket JAR berukuran kurang dari 500 MB, Anda dapat mengunggahnya dari mesin lokal sebagai sumber daya JAR EMR DataWorks. Metode ini memudahkan pengelolaan sumber daya di konsol DataWorks. Setelah membuat sumber daya, Anda harus mengirimkannya. Untuk informasi selengkapnya, lihat Membuat dan menggunakan sumber daya EMR.
CatatanSaat pertama kali membuat sumber daya EMR, jika Anda ingin menyimpan paket JAR yang diunggah di OSS, Anda harus terlebih dahulu melakukan otorisasi seperti yang diminta pada halaman tersebut.
Rujuk sumber daya JAR EMR.
Klik ganda node EMR Spark untuk membuka editor kodenya.
Di node , temukan sumber daya JAR EMR yang telah Anda unggah. Klik kanan sumber daya tersebut dan pilih Reference Resource.
Setelah Anda memilih sumber daya, kode referensi sumber daya akan ditambahkan secara otomatis ke halaman editor node EMR Spark saat ini. Berikut ini contoh kodenya.
##@resource_reference{"spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar"} spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jarJika kode referensi di atas ditambahkan secara otomatis, berarti sumber daya tersebut telah dirujuk. Dalam kode tersebut, spark-examples_2.12-1.0.0-SNAPSHOT-shaded.jar adalah nama sumber daya JAR EMR yang Anda unggah.
Ubah kode node EMR Spark untuk menambahkan perintah spark-submit. Berikut ini contoh kodenya.
CatatanEditor node EMR Spark tidak mendukung komentar. Pastikan Anda mengubah kode tugas seperti pada contoh berikut. Jangan tambahkan komentar. Jika tidak, terjadi kesalahan saat menjalankan node.
##@resource_reference{"spark-examples_2.11-2.4.0.jar"} spark-submit --class org.apache.spark.examples.SparkPi --master yarn spark-examples_2.11-2.4.0.jar 100Di mana:
org.apache.spark.examples.SparkPi: Kelas utama tugas dalam paket JAR yang telah dikompilasi.
spark-examples_2.11-2.4.0.jar: Nama sumber daya JAR EMR yang Anda unggah.
Untuk parameter lainnya, Anda dapat menggunakan nilai dari contoh di atas atau jalankan perintah berikut untuk melihat dokumentasi bantuan untuk
spark-submitdan ubah perintahspark-submitsesuai kebutuhan.CatatanUntuk menggunakan parameter sederhana dalam perintah
spark-submitdi node Spark, Anda harus menambahkannya ke kode. Misalnya,--executor-memory 2G.Node Spark hanya mendukung pengiriman pekerjaan dalam mode kluster YARN.
Untuk tugas yang dikirim menggunakan
spark-submit, disarankan mengatur deploy-mode ke cluster, bukan client.
spark-submit --help
Jika paket JAR berukuran 500 MB atau lebih besar
Buat sumber daya JAR EMR.
Jika paket JAR berukuran 500 MB atau lebih besar, Anda tidak dapat mengunggahnya sebagai sumber daya DataWorks dari mesin lokal. Disarankan menyimpan paket JAR di HDFS EMR dan mencatat path penyimpanannya. Anda harus menggunakan path ini untuk merujuk paket tersebut saat menjadwalkan tugas Spark di DataWorks.
Rujuk sumber daya JAR EMR.
Jika paket JAR disimpan di HDFS, Anda dapat merujuknya di node EMR Spark dengan menentukan path-nya dalam kode.
Klik ganda node EMR Spark untuk membuka editor kodenya.
Tulis perintah spark-submit. Berikut ini contoh kodenya.
spark-submit --master yarn --deploy-mode cluster --name SparkPi --driver-memory 4G --driver-cores 1 --num-executors 5 --executor-memory 4G --executor-cores 1 --class org.apache.spark.examples.JavaSparkPi hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar 100Di mana:
hdfs:///tmp/jars/spark-examples_2.11-2.4.8.jar: Path aktual paket JAR di HDFS.
org.apache.spark.examples.JavaSparkPi: Kelas utama tugas dalam paket JAR yang telah dikompilasi.
Parameter lainnya disesuaikan dengan kluster EMR yang sebenarnya dan harus dikonfigurasi sesuai kebutuhan. Anda juga dapat menjalankan perintah berikut untuk melihat informasi bantuan spark-submit dan mengubah perintah sesuai kebutuhan.
PentingUntuk menggunakan parameter sederhana dalam perintah Spark-submit di node Spark, Anda harus menambahkannya ke kode. Misalnya,
--executor-memory 2G.Node Spark hanya mendukung pengiriman pekerjaan dalam mode kluster YARN.
Untuk tugas yang dikirim menggunakan spark-submit, disarankan mengatur deploy-mode ke cluster, bukan client.
spark-submit --help
Skenario 2: Langsung merujuk sumber daya OSS
(Opsional) Konfigurasi parameter lanjutan
Anda dapat mengonfigurasi parameter properti khusus Spark di Pengaturan Lanjutan node. Untuk informasi selengkapnya tentang parameter properti Spark, lihat Konfigurasi Spark. Parameter lanjutan yang tersedia bervariasi berdasarkan jenis kluster EMR, seperti yang ditunjukkan pada tabel berikut.
Kluster DataLake/Kluster kustom: EMR on ECS
Parameter lanjutan | Deskripsi konfigurasi |
queue | Antrian penjadwalan untuk mengirim pekerjaan. Antrian default adalah `default`. Jika Anda mengonfigurasi YARN Resource Queue tingkat ruang kerja saat mendaftarkan kluster EMR ke ruang kerja DataWorks:
Untuk informasi selengkapnya tentang EMR YARN, lihat Konfigurasi antrian dasar. Untuk informasi selengkapnya tentang konfigurasi antrian saat pendaftaran kluster EMR, lihat Menetapkan antrian sumber daya YARN global. |
priority | Prioritas. Nilai default adalah 1. |
FLOW_SKIP_SQL_ANALYZE | Mode eksekusi untuk pernyataan SQL. Nilai yang valid:
Catatan Parameter ini hanya dapat digunakan untuk pengujian dan menjalankan alur di lingkungan pengembangan. |
Lainnya |
|
Kluster EMR Serverless Spark
Untuk informasi selengkapnya tentang pengaturan parameter, lihat Menetapkan parameter untuk mengirim tugas Spark.
Parameter lanjutan | Deskripsi konfigurasi |
queue | Antrian penjadwalan untuk mengirim pekerjaan. Antrian default adalah `dev_queue`. |
priority | Prioritas. Nilai default adalah 1. |
FLOW_SKIP_SQL_ANALYZE | Mode eksekusi untuk pernyataan SQL. Nilai yang valid:
Catatan Parameter ini hanya dapat digunakan untuk pengujian dan menjalankan alur di lingkungan pengembangan. |
SERVERLESS_RELEASE_VERSION | Versi mesin Spark. Secara default, Default Engine Version yang dikonfigurasi untuk kluster di Cluster Management pada Management Center digunakan. Untuk menetapkan versi mesin yang berbeda untuk tugas yang berbeda, Anda dapat mengaturnya di sini. |
SERVERLESS_QUEUE_NAME | Menentukan antrian sumber daya. Secara default, Default Resource Queue yang dikonfigurasi untuk kluster di Cluster Management pada Management Center digunakan. Jika Anda memiliki persyaratan isolasi dan manajemen sumber daya, Anda dapat menambahkan antrian. Untuk informasi selengkapnya, lihat Mengelola antrian sumber daya. |
Lainnya |
|
Kluster Spark: EMR ON ACK
Parameter lanjutan | Deskripsi konfigurasi |
queue | Tidak didukung. |
priority | Tidak didukung. |
FLOW_SKIP_SQL_ANALYZE | Mode eksekusi untuk pernyataan SQL. Nilai yang valid:
Catatan Parameter ini hanya dapat digunakan untuk pengujian dan menjalankan alur di lingkungan pengembangan. |
Lainnya |
|
Kluster Hadoop: EMR on ECS
Parameter lanjutan | Deskripsi konfigurasi |
queue | Antrian penjadwalan untuk mengirim pekerjaan. Antrian default adalah `default`. Jika Anda mengonfigurasi YARN Resource Queue tingkat ruang kerja saat mendaftarkan kluster EMR ke ruang kerja DataWorks:
Untuk informasi selengkapnya tentang EMR YARN, lihat Konfigurasi antrian dasar. Untuk informasi selengkapnya tentang konfigurasi antrian saat pendaftaran kluster EMR, lihat Menetapkan antrian sumber daya YARN global. |
priority | Prioritas. Nilai default adalah 1. |
FLOW_SKIP_SQL_ANALYZE | Mode eksekusi untuk pernyataan SQL. Nilai yang valid:
Catatan Parameter ini hanya dapat digunakan untuk pengujian dan menjalankan alur di lingkungan pengembangan. |
USE_GATEWAY | Menentukan apakah pekerjaan dikirim melalui kluster Gateway. Nilai yang valid:
Catatan Jika kluster tempat node ini berada tidak terkait dengan kluster Gateway, pekerjaan EMR gagal dikirim jika Anda mengatur parameter ini ke |
Lainnya |
|
Jalankan tugas SQL
Di bilah alat, klik ikon
. Di kotak dialog Parameters, pilih kelompok sumber daya penjadwalan yang telah Anda buat lalu klik Run.CatatanUntuk mengakses sumber daya komputasi di jaringan publik atau VPC, Anda harus menggunakan kelompok sumber daya penjadwalan yang telah lulus uji konektivitas jaringan dengan sumber daya komputasi. Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.
Untuk mengubah kelompok sumber daya untuk tugas, klik ikon Run With Parameters
dan pilih kelompok sumber daya target.Saat menggunakan node EMR Spark untuk mengkueri data, maksimal 10.000 catatan data dapat dikembalikan, dan ukuran total data tidak boleh melebihi 10 MB.
Klik ikon
untuk menyimpan pernyataan SQL.(Opsional) Lakukan pengujian asap.
Jika Anda ingin melakukan pengujian asap di lingkungan pengembangan, Anda dapat melakukannya saat mengirimkan node atau setelah node dikirimkan. Untuk informasi selengkapnya, lihat Melakukan pengujian asap.
Langkah 3: Konfigurasi penjadwalan node
Jika Anda ingin sistem menjalankan tugas pada node secara berkala, klik Properties di panel navigasi kanan pada tab konfigurasi node untuk mengonfigurasi properti penjadwalan tugas sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Ikhtisar.
Langkah 4: Publikasikan tugas node
Setelah tugas pada node dikonfigurasi, Anda harus meng-commit dan menerapkan tugas tersebut. Setelah Anda meng-commit dan menerapkan tugas, sistem akan menjalankan tugas tersebut secara berkala berdasarkan konfigurasi penjadwalan.
Klik ikon
di bilah alat atas untuk menyimpan tugas.Klik ikon
di bilah alat atas untuk meng-commit tugas.Di kotak dialog Submit, konfigurasikan parameter Change description. Lalu, tentukan apakah akan meninjau kode tugas setelah Anda meng-commit tugas berdasarkan kebutuhan bisnis Anda.
CatatanAnda harus mengonfigurasi parameter Rerun dan Parent Nodes di tab Properties sebelum meng-commit tugas.
Anda dapat menggunakan fitur tinjauan kode untuk memastikan kualitas kode tugas dan mencegah kesalahan eksekusi tugas yang disebabkan oleh kode tugas yang tidak valid. Jika Anda mengaktifkan fitur tinjauan kode, kode tugas yang dikirimkan hanya dapat diterapkan setelah kode tugas tersebut lulus tinjauan kode. Untuk informasi selengkapnya, lihat Tinjauan kode.
Jika Anda menggunakan ruang kerja dalam mode standar, Anda harus menerapkan tugas di lingkungan produksi setelah meng-commit tugas. Untuk menerapkan tugas pada node, klik Deploy di pojok kanan atas tab konfigurasi node. Untuk informasi selengkapnya, lihat Menerapkan node.
Operasi lainnya
Setelah Anda meng-commit dan menerapkan tugas, tugas tersebut akan dijalankan secara berkala berdasarkan konfigurasi penjadwalan. Anda dapat mengklik Operation Center di pojok kanan atas tab konfigurasi node yang sesuai untuk membuka Operation Center dan melihat status penjadwalan tugas. Untuk informasi selengkapnya, lihat Melihat dan mengelola tugas yang dipicu otomatis.
FAQ
T: Eksekusi node melebihi batas waktu. Apa yang harus saya lakukan?
J: Pastikan konektivitas jaringan antara kelompok sumber daya dan kluster. Buka halaman daftar sumber daya komputasi untuk menginisialisasi sumber daya. Di kotak dialog yang muncul, klik Re-initialize dan verifikasi bahwa inisialisasi berhasil.


. Pilih kelompok sumber daya Serverless yang telah Anda buat untuk menjalankan node EMR Spark. Setelah tugas selesai, catat 