Apa itu Hive? Architekstur & Mode
⚡ Ringkasan Cerdas
Hive adalah lapisan SQL dari ekosistem Hadoop, yang mengubah pernyataan HiveQL menjadi pekerjaan terdistribusi yang membaca data terstruktur yang sudah ada di HDFS, sehingga analis dapat melakukan kueri pada tabel berukuran petabyte tanpa perlu menulis kode MapReduce sendiri.

Apa itu Hive?
Hive adalah alat ETL dan gudang data yang dikembangkan di atas Hadoop Distributed File System (HDFS). Hive mempermudah pekerjaan untuk melakukan operasi seperti
- Enkapsulasi data
- Kueri ad-hoc
- Analisis kumpulan data yang sangat besar
Karakteristik penting dari Hive
Poin-poin di bawah ini menjelaskan apa yang membedakan Hive dari program MapReduce biasa.
- Di Hive, tabel dan database dibuat terlebih dahulu, lalu data dimuat ke dalam tabel tersebut.
- Hive adalah gudang data yang dirancang untuk mengelola dan melakukan kueri hanya pada data terstruktur yang disimpan dalam tabel.
- Saat menangani data terstruktur, MapReduce tidak memiliki fitur optimasi dan kemudahan penggunaan seperti UDF, tetapi kerangka kerja Hive memilikinya. Optimasi kueri mengacu pada cara eksekusi kueri yang efektif dalam hal kinerja.
- Bahasa Hive yang terinspirasi dari SQL memisahkan pengguna dari kompleksitas pemrograman MapReduce. Bahasa ini menggunakan kembali konsep-konsep yang sudah dikenal dari dunia basis data relasional, seperti tabel, baris, kolom, dan skema, untuk memudahkan pembelajaran.
- Pemrograman Hadoop bekerja pada file datar. Jadi, Hive dapat menggunakan struktur direktori untuk “pemisahan” data untuk meningkatkan kinerja pada kueri tertentu.
- Komponen penting dari Hive adalah metastore, yang digunakan untuk menyimpan informasi skema. Metastore ini biasanya berada di dalam basis data relasional. Kita dapat berinteraksi dengan Hive menggunakan metode seperti
- GUI web
- Java Antarmuka Konektivitas Basis Data (JDBC).
- Sebagian besar interaksi cenderung terjadi melalui antarmuka baris perintah (CLI). Hive menyediakan CLI untuk menulis kueri Hive menggunakan Bahasa Kueri Hive (HQL).
- Secara umum, sintaks HQL mirip dengan SQL Sintaks yang sudah dikenal oleh sebagian besar analis data. Contoh kueri di bawah ini menampilkan semua catatan yang ada di tabel dengan nama yang disebutkan.
- Contoh kueri : Pilih * dari
- Hive mendukung empat format file, yaitu: FILE TEKS, FILE URUTAN, ORC dan RCFILE (Rekam File Kolom).
- Untuk penyimpanan metadata pengguna tunggal, Hive menggunakan basis data Derby, dan untuk metadata multi-pengguna atau bersama, Hive menggunakan MySQL.
Untuk pengaturan MySQL Sebagai basis data dan untuk menyimpan informasi metadata, lihat tutorial tentang mengkonfigurasi metastore Hive dengan MySQL, yang merupakan kelanjutan dari Panduan instalasi Hive.
Beberapa poin penting tentang Hive:
- Perbedaan utama antara HQL dan SQL adalah bahwa kueri Hive dieksekusi pada infrastruktur Hadoop, bukan pada basis data tradisional.
- Eksekusi kueri Hive adalah serangkaian perintah yang dihasilkan secara otomatis. PetaKurangi pekerjaan.
- Hive mendukung konsep partisi dan bucket untuk memudahkan pengambilan data saat klien menjalankan kueri.
- Hive mendukung kustomisasi UDF (fungsi yang ditentukan pengguna) untuk pembersihan data, penyaringan, dan pekerjaan serupa. Sesuai dengan kebutuhan programmer, seseorang dapat mendefinisikan UDF Hive.
Database Relasional Hive Vs
Hive melakukan fungsi yang tidak dapat dilakukan oleh basis data relasional. Ketika data mencapai petabyte, mengembalikan hasil dalam hitungan detik sangat penting, dan Hive melakukannya dengan efisien. Perbedaan utamanya adalah sebagai berikut.
Basis data relasional adalah “skema saat membaca dan skema saat menulis”Pertama, sebuah tabel dibuat, kemudian data dimasukkan ke dalam tabel tersebut. Pada tabel basis data relasional, fungsi-fungsi seperti penyisipan, pembaruan, dan modifikasi dapat dilakukan.
Sarang lebah adalah “skema hanya baca”Jadi, fungsi-fungsi seperti pembaruan dan modifikasi tidak berfungsi pada rilis awal, karena kueri Hive dalam klaster tipikal berjalan di beberapa DataNode, yang membuat pembaruan dan modifikasi data di beberapa node menjadi tidak mungkin (versi Hive di bawah 0.13).
Hive juga mendukung “Banyak membaca, sekali menulis” pola, sehingga pada versi terbaru sebuah tabel dapat diperbarui setelah penyisipan.
CATATAN: Versi Hive yang lebih baru hadir dengan fitur-fitur yang diperbarui. Hive 0.14 memperkenalkan UPDATE dan DELETE sebagai fitur baru, dan rilis selanjutnya menambahkan dukungan penuh untuk transaksi ACID.
Tabel di bawah ini meringkas perbandingan tersebut.
| Aspek | Basis data relasional | Sarang Apache |
|---|---|---|
| Validasi skema | Saat menulis | Saat dibaca |
| Volume data tipikal | Gigabyte hingga terabyte | Terabyte hingga petabyte |
| Beban kerja | OLTP tingkat baris membaca dan menulis | Analisis batch pemindaian penuh |
| Bahasa kueri | SQL | HQL, sebuah dialek yang terinspirasi oleh SQL. |
| Execution | Mesin basis data | Pekerjaan klaster terdistribusi |
Sarang lebah Architekstur
Diagram di bawah ini menjelaskan Apache Arsitektur Hive secara detail.
Hive pada dasarnya terdiri dari 3 bagian inti:
- Klien Hive
- Layanan sarang lebah
- Penyimpanan dan komputasi Hive
Klien Sarang
Hive menyediakan berbagai driver untuk berkomunikasi dengan berbagai jenis aplikasi. Untuk aplikasi berbasis Thrift, Hive menyediakan klien Thrift untuk komunikasi.
Untuk Java Untuk aplikasi terkait, ia menyediakan driver JDBC. Untuk jenis aplikasi lain, ia menyediakan driver ODBC. Klien dan driver ini kemudian berkomunikasi dengan server Hive dalam layanan Hive.
Layanan Sarang
Interaksi klien dengan Hive dilakukan melalui layanan Hive. Jika klien ingin melakukan operasi terkait kueri di Hive, klien harus berkomunikasi melalui layanan Hive.
CLI bertindak sebagai layanan Hive untuk operasi DDL. Semua driver berkomunikasi dengan server Hive dan driver utama dalam layanan Hive, seperti yang ditunjukkan pada diagram arsitektur di atas.
Driver dalam layanan Hive adalah driver utama: ia berkomunikasi dengan JDBC, ODBC, dan aplikasi khusus klien lainnya, kemudian meneruskan permintaan mereka ke metastore dan sistem file untuk diproses lebih lanjut.
Penyimpanan dan Komputasi Hive
Layanan Hive seperti metastore, sistem file, dan klien pekerjaan selanjutnya berkomunikasi dengan penyimpanan Hive dan melakukan tindakan berikut:
- Informasi metadata tentang tabel yang dibuat di Hive disimpan di Hive. basis data metastore.
- Hasil kueri dan data yang dimuat ke dalam tabel disimpan di klaster Hadoop pada HDFS.
Alur eksekusi pekerjaan
Diagram di bawah ini tracsatu kueri dari antarmuka pengguna ke DataNodes dan kembali.
Dari diagram di atas, kita dapat memahami alur eksekusi pekerjaan di Hive dengan Hadoop. Alur data di Hive berperilaku dalam pola berikut.
- Menjalankan kueri dari UI (antarmuka pengguna)
- Driver berinteraksi dengan compiler untuk mendapatkan rencana. (Di sini, rencana mengacu pada proses eksekusi query dan pengumpulan informasi metadata terkait.)
- Compiler membuat rencana untuk pekerjaan yang akan dieksekusi. Compiler berkomunikasi dengan metastore untuk mendapatkan permintaan metadata.
- Metastore mengirimkan informasi metadata kembali ke kompiler.
- Compiler berkomunikasi dengan driver dengan rencana yang diusulkan untuk mengeksekusi kueri.
- Pengemudi mengirimkan rencana eksekusi ke mesin eksekusi.
- Mesin eksekusi (EE) bertindak sebagai jembatan antara Hive dan Hadoop untuk memproses kueri, termasuk operasi DFS:
- EE pertama-tama menghubungi NameNode dan kemudian DataNode untuk mendapatkan nilai-nilai yang tersimpan dalam tabel.
- EE mengambil data yang diinginkan dari DataNode. Data tabel sebenarnya hanya berada di data node; dari NameNode, ia hanya mengambil metadata untuk kueri.
- Sistem ini mengumpulkan data aktual dari node data yang terkait dengan kueri yang disebutkan.
- EE berkomunikasi dua arah dengan metastore untuk melakukan operasi DDL (bahasa definisi data) seperti BUAT, HAPUS, dan UBAH pada tabel dan basis data. Metastore hanya menyimpan nama basis data, tabel, dan kolom.
- EE kemudian berkomunikasi dengan daemon Hadoop seperti NameNode, DataNode, dan job. tracker untuk mengeksekusi kueri di atas sistem file Hadoop.
- Mengambil hasil dari driver.
- Mengirim hasil ke mesin eksekusi. Setelah hasil diambil dari node data ke EE, EE mengirimkan hasil tersebut kembali ke driver dan ke UI (antarmuka pengguna).
Hive tetap terhubung dengan sistem file Hadoop dan daemon-daemonnya melalui mesin eksekusi. Panah putus-putus pada diagram menunjukkan komunikasi tersebut.
Mode Hive yang berbeda
Hive dapat beroperasi dalam dua mode tergantung pada ukuran node data di Hadoop. Mode-mode tersebut adalah:
- Mode lokal
- Mode MapReduce
Kapan menggunakan mode lokal?
- Jika Hadoop diinstal dalam mode pseudo-distributed dengan satu node data, kita menggunakan Hive dalam mode ini.
- Jika ukuran data cukup kecil sehingga terbatas pada satu mesin lokal, kita dapat menggunakan mode ini.
- Pemrosesan akan sangat cepat pada kumpulan data lebih kecil yang ada di mesin lokal
Kapan menggunakan mode MapReduce?
- Jika Hadoop memiliki beberapa node data dan data didistribusikan di berbagai node, kita menggunakan Hive dalam mode ini.
- Algoritma ini bekerja pada sejumlah besar data dan kueri dieksekusi secara paralel.
- Pemrosesan kumpulan data besar dengan kinerja lebih baik dapat dicapai melalui mode ini
Di Hive, kita dapat mengatur properti untuk menentukan mode kerja Hive. Secara default, Hive bekerja dalam mode MapReduce, dan untuk mode lokal, Anda dapat menggunakan pengaturan berikut:
SET mapred.job.tracker=local;
Mulai dari versi Hive 0.7 dan seterusnya, Hive mendukung mode yang menjalankan pekerjaan MapReduce dalam mode lokal secara otomatis. Pada Hive 4.x, mesin default-nya adalah Apache Tez, sehingga properti ini berlaku untuk jalur MapReduce lama.
Apa itu Sarang Server2 (HS2)?
HiveServer2 (HS2) adalah antarmuka server yang menjalankan fungsi-fungsi berikut:
- Memungkinkan klien jarak jauh untuk menjalankan kueri terhadap Hive
- Mengambil hasil dari kueri tersebut.
Versi terkini menambahkan fitur-fitur canggih berdasarkan Thrift RPC, seperti:
- Konkurensi multi-klien
- Otentikasi
HS2 berada di balik Beeline dan setiap sesi JDBC atau ODBC, itulah sebabnya HS2 menggantikan CLI Hive untuk pengguna tunggal. Operator dan fungsi bawaan HiveQL Referensi adalah langkah selanjutnya yang wajar.


