Apa itu Hive? Senibina & Mod

Isi kandungan:

Anonim

Dalam tutorial ini, anda akan belajar-

  • Apa itu Hive?
  • Senibina Hive
  • Mod Hive yang berbeza
  • Apa itu Hive Server2 (HS2)?

Apa itu Hive?

Hive adalah alat pergudangan ETL dan Data yang dibangunkan di atas Hadoop Distused File System (HDFS). Hive menjadikan pekerjaan mudah untuk melakukan operasi seperti

  • Enkapsulasi data
  • Pertanyaan ad-hoc
  • Analisis set data yang besar

Ciri-ciri penting Hive

  • Di Hive, jadual dan pangkalan data dibuat terlebih dahulu dan kemudian data dimuat ke dalam jadual ini.
  • Hive sebagai gudang data yang direka untuk mengurus dan meminta hanya data berstruktur yang disimpan dalam jadual.
  • Semasa berurusan dengan data berstruktur, Map Reduce tidak mempunyai fitur pengoptimuman dan kebolehgunaan seperti UDF tetapi kerangka Hive tidak. Pengoptimuman pertanyaan merujuk kepada kaedah pelaksanaan pertanyaan yang berkesan dari segi prestasi.
  • Bahasa yang diilhamkan oleh Hive's SQL memisahkan pengguna dari kerumitan pengaturcaraan Map Reduce. Ia menggunakan semula konsep yang sudah biasa dari dunia pangkalan data relasional, seperti jadual, baris, lajur dan skema, dll untuk kemudahan belajar.
  • Pengaturcaraan Hadoop berfungsi pada fail rata. Oleh itu, Hive dapat menggunakan struktur direktori untuk "partisi" data untuk meningkatkan prestasi pada pertanyaan tertentu.
  • Komponen baru dan penting Hive iaitu Metastore yang digunakan untuk menyimpan maklumat skema. Metastore ini biasanya terdapat dalam pangkalan data hubungan. Kita boleh berinteraksi dengan Hive menggunakan kaedah seperti
    • GUI Web
    • Antara muka Java Database Connectivity (JDBC)
  • Sebilangan besar interaksi cenderung berlaku melalui antara muka baris perintah (CLI). Hive menyediakan CLI untuk menulis pertanyaan Hive menggunakan Hive Query Language (HQL)
  • Secara amnya, sintaks HQL serupa dengan sintaks SQL yang biasa dilakukan oleh kebanyakan penganalisis data. Pertanyaan Contoh di bawah memaparkan semua rekod yang terdapat dalam nama jadual yang disebutkan.
    • Contoh pertanyaan : Pilih * dari
  • Hive menyokong empat format fail iaitu TEXTFILE, SEQUENCEFILE, ORC dan RCFILE (Record Columnar File).
  • Untuk penyimpanan metadata pengguna tunggal, Hive menggunakan pangkalan data derby dan untuk Metadata berbilang pengguna atau kes Metadata bersama Hive menggunakan MYSQL.

Untuk menetapkan MySQL sebagai pangkalan data dan untuk menyimpan maklumat Meta-data, periksa Tutorial "Pemasangan dan Konfigurasi HIVE dan MYSQL"

Beberapa perkara penting mengenai Hive:

  • Perbezaan utama antara HQL dan SQL adalah bahawa pertanyaan Hive dijalankan pada infrastruktur Hadoop dan bukannya pangkalan data tradisional.
  • Pelaksanaan pertanyaan Hive akan menjadi seperti rangkaian peta yang dihasilkan secara automatik mengurangkan Pekerjaan.
  • Hive menyokong konsep partition dan bucket untuk mendapatkan kembali data dengan mudah apabila pelanggan melaksanakan pertanyaan.
  • Hive menyokong UDF khusus (Fungsi Ditentukan Pengguna) untuk pembersihan data, penapisan, dan lain-lain. Mengikut keperluan pengaturcara seseorang dapat menentukan UDF Hive.

Pangkalan Data Relatif Hive Vs: -

Dengan menggunakan Hive, kita dapat melakukan beberapa fungsi pelik yang tidak dicapai dalam Pangkalan Data Relasional. Untuk sejumlah besar data yang ada di peta-bytes, perlu dilakukan pertanyaan dan mendapatkan hasil dalam beberapa saat. Dan Hive melakukan ini dengan cukup cekap, memproses pertanyaan dengan pantas dan menghasilkan hasil pada saat kedua.

Mari lihat sekarang apa yang menjadikan Hive begitu cepat.

Beberapa perbezaan utama antara pangkalan data Hive dan relasional adalah seperti berikut;

