HBase
 sql >> Teknologi Basis Data >  >> NoSQL >> HBase

Cloudera Impala:Query Real-Time di Apache Hadoop, Nyata

Setelah lama melakukan upaya rekayasa yang intens dan umpan balik pengguna, kami sangat senang, dan bangga, untuk mengumumkan proyek Cloudera Impala. Teknologi ini merupakan teknologi revolusioner bagi pengguna Hadoop, dan kami tidak menganggap enteng klaim tersebut.

Ketika Google menerbitkan makalah Dremel pada tahun 2010, kami sama terinspirasinya dengan komunitas lainnya dengan visi teknis untuk menghadirkan kemampuan kueri ad hoc real-time ke Apache Hadoop, melengkapi pemrosesan batch MapReduce tradisional. Hari ini, kami mengumumkan basis kode sumber terbuka yang berfungsi penuh yang mewujudkan visi tersebut – dan, kami yakin, sedikit lebih banyak lagi – yang kami sebut Cloudera Impala. Biner Impala sekarang tersedia dalam bentuk beta publik, tetapi jika Anda lebih memilih untuk menguji coba Impala melalui VM yang telah dibuat sebelumnya, kami juga memiliki salah satunya untuk Anda. Anda juga dapat meninjau kode sumber dan rangkaian pengujian di Github sekarang.

Impala meningkatkan standar untuk kinerja kueri sambil mempertahankan pengalaman pengguna yang familier. Dengan Impala, Anda dapat melakukan kueri data, baik yang disimpan dalam HDFS atau Apache HBase – termasuk SELECT, JOIN, dan fungsi agregat – secara real time. Selain itu, ia menggunakan metadata yang sama, sintaks SQL (Hive SQL), driver ODBC dan antarmuka pengguna (Hue Beeswax) seperti Apache Hive, menyediakan platform yang akrab dan terpadu untuk kueri berorientasi batch atau real-time. (Untuk alasan itu, pengguna Hive dapat menggunakan Impala dengan sedikit biaya penyiapan.) Versi beta pertama mencakup dukungan untuk file teks dan SequenceFiles; SequenceFiles dapat dikompresi sebagai Snappy, GZIP, dan BZIP (dengan Snappy direkomendasikan untuk kinerja maksimum). Dukungan untuk format tambahan termasuk Avro, RCFile, file teks LZO, dan format kolom Parket direncanakan untuk penghentian produksi.

Untuk menghindari latensi, Impala menghindari MapReduce untuk mengakses data secara langsung melalui mesin kueri terdistribusi khusus yang sangat mirip dengan yang ditemukan di RDBMS paralel komersial. Hasilnya adalah kinerja urutan besarnya lebih cepat daripada Hive, tergantung pada jenis kueri dan konfigurasi. (Lihat FAQ di bawah untuk detail lebih lanjut.) Perhatikan bahwa peningkatan kinerja ini telah dikonfirmasi oleh beberapa perusahaan besar yang telah menguji Impala pada beban kerja dunia nyata selama beberapa bulan sekarang.

Tampilan arsitektur tingkat tinggi di bawah ini:

Ada banyak keuntungan dari pendekatan ini dibandingkan pendekatan alternatif untuk query data Hadoop, termasuk:

  • Berkat pemrosesan lokal pada node data, kemacetan jaringan dapat dihindari.
  • Penyimpanan metadata tunggal, terbuka, dan terpadu dapat digunakan.
  • Konversi format data yang mahal tidak diperlukan dan karenanya tidak ada biaya tambahan yang dikeluarkan.
  • Semua data dapat langsung melakukan kueri, tanpa penundaan untuk ETL.
  • Semua perangkat keras digunakan untuk kueri Impala serta untuk MapReduce.
  • Hanya satu kumpulan mesin yang diperlukan untuk menskalakan.

Kami mendorong Anda untuk membaca dokumentasi untuk detail teknis lebih lanjut.

Terakhir, kami ingin menjawab beberapa pertanyaan yang kami perkirakan akan populer:

