Arsitektur & Perintah Apache Hive: Mode, Karakteristik & Aplikasi

Diterbitkan: 2021-06-30

Daftar isi

Apa itu Hive?

Apache Hive adalah alat pergudangan data sumber terbuka yang dikembangkan oleh Facebook untuk pemrosesan terdistribusi dan analitik data. Ini dikembangkan di atas Hadoop Distributed File System (HDFS). Mekanisme untuk memproyeksikan struktur ke data di Hadoop disediakan oleh Hive. Bahasa seperti SQL yang disebut HiveQL (HQL) digunakan untuk mengkueri data tersebut. Ada kesamaan antara tabel di Hive dan tabel di database relasional. Kueri Hive dapat dengan mudah ditulis oleh siapa pun yang akrab dengan SQL.

Beberapa fitur Hive adalah:

  • Penyimpanan informasi skema ke dalam database dan data yang diproses ke dalam HDFS.
  • Dirancang untuk OLAP.
  • Bahasa query adalah HiveQL atau HQL, yang mirip dengan SQL.
  • Ini cepat, akrab, terukur, dan dapat diperluas.

Kegunaan Sarang

  • Ini adalah penyimpanan terdistribusi Apache Hive.
  • Alat disediakan yang memungkinkan pengguna untuk mengekstrak, mengubah, dan memuat data dengan mudah.
  • Berbagai format data ditawarkan untuk menyediakan struktur.
  • File yang disimpan di Hadoop Distributed File System (HDFS) dapat diakses oleh Hive.

Perintah Sarang

Perintah sarang adalah:

  1. Data Definition Language (DDL): Tabel dan objek lain dalam database dibangun dan dimodifikasi melalui perintah ini.
  • CREATE : Digunakan untuk membuat tabel atau database.
  • SHOW: Digunakan untuk menampilkan Database, Table, Properties, dll.
  • ALTER : Digunakan untuk melakukan perubahan pada tabel yang sudah ada.
  • DESCRIBE: Ini menjelaskan kolom tabel.
  • TRUNCATE: Digunakan untuk memotong dan menghapus baris tabel secara permanen.
  • DELETE: Menghapus data tabel, tetapi dapat dipulihkan.
  1. Data Manipulation Language (DML): digunakan untuk mengambil, menyimpan, mengubah, menghapus, menyisipkan, dan memperbarui data dalam database.
  • Sintaks untuk LOAD, INSERT Statements

LOAD data <LOCAL> inpath <file path> ke dalam tabel [tablename]

  • Setelah memuat data, perintah manipulasi data digunakan untuk mengambil data.
  • Hitung fungsi agregat digunakan untuk menghitung jumlah total catatan dalam sebuah tabel.
  • Kata kunci “buat eksternal” digunakan untuk membuat tabel dan menyediakan lokasi di mana tabel akan dibuat. Tabel EKSTERNAL menunjuk ke lokasi HDFS mana pun untuk penyimpanannya.
  • Perintah insert digunakan untuk memuat data tabel Hive. “insert overwrite” digunakan untuk menimpa data yang sudah ada dan “insert into” digunakan untuk menambahkan data ke data yang sudah ada.
  • Sebuah tabel dibagi menjadi beberapa partisi dengan perintah "dipartisi oleh" dan dibagi menjadi beberapa ember dengan perintah "dikelompokkan oleh".
  • Penyisipan data menimbulkan kesalahan karena partisi dinamis tidak diaktifkan. Oleh karena itu, parameter berikut harus diatur di shell Hive.

setel hive.exec.dynamic.partition=true;

Untuk mengaktifkan partisi dinamis, secara default, itu salah

setel hive.exec.dynamic.partition.mode=nonstrict;

  • Perintah 'Drop Table' menghapus data dan metadata untuk sebuah tabel
  • Agregasi: Sintaks:

Pilih count (kategori DISTINCT) dari nama tabel;

Perintah akan menghitung berbagai kategori tabel 'cate'.

  • Pengelompokan: Sintaks:

Pilih kategori, jumlah (jumlah) dari grup catatan txt berdasarkan kategori

Kumpulan hasil akan dikelompokkan ke dalam satu atau beberapa kolom.

  • Gabung Operasi: melakukan untuk menggabungkan bidang dari dua tabel dengan menggunakan nilai-nilai umum untuk setiap kolom.
  • Left outer join: Untuk tabel A dan B, left outer join berisi semua record dari tabel “kiri” (A), bahkan jika kondisi join tidak menemukan record yang cocok di tabel “kanan” (B).
  • Right Outer Join: Setiap baris dari tabel “kanan” (B) akan muncul di tabel join setidaknya satu kali.
  • Gabung penuh: Tabel yang digabungkan akan berisi semua catatan dari kedua tabel. Tabel yang digabungkan akan berisi semua catatan dari kedua tabel.

Arsitektur Sarang

Arsitektur sarang Apache ditunjukkan pada Gambar 1 .

