Impala adalah mesin kueri SQL real-time berperforma tinggi dengan latensi rendah. Anda dapat menggunakan klausa SELECT, JOIN, dan fungsi agregat di Impala untuk mengkueri data yang disimpan dalam Hadoop Distributed File System (HDFS) atau HBase secara real-time.
Informasi latar belakang
Impala menggunakan metadata, sintaksis SQL (Hive SQL), dan driver Open Database Connectivity (ODBC) yang sama seperti Apache Hive, sehingga menyediakan platform yang familiar dan terpadu untuk pemrosesan batch maupun kueri real-time.
Catatan penggunaan
Jika Anda ingin menghapus partisi pada tabel Hive saat menggunakan Impala, jalankan perintah tersebut melalui CLI Impala atau Hive. Menghapus langsung direktori partisi dari path sistem file akan menyebabkan tabel Hive menjadi tidak tersedia.
Manfaat
Untuk meminimalkan latensi, Impala menggunakan mesin kueri terdistribusi—bukan MapReduce—untuk mengakses data. Mesin ini mirip dengan yang digunakan dalam relational database management system (RDBMS). Performanya bervariasi tergantung pada jenis kueri dan konfigurasi, serta dapat mencapai kecepatan hingga satu orde lebih besar dibandingkan Hive.
Dibandingkan dengan Hadoop, Impala memberikan manfaat berikut untuk kueri SQL:
-
Pemrosesan lokal dilakukan pada node data, sehingga membantu menghindari bottleneck jaringan.
-
Anda tidak perlu mengonversi format data, sehingga tidak dikenai biaya konversi format.
-
Anda dapat menggunakan penyimpanan metadata yang tunggal, terbuka, dan terpadu.
-
Seluruh data dapat langsung dikueri tanpa penundaan akibat operasi ekstrak, transformasi, dan muat (ETL).
-
Seluruh perangkat keras dapat digunakan baik untuk kueri Impala maupun MapReduce.
-
Hanya diperlukan satu tool mesin untuk menerapkan skalabilitas.
Untuk informasi selengkapnya tentang Impala, lihat Apache Impala.
Komponen Impala
Gambar berikut menunjukkan komponen-komponen Impala dalam kluster E-MapReduce (EMR). 
Impala terdiri atas komponen-komponen berikut:
-
Impalad
Proses Impalad ditempatkan pada core dan task node serta dapat diskalakan.
Komponen inti Impala adalah Impala Daemon yang berjalan pada setiap node dan direpresentasikan oleh proses bernama Impalad. Impala Daemon digunakan untuk membaca dan menulis data ke file, menerima pernyataan kueri yang dikirim melalui perintah
impala-shellatau dari Hue, Java Database Connectivity (JDBC), atau ODBC, melakukan paralelisasi kueri, serta mendistribusikan tugas ke node Impala dalam kluster. Selain itu, Impala Daemon juga dapat mengembalikan hasil kueri yang dihitung secara lokal ke node koordinator. -
Statestored
Proses Statestored ditempatkan pada node master-1-1.
StateStore Daemon, yang direpresentasikan oleh proses bernama Statestored, digunakan untuk mengelola status kesehatan semua proses Impalad dalam kluster dan meneruskan informasi status tersebut ke seluruh proses Impalad. Jika suatu proses Impalad tidak tersedia karena gangguan node, jaringan, atau perangkat lunak, StateStore Daemon memberi tahu proses Impalad lainnya tentang ketidaknormalan tersebut. Dengan demikian, permintaan kueri baru tidak dikirimkan ke proses Impalad yang tidak tersedia.
-
Catalogd
Proses Catalogd ditempatkan pada node master-1-1.
Catalog Daemon, yang direpresentasikan oleh proses bernama Catalogd, digunakan untuk menyinkronkan perubahan metadata dari setiap proses Impalad ke proses Impalad lain dalam kluster yang sama. Disarankan menjalankan StateStore Daemon dan Catalog Daemon pada node yang sama karena semua permintaan dikirimkan melalui proses Statestored.