Pangkalan data hubungan adalah " Skema di BACA dan Skema Tulis ". Pertama membuat jadual kemudian memasukkan data ke dalam jadual tertentu. Pada jadual pangkalan data relasional, fungsi seperti Penyisipan, Pembaharuan, dan Pengubahsuaian dapat dilakukan.

Hive adalah " Skema pada BACA sahaja ". Oleh itu, fungsi seperti kemas kini, pengubahsuaian, dan lain-lain tidak berfungsi dengan ini. Kerana pertanyaan Hive dalam kluster khas berjalan pada beberapa Node Data. Oleh itu, tidak mungkin untuk mengemas kini dan mengubah data di pelbagai nod. (Versi sarang di bawah 0.13)

Hive juga menyokong corak " READ Many WRITE Once ". Yang bermaksud bahawa setelah memasukkan jadual, kita dapat mengemas kini jadual dalam versi Hive terkini.

CATATAN : Walau bagaimanapun, versi baru Hive dilengkapi dengan ciri yang dikemas kini. Versi Hive (Hive 0.14) hadir dengan pilihan Update dan Delete sebagai ciri baru

Senibina Hive

Tangkapan skrin di atas menerangkan seni bina Apache Hive secara terperinci

Hive Terdiri daripada 3 bahagian teras

  1. Pelanggan Hive
  2. Perkhidmatan Hive
  3. Penyimpanan dan Pengkomputeran Hive

Pelanggan Hive:

Hive menyediakan pemacu yang berbeza untuk komunikasi dengan pelbagai jenis aplikasi. Untuk aplikasi berdasarkan Thrift, ia akan menyediakan pelanggan Thrift untuk komunikasi.

Untuk aplikasi yang berkaitan dengan Java, ia menyediakan Pemacu JDBC. Selain daripada jenis aplikasi yang disediakan pemacu ODBC. Pelanggan dan pemandu ini seterusnya berkomunikasi dengan pelayan Hive dalam perkhidmatan Hive.

Perkhidmatan Hive:

Interaksi pelanggan dengan Hive dapat dilakukan melalui Hive Services. Sekiranya pelanggan ingin melakukan operasi berkaitan pertanyaan di Hive, ia harus berkomunikasi melalui Perkhidmatan Hive.

CLI adalah antara muka baris perintah bertindak sebagai perkhidmatan Hive untuk operasi DDL (Data definisi Bahasa). Semua pemandu berkomunikasi dengan pelayan Hive dan pemacu utama dalam perkhidmatan Hive seperti yang ditunjukkan dalam rajah seni bina di atas.

Pemandu yang hadir dalam perkhidmatan Hive mewakili pemacu utama, dan ia menyampaikan semua jenis JDBC, ODBC, dan aplikasi khusus pelanggan lain. Pemandu akan memproses permintaan tersebut dari aplikasi yang berbeza ke sistem meta store dan lapangan untuk pemprosesan selanjutnya.

Penyimpanan dan Pengkomputeran Sarang:

Perkhidmatan sarang seperti Meta store, Sistem fail, dan Job Client seterusnya berkomunikasi dengan penyimpanan Hive dan melakukan tindakan berikut

  • Maklumat metadata jadual yang dibuat di Hive disimpan di Hive "Meta storage database".
  • Hasil pertanyaan dan data yang dimuat dalam jadual akan disimpan dalam kluster Hadoop pada HDFS.

Aliran pelaksanaan tugas:

Dari tangkapan skrin di atas kita dapat memahami aliran pelaksanaan Pekerjaan di Hive with Hadoop

