Kapan harus menggunakan Hadoop, HBase, Hive, dan Pig?


185

Apa manfaat menggunakan Hadoop atau HBase atau Hive ?

Dari pemahaman saya, HBase menghindari penggunaan pengurangan peta dan memiliki penyimpanan berorientasi kolom di atas HDFS. Hive adalah antarmuka mirip sql untuk Hadoop dan HBase .

Saya juga ingin tahu bagaimana Hive dibandingkan dengan Babi .


Hadoop : Sistem File Terdistribusi Hadoop + Model pemrosesan komputasi MapReduce. HBase : Penyimpanan Nilai Kunci, baik untuk membaca dan menulis dalam waktu dekat. Hive : Digunakan untuk ekstraksi data dari HDFS menggunakan sintaks seperti SQL. Babi : adalah bahasa aliran data untuk membuat ETL.
dbustosp

Jawaban:


348

MapReduce hanyalah kerangka kerja komputasi . HBase tidak ada hubungannya dengan itu. Yang mengatakan, Anda dapat secara efisien menempatkan atau mengambil data ke / dari HBase dengan menulis pekerjaan MapReduce. Atau Anda dapat menulis program berurutan menggunakan API HBase lainnya, seperti Java, untuk meletakkan atau mengambil data. Tapi kami menggunakan Hadoop, HBase dll untuk menangani jumlah data yang sangat besar, sehingga tidak masuk akal. Menggunakan program berurutan normal akan sangat tidak efisien ketika data Anda terlalu besar.

Kembali ke bagian pertama dari pertanyaan Anda, Hadoop pada dasarnya adalah 2 hal: Sistem File Terdistribusi (HDFS) + kerangka kerja Komputasi atau Pemrosesan (MapReduce) . Seperti semua FS lainnya, HDFS juga menyediakan penyimpanan kepada kami, tetapi dengan cara yang toleran terhadap kesalahan dengan throughput yang tinggi dan risiko kehilangan data yang lebih rendah (karena replikasi). Namun, sebagai FS, HDFS tidak memiliki akses baca dan tulis acak . Di sinilah HBase muncul. Ini adalah penyimpanan data yang terdistribusi, terukur, dan besar , meniru Google BigTable. Ini menyimpan data sebagai pasangan kunci / nilai.

Datang ke Hive. Ini memberikan kami fasilitas penyimpanan data di atas cluster Hadoop yang ada. Bersamaan dengan itu ia menyediakan antarmuka seperti SQL yang membuat pekerjaan Anda lebih mudah, jika Anda berasal dari latar belakang SQL. Anda dapat membuat tabel di Sarang dan menyimpan data di sana. Bersamaan dengan itu Anda bahkan dapat memetakan tabel HBase yang ada ke Hive dan mengoperasikannya.

Sedangkan Pig pada dasarnya adalah bahasa aliran data yang memungkinkan kita untuk memproses data dalam jumlah sangat besar dengan sangat mudah dan cepat. Babi pada dasarnya memiliki 2 bagian: Penerjemah Babi dan bahasa, PigLatin . Anda menulis skrip Babi di PigLatin dan menggunakan interpreter Babi memprosesnya. Babi membuat hidup kita jauh lebih mudah, jika tidak, menulis MapReduce selalu tidak mudah. Bahkan dalam beberapa kasus justru bisa jadi menyebalkan.

Saya telah menulis artikel tentang perbandingan singkat berbagai alat ekosistem Hadoop beberapa waktu lalu. Ini bukan perbandingan mendalam, tetapi intro singkat untuk masing-masing alat yang dapat membantu Anda memulai. (Hanya untuk menambah jawaban saya. Promosi diri tidak dimaksudkan)

Kueri Hive dan Babi dikonversi menjadi pekerjaan MapReduce di bawah tenda.

HTH


