Impala adalah mesin kueri SQL yang dirancang untuk menjalankan kueri cepat, real-time, dan interaktif pada data berskala petabyte. Topik ini menjelaskan cara membuat dan mengonfigurasi node EMR Impala di DataWorks untuk pengembangan data.
Prasyarat
-
Anda telah membuat kluster Alibaba Cloud EMR dan mendaftarkannya ke DataWorks. Untuk informasi selengkapnya, lihat Data Studio: Bind an EMR computing resource.
-
(Opsional, untuk Pengguna RAM) Pengguna RAM untuk pengembangan task telah ditambahkan ke ruang kerja yang sesuai dan diberikan peran Development atau Workspace Administrator (peran ini memiliki izin luas; berikan dengan hati-hati). Untuk informasi selengkapnya tentang cara menambahkan anggota, lihat Add members to a workspace.
Jika Anda menggunakan Akun Alibaba Cloud, Anda dapat melewati langkah ini.
-
Anda telah mengonfigurasi sumber data Hive di DataWorks dan telah lulus uji konektivitas. Untuk informasi selengkapnya, lihat Manage data sources.
Batasan
-
Anda hanya dapat menjalankan node EMR Impala pada Serverless resource group (disarankan) atau grup sumber daya eksklusif untuk penjadwalan.
-
Node EMR Impala hanya dapat dijalankan pada sumber daya komputasi kluster data lake lama (Hadoop). DataWorks tidak lagi mendukung pengikatan kluster Hadoop baru, tetapi Anda dapat terus menggunakan kluster Hadoop terikat yang sudah ada.
Prosedur
-
Pada halaman editor node EMR Impala, lakukan langkah-langkah berikut.
Kembangkan kode SQL
Di editor SQL, tulis kode untuk task tersebut. Anda dapat mendefinisikan variabel dalam kode dengan menggunakan format ${variable_name}. Kemudian, berikan nilai untuk variabel tersebut di bagian Scheduling Parameters pada tab Scheduling Settings. Hal ini memungkinkan Anda untuk secara dinamis pass parameter untuk tugas terjadwal. Untuk informasi selengkapnya tentang parameter penjadwalan, lihat Sources and expressions for scheduling parameters. Kode berikut memberikan contoh:
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}'); --This can be used with scheduling parameters. SELECT * FROM userinfo ;CatatanPernyataan SQL tidak boleh melebihi ukuran 130 KB.
(Opsional) Konfigurasi parameter lanjutan
Di sisi kanan halaman, buka tab Scheduling Settings. Di bagian , konfigurasikan parameter spesifik yang dijelaskan dalam tabel berikut.
Catatan-
Parameter advanced yang tersedia bervariasi tergantung jenis kluster EMR.
-
Untuk mengonfigurasi open-source Spark properties tambahan, gunakan bagian pada tab Scheduling Settings.
Datalake dan custom clusters
Parameter
Description
FLOW_SKIP_SQL_ANALYZE
Menentukan cara pernyataan SQL dieksekusi. Nilai yang valid:
-
true: Beberapa pernyataan SQL dieksekusi sekaligus. -
false(default): Satu pernyataan SQL dieksekusi dalam satu waktu.
CatatanParameter ini hanya didukung untuk test run di lingkungan pengembangan.
DATAWORKS_SESSION_DISABLE
Menentukan apakah session akan digunakan kembali untuk test run di lingkungan pengembangan. Nilai yang valid:
-
true: Koneksi JDBC baru dibuat setiap kali pernyataan SQL dijalankan. -
false(default): Koneksi JDBC yang sama digunakan kembali saat Anda menjalankan pernyataan SQL berbeda dalam satu node.
CatatanJika parameter ini diatur ke
false,yarn applicationIdHive tidak dicetak di log. Untuk mencetakyarn applicationId, atur parameter ini ketrue.priority
Prioritas pekerjaan. Nilai default adalah 1.
queue
Antrian penjadwalan tempat pekerjaan dikirimkan. Antrian default adalah
default. Untuk informasi selengkapnya tentang EMR YARN, lihat Basic queue configurations.Hadoop cluster
Parameter
Description
FLOW_SKIP_SQL_ANALYZE
Menentukan cara pernyataan SQL dieksekusi. Nilai yang valid:
-
true: Beberapa pernyataan SQL dieksekusi sekaligus. -
false(default): Satu pernyataan SQL dieksekusi dalam satu waktu.
CatatanParameter ini hanya didukung untuk test run di lingkungan pengembangan.
USE_GATEWAY
Menentukan apakah pekerjaan dikirim melalui kluster Gateway. Nilai yang valid:
-
true: Pekerjaan dikirim melalui kluster Gateway. -
false(default): Pekerjaan tidak dikirim melalui kluster Gateway. Secara default, pekerjaan dikirim ke node header.
CatatanJika Anda mengatur parameter ini ke
truetetapi kluster node tidak terkait dengan kluster Gateway, pengiriman pekerjaan selanjutnya akan gagal.Jalankan Tugas SQL
-
Di panel Run Configuration, di bawah Compute Resource, pilih Compute Resource dan Resource Group.
Catatan-
Anda juga dapat mengonfigurasi CUs for Scheduling berdasarkan sumber daya yang dibutuhkan oleh task. Nilai default adalah
0.25. -
Untuk mengakses sumber data melalui internet publik atau dalam VPC, Anda harus menggunakan resource group penjadwalan yang telah lulus uji konektivitas jaringan dengan sumber data tersebut. Untuk informasi selengkapnya, lihat Network connectivity solutions.
-
-
Di kotak dialog parameter pada toolbar, pilih sumber data Hive, lalu klik Run.
CatatanSaat Anda menggunakan node EMR Impala untuk mengkueri data, kueri dapat mengembalikan maksimal 10.000 baris, dan ukuran total data tidak boleh melebihi 10 MB.
-
Klik Save.
-
-
Untuk menjalankan task node secara berkala, konfigurasikan properti penjadwalannya sesuai kebutuhan bisnis Anda. Untuk informasi selengkapnya, lihat Configure scheduling for a node.
-
Setelah mengonfigurasi node, deploy node tersebut. Untuk informasi selengkapnya, lihat Deploy a node or workflow.
-
Setelah task dideploy, Anda dapat melihat status task terjadwal di Operation Center. Untuk informasi selengkapnya, lihat Get started with Operation Center.
(Opsional) Lihat alur data
Untuk menampilkan alur data tingkat tabel dan tingkat kolom untuk task EMR Impala di Data Map, Anda harus terlebih dahulu mengaktifkan pencatatan alur data untuk Impala pada kluster EMR Anda. Fitur ini hanya didukung untuk kluster EMR DataLake dan kompatibel dengan metadata Hive Metastore (HMS) maupun Data Lake Formation (DLF). Untuk detail konfigurasi, lihat Data lineage analysis.
Fitur ini saat ini dalam versi beta. Untuk menggunakannya, submit a ticket atau hubungi dukungan teknis Alibaba Cloud untuk mengaktifkannya.
FAQ
-
Q: Bagaimana cara mengatasi error "Impala JDBC Url is Empty"?
>>> [ERROR][LauncherFactory]: JobLauncher init Failed! java.lang.RuntimeException: Impala JDBC Url is Empty! at com.aliyun.emr.dataworks.dcc.launcher.type.ImpalaJobLauncher.initJdbcConnectionA: Pastikan layanan Impala telah ditambahkan ke kluster Anda. Layanan Impala hanya tersedia untuk pengguna yang sudah ada.
-
Q: Mengapa terjadi error timeout koneksi saat node dijalankan?
EMR execute task failed! FAILED: Build connection error! Could not open client transport with JDBC Uri: jdbc:hive2://<host>:21050/;auth=noSasl: java.net.ConnectException: Connection timed out (Connection timed out)A: Error ini dapat terjadi jika resource group dan cluster tidak memiliki network connectivity. Untuk mengatasi masalah ini, buka halaman daftar resource komputasi, temukan resource tersebut, lalu klik Resource Initialization. Di kotak dialog yang muncul, klik Re-initialize dan pastikan resource berhasil diinisialisasi.