Daftar Komponen Utama

Komponen utama dari arsitektur hive adalah:

1. Sarang klien

Aplikasi berbeda yang ditulis dalam bahasa seperti Java, Python, C++, dll. dikomunikasikan melalui penggunaan driver berbeda yang disediakan oleh Hive. Itu dapat ditulis dalam bahasa apa pun sesuai pilihan. Klien dan server pada gilirannya berkomunikasi dengan server Hive di layanan Hive.

Sebagian besar mereka dikategorikan menjadi tiga jenis:

  • Thrift Client: Ini didasarkan pada Apache Thrift untuk melayani permintaan dari klien Thrift. Klien Hemat akan digunakan untuk komunikasi untuk aplikasi berbasis Hemat.
  • JDBC Client: JDBC disediakan untuk aplikasi yang berhubungan dengan Java. Aplikasi Java terhubung ke Hive menggunakan driver JDBC. Lebih lanjut menggunakan Thrift untuk berkomunikasi dengan server Hive.
  • Klien ODBC: Aplikasi berdasarkan protokol ODBC diizinkan untuk terhubung ke Hive melalui driver ODBC. Mirip dengan JDBC, ia menggunakan Thrift untuk berkomunikasi ke server Hive.

2. Layanan Sarang

Layanan Hive menyediakan sarana untuk interaksi Hive dengan Klien. Setiap operasi terkait permintaan yang harus dilakukan oleh Klien harus dikomunikasikan melalui layanan Sewa. Untuk operasi Data Definition Language (DDL), CLI bertindak sebagai layanan Hive.

Semua driver harus berkomunikasi dengan server Hive dan kemudian ke driver utama di layanan Hive. Driver dalam layanan Hive mewakili driver utama yang berkomunikasi dengan aplikasi spesifik Klien dan semua jenis JDBC, ODBC, dll. Permintaan dari berbagai aplikasi diproses oleh driver ke metastore dan sistem lapangan yang akan diproses lebih lanjut.

Layanan yang ditawarkan oleh Hive adalah:

  • Beeline: Beeline adalah shell perintah di mana pengguna dapat mengirimkan pertanyaannya ke sistem. Hal ini didukung oleh HiveServer2. Ini adalah klien JDBC yang didasarkan pada SQLLINE CLI.
  • Hive Server 2: Klien diizinkan untuk mengeksekusi kueri terhadap sarang. Penerus HiveServer1, memungkinkan eksekusi beberapa kueri dari beberapa klien. Ini memberikan dukungan terbaik untuk klien API terbuka seperti JDBC dan ODBC.
  • Hive Driver: Pengguna mengirimkan pernyataan HiveQL ke driver Hive melalui shell perintah. Ini mengirimkan kueri ke kompiler dan membuat pegangan sesi untuk kueri.
  • Kompiler Hive: Kompiler Hive digunakan untuk meneruskan kueri. Menggunakan metadata yang disimpan di metastore, kompiler Hive melakukan analisis semantik dan pemeriksaan tipe pada blok dan ekspresi kueri yang berbeda. Rencana eksekusi kemudian dihasilkan oleh kompiler yang merupakan DAG (Directed Acyclic Graph). Setiap tahap DAG adalah operasi metadata, operasi pada HDFS, atau pekerjaan peta/pengurangan.
  • Pengoptimal: Peran utama pengoptimal adalah melakukan operasi transformasi pada rencana eksekusi. Ini meningkatkan efisiensi dan skalabilitas dengan membagi tugas.
  • Mesin Eksekusi : Setelah menyelesaikan langkah-langkah kompilasi dan optimasi, itu adalah peran mesin eksekusi yang mengeksekusi rencana eksekusi yang dibuat oleh kompiler. Rencana tersebut dieksekusi menggunakan Hadoop dalam urutan dependensinya.
  • Metastore : Metastore umumnya merupakan database relasional yang menyimpan informasi metadata yang terkait dengan struktur tabel dan partisi. Ini adalah repositori pusat yang juga mencakup penyimpanan informasi jenis kolom dan kolom. Informasi terkait serializer dan deserializer, juga disimpan di Metastore yang diperlukan untuk operasi baca/tulis bersama dengan file HDFS yang menyimpan data. Antarmuka Hemat disediakan oleh Metastore untuk menanyakan dan memanipulasi metadata Hive.

Metastore dapat dikonfigurasi dalam dua mode:

  • Remote: Mode ini berguna untuk aplikasi non-Java dan dalam mode remote metastore adalah layanan Thrift.
  • Tertanam: Dalam mode ini, klien dapat langsung berinteraksi dengan metastore melalui JDBC.
  • HCatalog: Tabel dan lapisan manajemen penyimpanan untuk Hadoop adalah HCatalog. Alat pemrosesan data yang berbeda untuk membaca dan menulis data di grid tersedia seperti Pig, MapReduce, dll. Dibangun di atas metastore Hive, data tabular dari metastore Hive diekspos ke alat pemrosesan data lainnya.
  • WebHCat: WebHCat adalah antarmuka HTTP dan REST API untuk HCatalog. Ia melakukan operasi metadata Hive dan menawarkan layanan menjalankan Hadoop MapReduce (atau YARN), Pig, Hive jobs.