Apakah Impala open source?
Ya, Impala adalah 100% open source (Lisensi Apache). Anda dapat meninjau kodenya sendiri di Github hari ini.

Apa perbedaan Impala dengan Dremel?
Perbedaan pertama dan utama adalah Impala adalah open source dan tersedia untuk digunakan semua orang, sedangkan Dremel adalah milik Google.

Secara teknis, Dremel mencapai waktu respons interaktif pada kumpulan data yang sangat besar melalui penggunaan dua teknik:

  • Format penyimpanan kolom baru untuk data/data relasional bersarang dengan struktur bersarang
  • Algoritme agregasi skalabel terdistribusi, yang memungkinkan hasil kueri dihitung pada ribuan mesin secara paralel.

Yang terakhir ini dipinjam dari teknik yang dikembangkan untuk DBMS paralel, yang juga mengilhami pembuatan Impala. Tidak seperti Dremel seperti yang dijelaskan dalam makalah 2010, yang hanya dapat menangani kueri tabel tunggal, Impala telah mendukung set lengkap operator gabungan yang merupakan salah satu faktor yang membuat SQL begitu populer.

Untuk mewujudkan manfaat kinerja penuh yang ditunjukkan oleh Dremel, Hadoop akan segera memiliki format penyimpanan biner kolumnar yang efisien yang disebut Parket. Namun berbeda dengan Dremel, Impala mendukung berbagai format file populer. Ini memungkinkan pengguna menjalankan Impala pada data yang ada tanpa harus "memuat" atau mengubahnya. Ini juga memungkinkan pengguna memutuskan apakah mereka ingin mengoptimalkan fleksibilitas atau hanya kinerja murni.

Singkatnya, Impala plus Parket akan mencapai kinerja kueri yang dijelaskan dalam makalah Dremel, tetapi melampaui apa yang dijelaskan di sana dalam fungsionalitas SQL.

Seberapa lebih cepat kueri Impala daripada kueri Hive?
Jumlah peningkatan kinerja yang tepat sangat bergantung pada sejumlah faktor:

  • Konfigurasi perangkat keras:Impala umumnya dapat memanfaatkan sepenuhnya sumber daya perangkat keras dan secara khusus menghasilkan beban CPU yang lebih sedikit daripada Hive, yang sering diterjemahkan menjadi bandwidth I/O agregat yang diamati lebih tinggi dibandingkan dengan Hive. Impala tentu saja tidak dapat berjalan lebih cepat dari yang diizinkan oleh perangkat keras, sehingga hambatan perangkat keras apa pun akan membatasi kecepatan yang diamati. Untuk kueri terikat I/O murni, kami biasanya melihat peningkatan kinerja dalam kisaran 3-4x.
  • Kompleksitas kueri:Kueri yang memerlukan beberapa fase MapReduce di Hive atau memerlukan pengurangan sisi gabungan akan melihat percepatan yang lebih tinggi daripada, katakanlah, kueri agregasi tabel tunggal sederhana. Untuk kueri dengan setidaknya satu gabungan, kami mendapatkan peningkatan kinerja sebesar 7-45X.
  • Ketersediaan memori utama sebagai cache untuk data tabel:Jika data yang diakses melalui kueri keluar dari cache, percepatannya akan lebih dramatis berkat efisiensi superior Impala. Dalam skenario tersebut, kami telah melihat peningkatan 20x-90x lebih cepat dari Hive bahkan pada kueri agregasi sederhana.

Apakah Impala pengganti MapReduce atau Hive – atau untuk infrastruktur gudang data tradisional, dalam hal ini?
Tidak. Akan ada banyak kasus penggunaan yang layak untuk MapReduce dan Hive (misalnya, untuk beban kerja transformasi data yang berjalan lama) serta kerangka kerja gudang data tradisional (misalnya, untuk analitik kompleks pada kumpulan data terstruktur yang terbatas). Impala adalah pelengkap dari pendekatan tersebut, mendukung kasus penggunaan di mana pengguna perlu berinteraksi dengan kumpulan data yang sangat besar, di semua silo data, untuk mendapatkan kumpulan hasil yang terfokus dengan cepat.