Anda lupa berbicara tentang yarnekosistem Hadoop :(.
Kenry Sanchez

53

Saya mengimplementasikan platform Hive Data baru-baru ini di perusahaan saya dan dapat berbicara dengannya secara langsung karena saya adalah tim satu orang.

Objektif

  1. Untuk membuat file log web harian dikumpulkan dari 350+ server setiap hari, dapat diminta melalui beberapa bahasa seperti SQL
  2. Untuk mengganti data agregasi harian yang dihasilkan melalui MySQL dengan Hive
  3. Buat laporan khusus melalui kueri di Hive

Opsi Arsitektur

Saya membandingkan opsi berikut:

  1. Sarang + HDFS
  2. Hive + HBase - kueri terlalu lambat sehingga saya membuang opsi ini

Rancangan

  1. File log harian diangkut ke HDFS
  2. Pekerjaan MR mem-parsing file log ini dan file output dalam HDFS
  3. Buat tabel Hive dengan partisi dan lokasi yang menunjuk ke lokasi HDFS
  4. Buat skrip permintaan Hive (sebut saja HQL jika Anda suka sebagai diff dari SQL ) yang pada gilirannya menjalankan pekerjaan MR di latar belakang dan menghasilkan data agregasi
  5. Masukkan semua langkah ini ke dalam alur kerja Oozie - dijadwalkan dengan Koordinator Oozie Harian

Ringkasan

HBase seperti Peta. Jika Anda tahu kuncinya, Anda bisa langsung mendapatkan nilainya. Tetapi jika Anda ingin tahu berapa banyak kunci integer di Hbase adalah antara 10.00000 dan 2000000 yang tidak cocok untuk Hbase saja.

Jika Anda memiliki data yang perlu dikumpulkan, digulung, dianalisis di seluruh baris, pertimbangkan Hive .

Semoga ini bisa membantu.

Sarang sebenarnya batu ... Saya tahu, saya telah hidup selama 12 bulan sekarang ... Begitu juga HBase ...


1
HBase adalah database NonSQL yang menyimpan data dalam HDFS. Ini digunakan ketika Anda membutuhkan akses baca / tulis acak ke data besar Anda.
Root Loop

28

Hadoop adalah kerangka kerja yang memungkinkan pemrosesan terdistribusi set data besar di seluruh cluster komputer menggunakan model pemrograman sederhana.

Ada empat modul utama di Hadoop.

  1. Hadoop Common : Utilitas umum yang mendukung modul Hadoop lainnya.

  2. Sistem File Terdistribusi Hadoop ( HDFS ™ ): Sistem file terdistribusi yang menyediakan akses throughput tinggi ke data aplikasi.

  3. Hadoop YARN : Kerangka kerja untuk penjadwalan pekerjaan dan manajemen sumber daya klaster.

  4. Hadoop MapReduce : Sistem berbasis YARN untuk pemrosesan paralel set data besar.

Sebelum melangkah lebih jauh, Mari kita perhatikan bahwa kita memiliki tiga tipe data yang berbeda.

  • Terstruktur : Data terstruktur memiliki skema yang kuat dan skema akan diperiksa selama operasi tulis & baca. mis. Data dalam sistem RDBMS seperti Oracle, MySQL Server dll.

  • Tidak terstruktur : Data tidak memiliki struktur apa pun dan bisa berupa apa saja - Log server web, E-Mail, Gambar, dll.

  • Semi-terstruktur : Data tidak terstruktur secara ketat tetapi memiliki beberapa struktur. mis. file XML.

Tergantung pada jenis data yang akan diproses, kami harus memilih teknologi yang tepat.

Beberapa proyek lagi, yang merupakan bagian dari Hadoop:

  • HBase ™ : Basis data terukur dan terdistribusi yang mendukung penyimpanan data terstruktur untuk tabel besar.

  • Hive ™: Infrastruktur gudang data yang menyediakan summarization data dan permintaan khusus.

  • Pig ™ : Bahasa aliran data tingkat tinggi dan kerangka kerja eksekusi untuk komputasi paralel.

Perbandingan Hive Vs PIG dapat ditemukan di artikel ini dan postingan saya yang lain di pertanyaan SE ini .

HBASE tidak akan mengganti Pengurangan Peta. HBase adalah basis data terdistribusi scalable & Map Reduce adalah model pemrograman untuk pemrosesan data terdistribusi. Pengurangan Peta dapat bertindak berdasarkan data dalam HBASE dalam pemrosesan.

Anda dapat menggunakan HIVE / HBASE untuk data terstruktur / semi-terstruktur dan memprosesnya dengan Hadoop Map Reduce

Anda dapat menggunakan SQOOP untuk mengimpor data terstruktur dari database RDBMS tradisional Oracle, SQL Server dll dan memprosesnya dengan Hadoop Map Reduce

Anda dapat menggunakan FLUME untuk memproses data dan proses yang tidak terstruktur dengan Hadoop Map Reduce

Lihatlah: Hadoop Use Cases .

Hive harus digunakan untuk query analitik data yang dikumpulkan selama periode waktu tertentu. mis. Hitung tren, rangkum log situs web tetapi tidak dapat digunakan untuk kueri waktu-nyata.

HBase cocok untuk query Big Data waktu nyata. Facebook menggunakannya untuk olahpesan dan analitik waktu-nyata.

PIG dapat digunakan untuk membangun aliran data, menjalankan pekerjaan yang dijadwalkan, menyusun data dalam volume besar, mengumpulkan / merangkumnya dan menyimpannya ke dalam sistem basis data relasi. Bagus untuk analisis ad-hoc.

Hive dapat digunakan untuk analisis data ad-hoc tetapi tidak dapat mendukung semua format data yang tidak terstruktur seperti PIG.


Facebook tidak lagi menggunakan HBase sumber terbuka untuk sistem pengiriman pesan waktu nyata. Mereka menggantinya dengan in-house [database Myrocks] mereka. ( engineering.fb.com/core-data/… )
PPK

23

Pertimbangkan bahwa Anda bekerja dengan RDBMS dan harus memilih apa yang akan digunakan - pemindaian tabel penuh, atau akses indeks - tetapi hanya salah satunya.
Jika Anda memilih pemindaian tabel penuh - gunakan sarang. Jika akses indeks - HBase.


Sebenarnya Anda dapat membangun Hive di HBase sehingga Anda dapat menggunakan HQL untuk memindai penuh hbase sambil dapat melakukan kueri yang diindeks di hbase secara langsung. Tapi saya ragu ini memberi Anda kinerja lebih lambat pada pemindaian penuh.
FrostNovaZzz

HBase adalah sistem berorientasi menulis, itu tidak optimal pada pemindaian, meskipun data disimpan diurutkan. Jadi, sementara memindai beberapa rentang dapat menjadi pilihan yang baik, pemindaian penuh akan jauh lebih lambat daripada langsung dari HDFS
David Gruzman

5

Untuk Perbandingan Antara Hadoop Vs Cassandra / HBase baca posting ini .

Pada dasarnya HBase memungkinkan membaca dan menulis dengan sangat cepat dengan skalabilitas. Seberapa cepat dan terukur? Facebook menggunakannya untuk mengelola status penggunanya, foto, pesan obrolan dll. HBase sangat cepat kadang-kadang tumpukan telah dikembangkan oleh Facebook untuk menggunakan HBase sebagai penyimpan data untuk Hive sendiri.

Where As Hive lebih mirip solusi Data Warehousing. Anda dapat menggunakan sintaksis yang mirip dengan SQL untuk meminta konten Hive yang menghasilkan pekerjaan Mengurangi Peta. Tidak ideal untuk sistem transaksional yang cepat.


5

Saya bekerja pada pemrosesan arsitektur Lambda Waktu nyata dan beban Batch. Pemrosesan waktu nyata diperlukan ketika keputusan cepat harus diambil jika Fire alarm dikirim oleh sensor atau deteksi penipuan jika terjadi transaksi perbankan. Pemrosesan batch diperlukan untuk merangkum data yang dapat dimasukkan ke dalam sistem BI.

kami menggunakan teknologi ekosistem Hadoop untuk aplikasi di atas.

Pemrosesan Real Time

Apache Storm: Pemrosesan data stream, aplikasi aturan

HBase: Datastore untuk melayani dasbor Realtime

Batch Processing Hadoop: Mengumpulkan data dalam jumlah sangat besar. Ikhtisar 360 derajat atau menambahkan konteks ke acara. Antarmuka atau kerangka kerja seperti Babi, MR, Spark, Hive, Shark membantu dalam komputasi. Lapisan ini membutuhkan penjadwal yang Oozie adalah pilihan yang baik.

Lapisan Penanganan Acara

Apache Kafka adalah lapisan pertama yang mengkonsumsi peristiwa kecepatan tinggi dari sensor. Kafka melayani aliran data analitik Waktu Nyata dan Batch melalui konektor Linkedin.


5

Memahami secara mendalam

Hadoop

Hadoopadalah proyek open source dari Apacheyayasan. Ini adalah kerangka kerja yang ditulis Java, awalnya dikembangkan oleh Doug Cutting pada tahun 2005. Ini dibuat untuk mendukung distribusi untuk Nutch, mesin pencari teks. Hadoopmenggunakan Google Map Reducedan Teknologi Sistem File Google sebagai fondasinya.

Fitur Hadoop

  1. Ini dioptimalkan untuk menangani sejumlah besar data terstruktur, semi-terstruktur dan tidak terstruktur menggunakan perangkat keras komoditas.
  2. Ini tidak berbagi arsitektur apa pun.
  3. Ini mereplikasi datanya ke beberapa komputer sehingga jika salah satu turun, data masih dapat diproses dari mesin lain yang menyimpan replika.
  4. Hadoopuntuk throughput tinggi daripada latensi rendah. Ini adalah operasi batch yang menangani sejumlah besar data; oleh karena itu waktu responsnya tidak langsung.
  5. Ini melengkapi Pemrosesan Transaksi Online dan Pemrosesan Analitik Daring. Namun, ini bukan pengganti untuk RDBMS.
  6. Itu tidak baik ketika pekerjaan tidak dapat diparalelkan atau ketika ada ketergantungan dalam data.
  7. Ini tidak baik untuk memproses file kecil. Ini bekerja paling baik dengan file data besar dan kumpulan data.

Versi Hadoop

Ada dua versi yang Hadooptersedia:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

Ini memiliki dua bagian utama:

1. Kerangka Penyimpanan Data

Ini adalah sistem file tujuan umum yang disebut Sistem File Terdistribusi Hadoop ( HDFS).

HDFS skema-kurang

Ini hanya menyimpan file data dan file data ini bisa dalam format apa saja.

Idenya adalah untuk menyimpan file sedekat mungkin dengan bentuk aslinya.

Hal ini pada gilirannya memberikan keleluasaan dan kelincahan yang sangat dibutuhkan unit bisnis dan organisasi tanpa terlalu khawatir dengan apa yang dapat diimplementasikan.

2. Kerangka Pemrosesan Data

Ini adalah model pemrograman fungsional sederhana yang awalnya dipopulerkan oleh Google sebagai MapReduce.

Ini pada dasarnya menggunakan dua fungsi: MAPdan REDUCEuntuk memproses data.

"Pemeta" mengambil satu set pasangan nilai kunci dan menghasilkan data perantara (yang merupakan daftar pasangan nilai kunci lainnya).

"Pengecil" kemudian bertindak atas input ini untuk menghasilkan data output.

Kedua fungsi ini tampaknya bekerja secara terpisah satu sama lain, sehingga memungkinkan pemrosesan menjadi sangat terdistribusi dalam cara yang sangat paralel, toleransi kesalahan dan terukur.

Keterbatasan Hadoop 1.0

  1. Keterbatasan pertama adalah persyaratan MapReducekeahlian pemrograman.

  2. Ini hanya mendukung pemrosesan batch yang walaupun cocok untuk tugas-tugas seperti analisis log, proyek penambangan data skala besar tetapi cukup banyak tidak cocok untuk jenis proyek lainnya.

  3. Satu batasan utama adalah yang Hadoop 1.0secara komputasional digabungkan dengan MapReduce, yang berarti bahwa vendor manajemen data yang mapan meninggalkan dua pendapat:

    1. Tulis ulang fungsionalitasnya MapReducesehingga dapat dieksekusi di Hadoopatau

    2. Mengekstrak data dari HDFSatau memprosesnya di luar Hadoop.

Tak satu pun dari opsi yang layak karena menyebabkan proses inefisiensi yang disebabkan oleh data yang dipindahkan masuk dan keluar dari Hadoopcluster.

Hadoop 2.0

Dalam Hadoop 2.0, HDFSterus menjadi kerangka penyimpanan data.

Namun, kerangka kerja manajemen sumber daya baru dan terpisah disebut Y et Sebuah nother R eSource N egotiater ( BENANG ) telah ditambahkan.

Setiap aplikasi yang mampu membagi dirinya menjadi tugas-tugas paralel didukung oleh YARN.

YARN mengoordinasikan alokasi subtugas aplikasi yang diajukan, dengan demikian semakin meningkatkan fleksibilitas, skalabilitas, dan efisiensi aplikasi.

Ini bekerja dengan memiliki Master Aplikasi menggantikan Job Tracker , menjalankan aplikasi pada sumber daya yang diatur oleh Node Manager baru .

ApplicationMaster dapat menjalankan aplikasi apa pun dan bukan hanya MapReduce.

Ini berarti tidak hanya mendukung pemrosesan batch tetapi juga pemrosesan waktu nyata. MapReducebukan lagi satu-satunya pilihan pemrosesan data.

Keuntungan dari Hadoop

Ini menyimpan data dalam bahasa aslinya dari. Tidak ada struktur yang dipaksakan saat memasukkan data atau menyimpan data. HDFSskema kurang. Hanya kemudian ketika data perlu diproses bahwa struktur dikenakan pada data mentah.

Itu scalable. Hadoopdapat menyimpan dan mendistribusikan dataset sangat besar di ratusan server murah yang beroperasi secara paralel.

Itu tangguh terhadap kegagalan. Hadoopadalah toleransi kesalahan. Ini berlatih replikasi data dengan rajin yang berarti setiap kali data dikirim ke node apa pun, data yang sama juga akan direplikasi ke node lain di cluster, sehingga memastikan bahwa jika terjadi kegagalan node, akan selalu ada salinan data lain yang tersedia untuk digunakan.

Itu fleksibel. Salah satu keuntungan utama Hadoopadalah dapat bekerja dengan semua jenis data: terstruktur, tidak terstruktur atau semi-terstruktur. Juga, pemrosesan sangat cepat Hadoopkarena paradigma "pindahkan kode ke data".

Ekosistem Hadoop

Berikut ini adalah komponen Hadoopekosistem:

HDFS : HadoopSistem File Terdistribusi. Ini hanya menyimpan file data sedekat mungkin dengan bentuk aslinya.

HBase : Ini adalah basis data Hadoop dan membandingkannya dengan RDBMS. Ini mendukung penyimpanan data terstruktur untuk tabel besar.

Hive : Ini memungkinkan analisis dataset besar menggunakan bahasa yang sangat mirip dengan standar ANSI SQL, yang menyiratkan bahwa siapa pun yang familier SQLharus dapat mengakses data pada sebuah Hadoopcluster.

Babi : Ini adalah bahasa aliran data yang mudah dimengerti. Ini membantu dengan analisis dataset besar yang cukup sesuai Hadoop. Pigskrip secara otomatis dikonversi ke MapReducepekerjaan oleh Pigpenerjemah.

ZooKeeper : Ini adalah layanan koordinasi untuk aplikasi terdistribusi.

Oozie : Ini adalah schedularsistem alur kerja untuk mengelola Hadooppekerjaan Apache .

Mahout : Ini adalah pembelajaran mesin dan data mining library yang dapat diukur.

Chukwa : Ini adalah sistem pengumpulan data untuk mengelola sistem terdistribusi besar.

Sqoop : Digunakan untuk mentransfer data massal antara Hadoopdan penyimpanan data terstruktur seperti database relasional.

Ambari : Ini adalah alat berbasis web untuk penyediaan, pengelolaan, dan pemantauan Hadoopcluster.

Sarang lebah

Hiveadalah alat infrastruktur data warehouse untuk memproses data terstruktur di Indonesia Hadoop. Itu berada di atas Hadoopuntuk merangkum Big Data dan membuat kueri dan analisis mudah.

Sarang tidak

  1. Database relasional

  2. Desain untuk Pemrosesan Transaksi Online ( OLTP).

  3. Bahasa untuk kueri waktu-nyata dan pembaruan tingkat baris.

Fitur Hive

  1. Ini menyimpan skema dalam database dan memproses data menjadi HDFS.

  2. Ini dirancang untuk OLAP.

  3. Ini menyediakan SQLjenis bahasa untuk kueri yang disebut HiveQLatau HQL.

  4. Itu lebih familier, cepat, terukur, dan dapat diperluas.

Arsitektur Sarang

Komponen-komponen berikut terkandung dalam Hive Architecture:

  1. User Interface : Hiveadalah data warehouseinfrastruktur yang dapat membuat interaksi antara pengguna dan HDFS. User Interfaces yang Hivemendukung adalah Hive Web UI, Hive Command line dan Hive HD Insight (In Windows Server).

  2. MetaStore : Hivememilih masing database servers- masing untuk menyimpan skema atau Metadatatabel, basis data, kolom dalam tabel, tipe data dan HDFSpemetaannya.

  3. Mesin Proses HiveQL : HiveQLmirip dengan SQLuntuk menanyakan informasi skema di Internet Metastore. Ini adalah salah satu pengganti pendekatan tradisional untuk MapReduceprogram. Alih-alih menulis MapReducedi Java, kita dapat menulis permintaan untuk MapReducedan memprosesnya.

  4. Exceution Engine : Bagian yang berhubungan dengan HiveQLengine proses dan MapReducemerupakan HiveExecution Engine. Mesin eksekusi memproses kueri dan menghasilkan hasil yang sama dengan MapReduce results. Ini menggunakan rasa MapReduce.

  5. HDFS atau HBase : HadoopSistem File Terdistribusi atau HBaseteknik penyimpanan data untuk menyimpan data ke dalam sistem file.


1

Pertama-tama kita harus jelas bahwa Hadoop diciptakan sebagai alternatif yang lebih cepat daripada RDBMS . Untuk memproses sejumlah besar data dengan kecepatan sangat cepat yang sebelumnya membutuhkan banyak waktu di RDBMS.

Sekarang orang harus tahu dua istilah:

  1. Data Terstruktur : Ini adalah data yang kami gunakan dalam RDBMS tradisional dan dibagi menjadi struktur yang didefinisikan dengan baik.

  2. Data Tidak Terstruktur : Ini penting untuk dipahami, sekitar 80% dari data dunia tidak terstruktur atau semi terstruktur. Ini adalah data yang ada di formulir mentah dan tidak dapat diproses menggunakan RDMS. Contoh: facebook, data twitter. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

Jadi, sejumlah besar data sedang dihasilkan dalam beberapa tahun terakhir dan sebagian besar data tidak terstruktur, yang melahirkan HADOOP. Itu terutama digunakan untuk jumlah data yang sangat besar yang membutuhkan jumlah waktu yang tidak layak menggunakan RDBMS. Itu memiliki banyak kelemahan, bahwa itu tidak dapat digunakan untuk data yang relatif kecil secara real time tetapi mereka telah berhasil menghapus kekurangannya di versi yang lebih baru.

Sebelum melangkah lebih jauh, saya ingin memberi tahu bahwa alat Big Data baru dibuat ketika mereka melihat kesalahan pada alat sebelumnya. Jadi, alat apa pun yang akan Anda lihat yang dibuat telah dilakukan untuk mengatasi masalah alat sebelumnya.

Hadoop dapat dikatakan sebagai dua hal: Mapreduce dan HDFS . Mapreduce adalah tempat pemrosesan berlangsung dan HDFS adalah DataBase tempat data disimpan. Struktur ini mengikuti prinsip WORM yaitu menulis sekali membaca beberapa kali. Jadi, setelah kami menyimpan data dalam HDFS, kami tidak dapat membuat perubahan. Ini mengarah pada penciptaan HBASE , produk NOSQL di mana kita dapat membuat perubahan dalam data juga setelah menulisnya sekali.

Tetapi seiring waktu kami melihat bahwa Hadoop memiliki banyak kesalahan dan untuk itu kami menciptakan lingkungan yang berbeda dari struktur Hadoop. PIG dan HIVE adalah dua contoh populer.

HIVE dibuat untuk orang dengan latar belakang SQL . Pertanyaan yang ditulis mirip dengan SQL bernama HIVEQL . HIVE dikembangkan untuk memproses data yang sepenuhnya terstruktur . Itu tidak digunakan untuk data terstruktur.

PIG di sisi lain memiliki bahasa query sendiri yaitu PIG LATIN . Hal ini dapat digunakan untuk kedua terstruktur serta data tidak terstruktur .

Beralih ke perbedaan seperti kapan harus menggunakan HIVE dan kapan harus menggunakan BABI, saya tidak berpikir orang lain selain yang bisa dikatakan arsitek BABI. Ikuti tautan: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


1

Hadoop:

HDFS adalah kependekan dari Hadoop Distributed File System yang menggunakan model pemrosesan Computational Map-Reduce.

HBase:

HBase adalah penyimpanan Nilai-Kunci, baik untuk membaca dan menulis dalam waktu dekat.

Sarang lebah:

Hive digunakan untuk ekstraksi data dari HDFS menggunakan sintaks seperti SQL. Sarang menggunakan bahasa HQL.

Babi:

Babi adalah bahasa aliran data untuk membuat ETL. Ini bahasa scripting.


0

Biarkan saya mencoba menjawab dalam beberapa kata.

Hadoop adalah sistem ramah lingkungan yang terdiri dari semua alat lainnya. Jadi, Anda tidak dapat membandingkan Hadoop tetapi Anda dapat membandingkan MapReduce.

Ini beberapa sen saya:

  1. Hive: Jika kebutuhan Anda sangat SQLish yang berarti pernyataan masalah Anda dapat dipenuhi oleh SQL, maka hal termudah untuk dilakukan adalah menggunakan Hive. Kasus lain, ketika Anda akan menggunakan sarang adalah ketika Anda ingin server memiliki struktur data tertentu.
  2. Babi: Jika Anda merasa nyaman dengan Babi Latin dan yang Anda butuhkan adalah lebih banyak jalur pipa data. Juga, data Anda tidak memiliki struktur. Dalam kasus itu, Anda bisa menggunakan Babi. Jujur tidak ada banyak perbedaan antara Hive & Pig sehubungan dengan kasus penggunaan.
  3. MapReduce: Jika masalah Anda tidak dapat diselesaikan dengan menggunakan SQL langsung, Anda harus terlebih dahulu mencoba membuat UDF untuk Hive & Pig dan kemudian jika UDF tidak menyelesaikan masalah maka menyelesaikannya melalui MapReduce masuk akal.

0

Babi: lebih baik untuk menangani file dan membersihkan data contoh: menghapus nilai-nilai nol, penanganan string, nilai-nilai yang tidak perlu Hive: untuk query pada data yang dibersihkan


0

1. Kami menggunakan Hadoop untuk menyimpan data besar (iestructure, Unstructure, dan Semistructure data) dalam format file form seperti txt, csv.

2.Jika Kami ingin Pembaruan kolom di data kami maka kami menggunakan alat Hbase

3.Dalam kasus Hive, kami menyimpan Big data yang dalam format terstruktur dan selain itu kami menyediakan Analisis pada data tersebut.

4.Pig adalah alat yang menggunakan bahasa latin Pig untuk menganalisis data dalam format apa pun (struktur, semi struktur dan tidak terstruktur).


0

Membersihkan Data dalam Babi sangat mudah, pendekatan yang sesuai adalah membersihkan data melalui babi dan kemudian memproses data melalui sarang dan kemudian mengunggahnya ke hdfs.


0

Penggunaan Hive, Hbase dan Pig wrt pengalaman real time saya di berbagai proyek.

Hive digunakan sebagian besar untuk:

  • Tujuan analisis di mana Anda perlu melakukan analisis pada data riwayat

  • Membuat laporan bisnis berdasarkan kolom tertentu

  • Mengelola data secara efisien bersama dengan informasi metadata

  • Menggabungkan tabel pada kolom tertentu yang sering digunakan dengan menggunakan konsep bucketing

  • Efisien Menyimpan dan menanyakan menggunakan konsep partisi

  • Tidak berguna untuk operasi tingkat transaksi / baris seperti memperbarui, menghapus, dll.

Babi banyak digunakan untuk:

  • Analisis data yang sering dilakukan pada data yang sangat besar

  • Menghasilkan nilai / jumlah teragregasi pada data besar

  • Menghasilkan indikator kinerja utama tingkat perusahaan sangat sering

Hbase sebagian besar digunakan:

  • Untuk pemrosesan data waktu nyata

  • Untuk mengelola skema Kompleks dan bersarang secara efisien

  • Untuk permintaan waktu nyata dan hasil yang lebih cepat

  • Untuk Skalabilitas mudah dengan kolom

  • Berguna untuk operasi tingkat baris / transaksi seperti memperbarui, menghapus, dll.


0

Jawaban singkat untuk pertanyaan ini adalah -

Hadoop - Adalah Kerangka yang memfasilitasi sistem file terdistribusi dan model pemrograman yang memungkinkan kita untuk menyimpan data berukuran besar dan memproses data dalam mode terdistribusi dengan sangat efisien dan dengan waktu pemrosesan yang sangat sedikit dibandingkan dengan pendekatan tradisional.

(HDFS - Sistem File Terdistribusi Hadoop) (Pengurangan Peta - Model Pemrograman untuk pemrosesan terdistribusi)

Hive - Adalah bahasa query yang memungkinkan untuk membaca / menulis data dari sistem file terdistribusi Hadoop dalam mode seperti SQL yang sangat populer. Ini membuat hidup lebih mudah bagi banyak orang berlatar belakang non-pemrograman karena mereka tidak perlu lagi menulis program Map-Reduce kecuali untuk skenario yang sangat kompleks di mana Hive tidak didukung.

Hbase - Adalah Basis Data NoSQL Kolom. Lapisan penyimpanan yang mendasarinya untuk Hbase adalah HDFS lagi. Kasus penggunaan terpenting untuk database ini adalah untuk dapat menyimpan miliaran baris dengan jutaan kolom. Fitur latensi rendah dari Hbase membantu akses yang lebih cepat dan acak dari catatan atas data yang didistribusikan, adalah fitur yang sangat penting untuk membuatnya berguna untuk proyek-proyek kompleks seperti Mesin Rekomendasi. Juga kemampuan versi tingkat catatan memungkinkan pengguna untuk menyimpan data transaksional sangat efisien (ini memecahkan masalah memperbarui catatan yang kita miliki dengan HDFS dan Hive)

Semoga ini bisa membantu untuk cepat memahami 3 fitur di atas.


0

Saya percaya utas ini belum melakukan keadilan khusus untuk HBase dan Babi khususnya. Sementara saya percaya Hadoop adalah pilihan sistem file yang terdistribusi dan tangguh untuk implementasi big-data lake, pilihan antara HBase dan Hive secara khusus dipisahkan dengan baik.

Seperti dalam, banyak kasus penggunaan memiliki persyaratan tertentu seperti SQL atau atau antarmuka No-SQL. Dengan Phoenix di atas HBase, meskipun kemampuan seperti SQL jelas dapat dicapai, namun, kinerja, integrasi pihak ketiga, pembaruan dasbor adalah semacam pengalaman yang menyakitkan. Namun, ini adalah pilihan yang sangat baik untuk database yang membutuhkan penskalaan horizontal.

Babi khususnya sangat baik untuk batch non-rekursif seperti perhitungan atau ETL pipelining (di suatu tempat, di mana ia mengungguli Spark dengan jarak yang nyaman). Selain itu, implementasi aliran data tingkat tinggi merupakan pilihan yang sangat baik untuk kueri dan skrip batch. Pilihan antara Pig dan Hive juga diputar pada kebutuhan skrip klien atau sisi server, format file yang diperlukan, dll. Pig mendukung format file Avro yang tidak benar dalam kasus Hive. Pilihan untuk 'bahasa aliran data prosedural' vs 'bahasa aliran data deklaratif' juga merupakan argumen yang kuat untuk pilihan antara babi dan sarang.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.