3. Pengolahan dan Manajemen Sumber Daya

Eksekusi kueri dilakukan oleh kerangka kerja MapReduce internal.

Kerangka kerja MapReduce adalah kerangka kerja perangkat lunak untuk memproses sejumlah besar data pada kelompok besar perangkat keras komoditas. Data dibagi menjadi beberapa bagian dan kemudian diproses oleh tugas pengurangan peta.

4. Penyimpanan Terdistribusi

Layanan Hive berkomunikasi dengan penyimpanan Hive untuk melakukan tindakan berikut:

  • Hive “Meta storage database” menyimpan informasi metadata dari tabel yang dibuat di Hive.
  • Cluster Hadoop pada HDFS akan menyimpan hasil Query dan data yang dimuat ke dalam tabel.

Berbagai Mode Sarang

Tergantung pada ukuran data, Hive dapat beroperasi dalam dua mode.

  1. Mode lokal

Mode lokal Hive digunakan ketika

  • Hadoop yang diinstal memiliki satu node data dan diinstal dalam mode semu.
  • Ukuran data dari satu mesin lokal lebih kecil.
  • Pemrosesan cepat pada mesin lokal karena set data yang lebih kecil hadir.
  1. Mode pengurangan peta

Mode pengurangan Peta dari Hive digunakan ketika

  • Hadoop memiliki beberapa node data dengan data terdistribusi di seluruh node yang berbeda.
  • Ukuran data lebih besar dan eksekusi paralel dari kueri diperlukan.
  • Kumpulan data besar dapat diproses dengan kinerja yang lebih baik.

Karakteristik Sarang

  • Data dimuat ke dalam tabel setelah tabel dan database dibuat.
  • Hanya data terstruktur yang disimpan dalam tabel yang dapat dikelola dan dikueri oleh Hive.
  • Kerangka kerja Hive memiliki fitur pengoptimalan dan kegunaan saat menangani data terstruktur yang tidak ada dalam Pengurangan Peta.
  • Untuk kemudahan penggunaan, bahasa yang diilhami Hive SQL adalah pendekatan yang lebih sederhana dibandingkan dengan bahasa pemrograman kompleks Map Reduce. Konsep akrab tabel, baris, kolom, dll digunakan di Hive.
  • Untuk meningkatkan kinerja kueri, Hive dapat mempartisi data menggunakan struktur direktori.
  • Hive berisi komponen penting yang disebut "Metastore" yang berada di database relasional dan menyimpan informasi skema. Dua metode dapat digunakan untuk berinteraksi dengan Hive: antarmuka Web GUI dan Java Database Connectivity (JDBC).
  • Antarmuka baris perintah (CLI) digunakan untuk sebagian besar interaksi. CLI digunakan untuk menulis kueri Hive menggunakan Hive Query Language (HQL).
  • Sintaks HQL mirip dengan sintaks SQL.
  • Empat format file didukung oleh Hive; TEXTFILE, SEQUENCEFILE, ORC, dan RCFILE (Rekam File Kolom).

Kesimpulan

Apache Hive adalah alat pergudangan data sumber terbuka yang terdiri dari komponen utama seperti klien Hive, layanan Hive, kerangka kerja Pemrosesan dan Manajemen Sumber Daya, dan Penyimpanan Terdistribusi.

Itu dibangun di atas ekosistem Hadoop untuk pemrosesan struktur dan data semi-terstruktur. Antarmuka pengguna yang disediakan oleh Hive memungkinkan pengguna untuk mengirimkan kueri mereka dalam Bahasa Kueri Hive (HQL). Ini diteruskan ke kompiler untuk menghasilkan rencana eksekusi. Rencana tersebut akhirnya dieksekusi oleh mesin eksekusi.

Jika Anda tertarik untuk mengetahui lebih banyak tentang Big Data, lihat Diploma PG kami dalam Spesialisasi Pengembangan Perangkat Lunak dalam program Big Data yang dirancang untuk para profesional yang bekerja dan menyediakan 7+ studi kasus & proyek, mencakup 14 bahasa & alat pemrograman, praktik langsung lokakarya, lebih dari 400 jam pembelajaran yang ketat & bantuan penempatan kerja dengan perusahaan-perusahaan top.

Lihat Kursus Rekayasa Perangkat Lunak kami yang lain di upGrad.

Pimpin Revolusi Teknologi Berbasis Data

7 STUDI & PROYEK KASUS. BANTUAN KERJA DENGAN PERUSAHAAN TOP. MENTOR SISWA BERDEDIKASI.
Program Sertifikat Tingkat Lanjut dalam Data Besar dari IIIT Bangalore