Apakah Rilis Beta Impala memiliki batasan teknis?
Seperti yang disebutkan sebelumnya, format file yang didukung dalam versi beta pertama termasuk file teks dan SequenceFiles, dengan banyak format lain yang akan didukung dalam rilis produksi mendatang. Selanjutnya, saat ini semua penggabungan dilakukan dalam ruang memori yang tidak lebih besar dari node terkecil dalam cluster; dalam produksi, bergabung akan dilakukan dalam memori agregat. Terakhir, tidak ada UDF yang memungkinkan saat ini.

Apa persyaratan teknis untuk Rilis Beta Impala?
Anda harus menginstal CDH4.1 di RHEL/CentOS 6.2. Kami sangat menyarankan penggunaan Cloudera Manager (Edisi Gratis atau Perusahaan) untuk menerapkan dan mengelola Impala karena ia menangani penyebaran terdistribusi dan detail pemantauan secara otomatis.

Apa kebijakan dukungan untuk Rilis Beta Impala?
Jika Anda adalah pelanggan Cloudera yang ada dengan bug, Anda dapat mengajukan tiket Dukungan Pelanggan dan kami akan berusaha untuk menyelesaikannya dengan upaya terbaik. Jika Anda bukan pelanggan Cloudera yang sudah ada, Anda dapat menggunakan instans JIRA publik kami atau milis pengguna impala, yang akan dipantau oleh karyawan Cloudera.

Kapan Impala akan tersedia secara umum untuk penggunaan produksi?
Penurunan produksi direncanakan untuk kuartal pertama tahun 2013. Pelanggan dapat memperoleh dukungan komersial dalam bentuk langganan Cloudera Enterprise RTQ pada saat itu.

Kami harap Anda mengambil kesempatan untuk meninjau kode sumber Impala, menjelajahi rilis beta, mengunduh dan menginstal VM, atau kombinasi apa pun di atas. Umpan balik Anda dalam semua kasus dihargai; kami membutuhkan bantuan Anda untuk menjadikan Impala lebih baik lagi.

Kami akan memberi Anda pembaruan lebih lanjut tentang Impala saat kami semakin dekat dengan ketersediaan produksi. (Pembaruan:Baca tentang Impala 1.0.)

Sumber daya impala:
– Kode sumber Impala
– Unduhan Impala (Rilis Beta dan VM)
– Dokumentasi Impala
– JIRA Publik
– Milis Impala
– Gratis Impala pelatihan (Screencast)

(Ditambahkan 30/10/2012) Artikel pihak ketiga tentang Impala:
– GigaOm: Kueri real-time untuk Hadoop mendemokratisasi akses ke analisis data besar (22 Oktober 2012)
– Wired: Man Busts Out of Google, Rebuilds Top-Secret Query Machine (24 Oktober 2012)
– InformationWeek: Cloudera Debut Real-Time Hadoop Query (24 Oktober 2012)
– GigaOm:Cloudera Menjadikan SQL Warga Negara Kelas Satu di Hadoop (24 Oktober 2012)
– ZDNet:Impala Cloudera Membawa Hadoop ke SQL dan BI (25 Oktober 2012)
– Berkabel:Profil Marcel Kornacker (29 Oktober 2012)
– Dr. Dobbs: Cloudera Impala – Memproses Petabyte dengan Kecepatan Pikiran (29 Oktober 2012)

Marcel Kornacker adalah arsitek Impala. Sebelum bergabung dengan Cloudera, dia adalah pengembang utama untuk mesin kueri proyek F1 Google.

Justin Erickson adalah manajer produk untuk Impala.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 6 Fitur Teratas HDFS – Tutorial Hadoop HDFS

  2. Cara:Mengelola Data HBase melalui Hue

  3. Apa itu Hadoop Cluster? Praktik Terbaik untuk Membangun Cluster Hadoop

  4. Cara menerapkan model ML ke produksi

  5. Di dalam Dukungan Baru Apache HBase untuk MOB