Impala adalah mesin kueri SQL untuk menjalankan kueri interaktif yang cepat pada data berukuran petabyte secara real time. Topik ini menjelaskan cara membuat dan mengonfigurasi node EMR Impala di DataWorks untuk pengembangan data.
Prasyarat
Anda telah membuat kluster Alibaba Cloud E-MapReduce (EMR) dan mendaftarkannya ke DataWorks. Untuk informasi selengkapnya, lihat Data Studio: Mengaitkan resource komputasi EMR.
(Opsional, wajib untuk pengguna RAM) Tambahkan pengguna Resource Access Management (RAM) yang bertanggung jawab atas pengembangan task ke Workspace dan berikan peran Developer atau Workspace Administrator. Peran Workspace Administrator memiliki izin yang luas, sehingga berikan dengan hati-hati. Untuk informasi selengkapnya tentang penambahan anggota, lihat Menambahkan anggota ke workspace.
Jika Anda menggunakan akun Alibaba Cloud, Anda dapat melewatkan langkah ini.
Anda telah mengonfigurasi Sumber data Hive di DataWorks dan lulus uji konektivitas. Untuk informasi selengkapnya, lihat Manajemen Sumber Data.
Batasan
Tipe node ini hanya dapat dijalankan pada kelompok sumber daya Serverless (disarankan) atau grup sumber daya eksklusif untuk penjadwalan.
EMR Impala hanya berjalan pada tipe resource komputasi kluster Data Lake lama (Hadoop). DataWorks tidak lagi mendukung pengikatan kluster tipe Hadoop baru, tetapi kluster yang sudah ada tetap dapat digunakan.
Prosedur
Pada halaman konfigurasi node EMR Impala, lakukan langkah-langkah berikut:
Kembangkan kode SQL
Tulis kode SQL di editor. Anda dapat mendefinisikan variabel menggunakan format `${variable_name}` lalu memberikan nilainya di bagian Parameter Penjadwalan pada panel konfigurasi Penjadwalan. Hal ini memungkinkan Anda untuk secara dinamis mengirimkan parameter ke kode saat eksekusi terjadwal. Untuk informasi selengkapnya tentang penggunaan parameter penjadwalan, lihat Sumber dan ekspresi parameter penjadwalan. Kode berikut merupakan contohnya.
SHOW TABLES ; CREATE TABLE IF NOT EXISTS userinfo ( ip STRING COMMENT'IP address', uid STRING COMMENT'User ID' )PARTITIONED BY( dt STRING ); ALTER TABLE userinfo ADD IF NOT EXISTS PARTITION(dt='${bizdate}'); -- Anda dapat menggabungkan ini dengan parameter penjadwalan. SELECT * FROM userinfo ;CatatanSatu pernyataan SQL tidak boleh melebihi 130 KB.
Opsional: Konfigurasikan parameter lanjutan
Anda dapat mengonfigurasi properti berikut di panel Scheduling configurations di sebelah kanan, pada bagian .
CatatanParameter Advanced yang tersedia bergantung pada tipe kluster EMR, seperti yang ditunjukkan pada tabel berikut.
Konfigurasikan properti Spark sumber terbuka lainnya di panel Scheduling configurations > .
Kluster DataLake/Custom
Parameter
Description
FLOW_SKIP_SQL_ANALYZE
Mengatur mode eksekusi untuk pernyataan SQL. Nilai yang valid:
true: Eksekusi beberapa pernyataan SQL sekaligus.false(default): Eksekusi satu pernyataan SQL dalam satu waktu.
CatatanParameter ini hanya didukung untuk eksekusi uji di lingkungan pengembangan.
DATAWORKS_SESSION_DISABLE
Untuk eksekusi uji langsung di lingkungan pengembangan. Nilai yang valid:
true: Membuat koneksi JDBC baru setiap kali Anda menjalankan pernyataan SQL.false(default): Menggunakan kembali koneksi JDBC yang sama saat Anda menjalankan pernyataan SQL berbeda dalam satu node.
CatatanKetika parameter ini diatur ke
false,yarn applicationIdHive tidak dicetak di log. Untuk mencetakyarn applicationId, atur parameter ini ketrue.priority
Prioritas. Default: 1.
queue
Antrian YARN tempat job dikirimkan. Antrian default adalah
default. Untuk informasi selengkapnya tentang YARN di EMR, lihat Konfigurasi antrian dasar.Kluster Hadoop
Parameter
Description
FLOW_SKIP_SQL_ANALYZE
Mengatur mode eksekusi untuk pernyataan SQL. Nilai yang valid:
true: Eksekusi beberapa pernyataan SQL sekaligus.false(default): Eksekusi satu pernyataan SQL dalam satu waktu.
CatatanParameter ini hanya didukung untuk eksekusi uji di lingkungan pengembangan.
USE_GATEWAY
Menentukan apakah job akan dikirimkan melalui gateway cluster. Nilai yang valid:
true: Kirim job melalui gateway cluster.false(default): Kirim job langsung ke header node.
CatatanJika Anda mengatur parameter ini ke
truetetapi kluster tidak dikaitkan dengan gateway cluster, pengiriman job EMR akan gagal.Jalankan task SQL
Pada bagian Run Configuration > Compute Resource, pilih compute resource dan resource group.
CatatanAnda juga dapat menyesuaikan Scheduling CU sesuai dengan kebutuhan resource task tersebut. Default:
0.25CU.Untuk mengakses sumber data melalui jaringan publik atau di dalam VPC, gunakan kelompok sumber daya penjadwalan yang dapat terhubung dengannya. Untuk informasi selengkapnya, lihat Solusi konektivitas jaringan.
Pada dialog parameter di bilah alat, pilih sumber data Hive Anda dan klik Run.
CatatanKueri yang dijalankan pada node EMR Impala dapat mengembalikan maksimal 10.000 baris, dengan batas ukuran total data sebesar 10 MB.
Klik Save untuk menyimpan node.
Untuk menjadwalkan task tersebut, konfigurasikan propertinya sesuai kebutuhan. Untuk informasi selengkapnya, lihat Konfigurasi penjadwalan node.
Setelah mengonfigurasi node, Anda harus menerbitkannya. Untuk informasi selengkapnya, lihat Penerapan node dan workflow.
Setelah task diterbitkan, Anda dapat memantau eksekusi terjadwalnya di Operation Center. Untuk informasi selengkapnya, lihat Memulai Operation Center.
FAQ
Q: Mengapa saya mendapatkan error "Impala JDBC Url is Empty"?

A: Error ini terjadi jika layanan Impala tidak diaktifkan di kluster EMR Anda. Perlu diperhatikan bahwa layanan Impala hanya didukung pada kluster Data Lake lama (Hadoop).
Q: Mengapa node gagal dengan error timeout koneksi?

A: Verifikasi konektivitas jaringan antara Resource Group dan Cluster. Buka halaman resource komputasi, temukan resource tersebut, lalu klik Initialize Resource. Pada kotak dialog yang muncul, klik Re-initialize dan pastikan inisialisasi berhasil.