Aliran data di Hive berkelakuan mengikut corak berikut;

  1. Melaksanakan Pertanyaan dari UI (Antara Muka Pengguna)
  2. Pemandu itu berinteraksi dengan Compiler untuk mendapatkan rancangannya. (Di sini rencana merujuk kepada pelaksanaan pertanyaan) proses dan pengumpulan maklumat metadata yang berkaitan
  3. Penyusun membuat rancangan untuk pekerjaan yang akan dilaksanakan. Compiler berkomunikasi dengan kedai Meta untuk mendapatkan permintaan metadata
  4. Meta store menghantar maklumat metadata kembali ke penyusun
  5. Kompilator berkomunikasi dengan Driver dengan rancangan yang dicadangkan untuk melaksanakan pertanyaan
  6. Pemandu Menghantar rancangan pelaksanaan ke mesin Eksekusi
  7. Execution Engine (EE) bertindak sebagai jambatan antara Hive dan Hadoop untuk memproses pertanyaan. Untuk operasi DFS.
  • EE harus menghubungi Node Nama terlebih dahulu dan kemudian ke Nod data untuk mendapatkan nilai yang disimpan dalam jadual.
  • EE akan mengambil rekod yang dikehendaki dari Node Data. Data sebenar jadual terletak pada simpul data sahaja. Sementara dari Name Node, ia hanya mengambil maklumat metadata untuk pertanyaan.
  • Ia mengumpulkan data sebenar dari node data yang berkaitan dengan pertanyaan yang disebutkan
  • Execution Engine (EE) berkomunikasi dua arah dengan kedai Meta yang terdapat di Hive untuk melakukan operasi DDL (Data Definition Language). Di sini operasi DDL seperti jadual dan pangkalan data CREATE, DROP dan ALTERING dilakukan. Meta store akan menyimpan maklumat mengenai nama pangkalan data, nama jadual dan nama lajur sahaja. Ia akan mengambil data yang berkaitan dengan pertanyaan yang disebutkan.
  • Execution Engine (EE) seterusnya berkomunikasi dengan daemon Hadoop seperti Node nama, Node data, dan penjejak kerja untuk melaksanakan pertanyaan di atas sistem fail Hadoop
  1. Hasil pengambilan daripada pemandu
  2. Menghantar hasil ke mesin Eksekusi. Setelah keputusan diambil dari node data ke EE, ia akan menghantar hasil kembali kepada pemacu dan ke UI (bahagian depan)

Hive Terus berhubung dengan sistem fail Hadoop dan daemonnya melalui mesin Eksekusi. Anak panah bertitik dalam rajah aliran Pekerjaan menunjukkan komunikasi enjin Pelaksanaan dengan daemon Hadoop.

Mod Hive yang berbeza

Hive boleh beroperasi dalam dua mod bergantung pada ukuran node data di Hadoop.

Mod ini adalah,

  • Mod tempatan
  • Mod pengurangan peta

Bila hendak menggunakan mod Tempatan:

  • Sekiranya Hadoop dipasang dalam mod pseudo dengan mempunyai satu node data, kami menggunakan Hive dalam mod ini
  • Sekiranya ukuran data lebih kecil dari segi terhad kepada mesin tempatan tunggal, kita dapat menggunakan mod ini
  • Pemprosesan akan sangat cepat pada set data yang lebih kecil yang terdapat di mesin tempatan

Bila hendak menggunakan mod pengurangan Peta:

  • Sekiranya Hadoop mempunyai banyak node data dan data diedarkan di pelbagai nod yang berlainan, kami menggunakan Hive dalam mod ini
  • Ia akan berfungsi pada sejumlah besar set data dan pertanyaan yang akan dilaksanakan secara selari
  • Pemprosesan set data yang besar dengan prestasi yang lebih baik dapat dicapai melalui mod ini

Di Hive, kita dapat menetapkan harta ini untuk menyebut mod Hive yang boleh berfungsi? Secara lalai, ia berfungsi pada mod Pengurangan Peta dan untuk mod tempatan, anda boleh mempunyai pengaturan berikut.

Sarang bekerja dalam set mod tempatan

SET mapred.job.tracker = tempatan;

Dari versi Hive 0.7 ia menyokong mod untuk menjalankan peta mengurangkan pekerjaan dalam mod tempatan secara automatik.

Apa itu Hive Server2 (HS2)?

HiveServer2 (HS2) adalah antara muka pelayan yang melakukan fungsi berikut:

  • Membolehkan klien jauh untuk melaksanakan pertanyaan terhadap Hive
  • Dapatkan hasil pertanyaan yang disebutkan

Dari versi terbaru ia mempunyai beberapa ciri canggih Berdasarkan Thrift RPC seperti;

  • Serentak berbilang pelanggan
  • Pengesahan

Ringkasan:

Hive adalah alat gudang ETL dan data di atas ekosistem Hadoop dan digunakan untuk memproses data berstruktur dan separa berstruktur.

  • Hive adalah pangkalan data yang terdapat dalam ekosistem Hadoop melakukan operasi DDL dan DML, dan menyediakan bahasa pertanyaan fleksibel seperti HQL untuk pertanyaan dan pemprosesan data yang lebih baik.
  • Ia menyediakan begitu banyak ciri berbanding RDMS yang mempunyai batasan tertentu.

Untuk logik khusus pengguna untuk memenuhi keperluan pelanggan.

  • Ini menyediakan pilihan untuk menulis dan menggunakan skrip yang ditentukan khas dan fungsi yang ditentukan oleh Pengguna.
  • Di samping itu, ia menyediakan partition dan bucket untuk logik khusus penyimpanan.