Hadoop, HBase, Hive ve Pig ne zaman kullanılır?


185

Hadoop veya HBase veya Hive kullanmanın faydaları nelerdir ?

Anladığım kadarıyla, HBase harita küçültmeyi kullanmaktan kaçınır ve HDFS'nin üstünde sütun odaklı bir depolama alanına sahiptir. Hive , Hadoop ve HBase için sql benzeri bir arayüzdür .

Hive'ın Pig ile nasıl karşılaştırıldığını da bilmek istiyorum .


Hadoop : Hadoop Dağıtılmış Dosya Sistemi + Hesaplamalı işleme modeli MapReduce. HBase : Anahtar / değer depolama, neredeyse gerçek zamanlı okuma ve yazma için iyidir. Kovan : SQL benzeri sözdizimi kullanarak HDFS'den veri çıkarmak için kullanılır. Domuz : ETL oluşturmak için bir veri akışı dilidir.
dbustosp

Yanıtlar:


348

MapReduce sadece bir bilgi işlem çerçevesidir . HBase'in bununla hiçbir ilgisi yoktur. Bununla birlikte, MapReduce işlerini yazarak HBase'e / verileri verimli bir şekilde koyabilir veya getirebilirsiniz. Alternatif olarak, verileri koymak veya getirmek için Java gibi diğer HBase API'lerini kullanarak sıralı programlar yazabilirsiniz. Ancak devasa miktarda veriyle başa çıkmak için Hadoop, HBase vb. Kullanıyoruz, bu pek mantıklı değil. Verileriniz çok büyük olduğunda normal sıralı programları kullanmak oldukça verimsiz olur.

Sorunuzun ilk bölümüne dönersek, Hadoop temel olarak 2 şeydir: Dağıtılmış Dosya Sistemi (HDFS) + bir Hesaplama veya İşleme çerçevesi (MapReduce) . Diğer tüm FS'ler gibi, HDFS de bize depolama sağlar, ancak yüksek verim ve düşük veri kaybı riskiyle (çoğaltma nedeniyle) hataya dayanıklı bir şekilde. Ancak, FS olarak HDFS rastgele okuma ve yazma erişiminden yoksundur . HBase burada devreye giriyor. Bu bir var dağıtılmış, ölçeklenebilir, büyük veri deposu Google'ın BigTable örnek alınarak,. Verileri anahtar / değer çiftleri olarak saklar.

Kovana geliyor. Mevcut bir Hadoop kümesinin üstünde veri depolama olanakları sağlar . Bununla birlikte, SQL arka planından gelmeniz durumunda çalışmanızı kolaylaştıran SQL benzeri bir arayüz sağlar. Hive'da tablolar oluşturabilir ve orada veri depolayabilirsiniz. Bununla birlikte, mevcut HBase tablolarınızı Hive'a eşleyebilir ve üzerinde çalışabilirsiniz.

Pig temel olarak muazzam miktarda veriyi çok kolay ve hızlı bir şekilde işlememizi sağlayan bir veri akışı dilidir . Domuz temel olarak 2 bölümden oluşur: Domuz Tercüman ve dil, PigLatin . Pig komut dosyasını PigLatin'e yazarsınız ve Pig yorumlayıcısını kullanarak işlem yaparsınız. Domuz hayatımızı çok kolaylaştırır, aksi takdirde MapReduce yazmak her zaman kolay değildir. Aslında bazı durumlarda gerçekten acı olabilir.

Bir süre önce Hadoop ekosisteminin farklı araçlarının kısa bir karşılaştırması hakkında bir makale yazmıştım . Derinlemesine bir karşılaştırma değil, bu araçların her birine kısa bir giriş yaparak başlamanıza yardımcı olabilir. (Sadece cevabımı eklemek için. Kendini tanıtmaya yönelik değil)

Hive ve Pig sorgularının her ikisi de başlık altındaki MapReduce işlerine dönüştürülür.

HTH


yarnHadoop ekosistemi hakkında konuşmayı unutuyorsun :(.
Kenry Sanchez

53

Son zamanlarda firmamda bir Hive Data platformu uyguladım ve tek kişilik bir ekip olduğumdan beri birinci kişiyle konuşabilirim.

Amaç

  1. Günlük web günlük dosyalarının 350'den fazla sunucudan toplanması ve SQL gibi bazı diller üzerinden sorgulanması
  2. MySQL üzerinden oluşturulan günlük toplama verilerini Hive ile değiştirmek
  3. Yapı Custom sorgularda aracılığıyla bildirir Hive

Mimari Seçenekler

Aşağıdaki seçenekleri karşılaştırdım:

  1. Kovanı + HDF'ler
  2. Kovan + HBase - sorgular çok yavaştı, bu yüzden bu seçeneği terk ettim

tasarlamak

  1. Günlük günlük dosyaları HDFS'ye aktarıldı
  2. MR işleri bu günlük dosyalarını ve çıktı dosyalarını HDFS'de ayrıştırdı
  3. HDFS konumlarını gösteren bölümler ve konumlar içeren Kovan tabloları oluşturma
  4. Kovan sorgu komut oluşturun (diyoruz HQL eğer benzerlerinden fark olarak SQL ) o arka planda dönüş koştu MR işler ve oluşturulan toplama verilerinde
  5. Tüm bu adımları Daily Oozie Koordinatörü ile planlanan bir Oozie iş akışına yerleştirin

özet

HBase bir Harita gibidir. Anahtarı biliyorsanız, değeri anında elde edebilirsiniz. Ancak Hbase'de kaç tam sayı anahtarının 1000000 ile 2000000 arasında olduğunu bilmek istiyorsanız, bu sadece Hbase için uygun değildir .

Toplanması, toplanması, satırlar arasında analiz edilmesi gereken verileriniz varsa Hive'ı düşünün .

Umarım bu yardımcı olur.

Kovan aslında sallıyor ... Biliyorum, 12 aydır yaşadım ... HBase de öyle ...


1
HBase, verileri HDFS'de depolayan bir NonSQL veritabanıdır. Büyük verilerinize rastgele, gerçek zamanlı okuma / yazma erişimine ihtiyacınız olduğunda kullanılır.
Root Loop

28

Hadoop , büyük veri kümelerinin basit programlama modelleri kullanarak bilgisayar kümeleri arasında dağıtılmış işlenmesine izin veren bir çerçevedir.

Hadoop'ta dört ana modül vardır.

  1. Hadoop Common : Diğer Hadoop modüllerini destekleyen ortak yardımcı programlar.

  2. Hadoop Dağıtılmış Dosya Sistemi ( HDFS ™ ): Uygulama verilerine yüksek verimli erişim sağlayan dağıtılmış bir dosya sistemi.

  3. Hadoop İPLİK : İş planlaması ve küme kaynak yönetimi için bir çerçeve.

  4. Hadoop MapReduce : Büyük veri kümelerinin paralel işlenmesi için YARN tabanlı bir sistem.

Daha ileri gitmeden önce üç farklı veri türümüz olduğuna dikkat edelim.

  • Yapısal : Yapısal verilerin güçlü şeması vardır ve yazma ve okuma işlemi sırasında şema kontrol edilir. Oracle, MySQL Server gibi RDBMS sistemlerindeki veriler.

  • Yapılandırılmamış : Verilerin herhangi bir yapısı yoktur ve herhangi bir form olabilir - Web sunucusu günlükleri, E-Posta, Resimler vb.

  • Yarı yapılandırılmış : Veriler katı bir şekilde yapılandırılmamış, ancak bazı yapılara sahiptir. ör. XML dosyaları.

İşlenecek veri türüne bağlı olarak, doğru teknolojiyi seçmeliyiz.

Hadoop'un bir parçası olan bazı projeler:

  • HBase ™ : Büyük tablolar için yapılandırılmış veri depolamayı destekleyen ölçeklenebilir, dağıtılmış bir veritabanı.

  • Hive ™: Veri özetleme ve geçici sorgulama sağlayan bir veri ambarı altyapısı.

  • Pig ™ : Paralel hesaplama için üst düzey bir veri akışı dili ve yürütme çerçevesi.

Hive Vs PIG karşılaştırması bu makalede ve bu SE sorusundaki diğer yazımda bulunabilir .

HBASE , Harita Azaltma'nın yerini almayacak . HBase ölçeklenebilir dağıtılmış veritabanıdır ve Harita Azaltma , verilerin dağıtılmış olarak işlenmesi için programlama modelidir. Harita Azaltma işlenirken HBASE'deki veriler üzerinde etkili olabilir.

Sen kullanabilirsiniz HIVE / Hbase yapılandırılmış / yarı-yapılandırılmış veriler için ve Hadoop Harita azaltın ile işlemek

Sen kullanabilirsiniz SQOOP Hadoop Harita ile vs geleneksel RDBMS veritabanı Oracle, SQL Server yapılandırılmış veri almak ve işlemek için azaltın

Sen kullanabilirsiniz kanalet azaltın Hadoop Map ile Un-yapılandırılmış veri ve süreç işlemek için

Şuna bir bakın: Hadoop Kullanım Kılıfları .

Kovan , belirli bir süre boyunca toplanan verilerin analitik sorgulanması için kullanılmalıdır. Örneğin, trendleri hesaplayın, web sitesi günlüklerini özetleyin, ancak gerçek zamanlı sorgular için kullanılamaz.

HBase , Büyük Verilerin gerçek zamanlı sorgulanması için uygundur. Facebook bunu mesajlaşma ve gerçek zamanlı analitik için kullanıyor.

PIG , veri akışları oluşturmak, zamanlanmış işler yürütmek, büyük miktarda veri toplamak, toplamak / özetlemek ve ilişki veritabanı sistemlerinde depolamak için kullanılabilir. Geçici analiz için iyi.

Kovan , ad-hoc veri analizi için kullanılabilir, ancak PIG'den farklı olarak tüm yapılandırılmamış veri formatlarını destekleyemez.


Facebook artık gerçek zamanlı mesajlaşma sistemleri için açık kaynaklı HBase kullanmıyor. Şirket içi [Myrocks veritabanı] ile değiştirdiler. ( engineering.fb.com/core-data/… )
PPK

23

RDBMS ile çalıştığınızı ve ne kullanacağınızı - tam tablo taramaları veya dizin erişimi - ancak bunlardan yalnızca birini seçmek zorunda olduğunuzu düşünün.
Tam tablo taraması seçerseniz - kovan kullanın. İndeks erişimi varsa - HBase.


Aslında HBase üzerinde Hive inşa edebilirsiniz, böylece doğrudan hbase üzerinde dizinli sorgu yapabilmek için tam tarama hbase HQL kullanabilirsiniz. Ancak bunun tam taramada size daha yavaş performans sağladığından şüpheliyim.
FrostNovaZzz

HBase yazma odaklı bir sistemdir, veriler sıralı olarak saklansa da taramalarda optimum değildir. Bu nedenle, bazı aralıkları taramak iyi bir seçim olabilir, tam taramalar doğrudan
HDFS'den

5

Hadoop Vs Cassandra Arasında Bir Karşılaştırma için / HBase bunu okuyun yazıyı .

Temel olarak HBase, gerçekten hızlı okuma ve ölçeklenebilirlik ile yazma olanağı sağlar. Ne kadar hızlı ve ölçeklenebilir? Facebook , kullanıcı durumlarını, fotoğraflarını, sohbet mesajlarını vb. Yönetmek için kullanır. HBase bazen çok hızlıdır, Facebook tarafından HBase'i Hive'ın veri deposu olarak kullanmak için geliştirilmiştir.

Hive As Nerede bir Veri Ambarı çözümü gibi. Harita Azaltma işiyle sonuçlanan Kovan içeriğini sorgulamak için SQL'e benzer bir sözdizimi kullanabilirsiniz. Hızlı, işlemsel sistemler için ideal değildir.


5

Lambda mimarisi üzerinde Gerçek zamanlı ve Batch yükleri üzerinde çalıştım. Sensör ile yangın alarmı gönderilmesi veya bankacılık işlemleri durumunda sahtekarlık tespiti durumunda hızlı kararların alınması gerektiğinde gerçek zamanlı işleme ihtiyaç duyulur. BI sistemlerine beslenebilecek verileri özetlemek için toplu işlem gereklidir.

yukarıdaki uygulamalar için Hadoop ekosistem teknolojilerini kullandık .

Gerçek Zamanlı İşleme

Apache Storm: Akış Veri işleme, Kural uygulaması

HBase: Gerçek Zamanlı gösterge tablosunu sunmak için veri deposu

Toplu İşleme Hadoop: Büyük miktarda veriyi ezmek. 360 derece genel bakış veya olaylara bağlam ekleme. Domuz, MR, Kıvılcım, Kovan, Köpekbalığı gibi arayüzler veya çerçeveler hesaplamada yardımcı olur. Bu katman, Oozie'nin iyi bir seçenek olduğu zamanlayıcıya ihtiyaç duyar.

Olay İşleme katmanı

Apache Kafka, sensörden yüksek hızlı olaylar tüketen ilk katman oldu. Kafka, Linkedin konektörleri aracılığıyla hem Gerçek Zamanlı hem de Batch analiz veri akışını sunar.


5

Derinlemesine anlama

Hadoop

HadoopApachevakfın açık kaynaklı bir projesidir . Java2005 yılında Doug Cutting tarafından geliştirilen, yazılı bir çerçevedir Nutch. Metin arama motoru dağıtımını desteklemek için oluşturulmuştur . temeli olarak Google ve Google Dosya Sistemi Teknolojilerini Hadoopkullanır Map Reduce.

Hadoop'un Özellikleri

  1. Emtia donanımı kullanılarak büyük miktarlarda yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış veriyi işleyecek şekilde optimize edilmiştir.
  2. Hiçbir şey mimariyi paylaşmadı.
  3. Verilerini birden çok bilgisayara çoğaltır, böylece biri düşerse, veri yine de kopyasını depolayan başka bir makineden işlenebilir.
  4. Hadoopdüşük gecikme yerine yüksek verim içindir. Çok büyük miktarda veri işleyen bir toplu işlemdir; bu nedenle tepki süresi hemen gerçekleşmez.
  5. Çevrimiçi İşlem İşleme ve Çevrimiçi Analitik İşlemeyi tamamlar. Ancak, a yerine geçmez RDBMS.
  6. İşin paralelleştirilemediği veya veriler içinde bağımlılıklar olduğu zaman iyi değildir.
  7. Küçük dosyaları işlemek için iyi değildir. Büyük veri dosyaları ve veri kümeleriyle en iyi şekilde çalışır.

Hadoop versiyonları

Kullanılabilir iki sürümü Hadoopvardır:

  1. Hadoop 1.0
  2. Hadoop 2.0

Hadoop 1.0

İki ana parçası vardır:

1. Veri Depolama Çerçevesi

Hadoop Dağıtılmış Dosya Sistemi ( HDFS) adı verilen genel amaçlı bir dosya sistemidir .

HDFS şema içermez

Sadece veri dosyalarını saklar ve bu veri dosyaları hemen hemen her formatta olabilir.

Fikir, dosyaları orijinal formlarına mümkün olduğunca yakın saklamaktır.

Bu da iş birimlerine ve kuruluşa, uygulayabilecekleri konusunda aşırı endişe duymadan ihtiyaç duyulan esneklik ve çevikliği sağlar.

2. Veri İşleme Çerçevesi

Bu, başlangıçta Google olarak popüler hale getirilen basit bir işlevsel programlama modelidir MapReduce.

Temelde iki işlev kullanır: MAPve REDUCEverileri işlemek için.

"Eşleyiciler" bir dizi anahtar / değer çifti alır ve ara veriler (anahtar / değer çiftlerinin başka bir listesi) oluşturur.

"Redüktörler" daha sonra çıktı verilerini üretmek için bu girdi üzerinde hareket eder.

İki işlev görünüşte birbiriyle yalıtılmış çalışır, böylece işlemenin yüksek derecede paralel, hata toleransı ve ölçeklenebilir şekilde dağıtılmasını sağlar.

Hadoop 1.0'ın Sınırlamaları

  1. İlk sınırlama MapReduceprogramlama uzmanlığının gerekliliğiydi .

  2. Yalnızca günlük analizi, büyük ölçekli veri madenciliği projeleri gibi görevler için uygun olmasına rağmen diğer tür projeler için pek uygun olmayan toplu işlemeyi destekledi.

  3. Önemli bir sınırlama, Hadoop 1.0hesaplamaya sıkı sıkıya bağlı olduğuydu; MapReducebu, kurulu veri yönetimi satıcılarının iki görüşle kaldığı anlamına geliyordu:

    1. Ya da içinde çalışabilmek için işlevlerini yeniden MapReduceyazın Hadoopveya

    2. Dışından veri ayıklayın HDFSveya işleyin Hadoop.

HadoopKümenin içine ve dışına taşınan verilerin neden olduğu işlem verimsizliklerine yol açtığı için seçeneklerin hiçbiri uygun değildi .

Hadoop 2.0

Gelen Hadoop 2.0, HDFSveri depolama çerçeve olmaya devam ediyor.

Bununla birlikte, adı verilen yeni ve ayrı bir kaynak yönetim çerçevesi , Y ve A nother R esource N egotiater ( İPLİK ) ilave edilmiştir.

Kendini paralel görevlere ayırabilen her uygulama YARN tarafından desteklenir.

YARN, sunulan uygulamanın alt görevlerinin tahsisini koordine eder, böylece uygulamaların esnekliğini, ölçeklenebilirliğini ve verimliliğini daha da artırır.

Yeni Node Manager tarafından yönetilen kaynaklar üzerinde uygulamalar çalıştırarak , İş Takibi yerine bir Uygulama Yöneticisi uygulayarak çalışır .

ApplicationMaster sadece herhangi bir uygulamayı çalıştıramaz MapReduce.

Bu, yalnızca toplu işlemeyi değil, aynı zamanda gerçek zamanlı işlemeyi de desteklediği anlamına gelir. MapReduceartık tek veri işleme seçeneği değil.

Hadoop'un Avantajları

Verileri yerel olarak içinde saklar. Veri girilirken veya veri saklanırken dayatılan bir yapı yoktur. HDFSşema daha az. Ancak daha sonra verilerin işlenmesi gerektiğinde, yapının ham verilere dayatılması gerekir.

Ölçeklenebilir. Hadoopparalel çalışan yüzlerce ucuz sunucuda çok büyük veri kümelerini depolayabilir ve dağıtabilir.

Başarısızlığa karşı dayanıklıdır. Hadoophata toleransıdır. Verilerin titizlikle çoğaltılmasını uygular, yani herhangi bir düğüme veri gönderildiğinde, aynı veriler kümedeki diğer düğümlere de çoğaltılır, böylece düğüm hatası durumunda, her zaman kullanım için başka bir veri kopyası olmasını sağlar.

Esnek. En önemli avantajlarından biri Hadoop, her türlü veriyle çalışabilmesidir: yapılandırılmış, yapılandırılmamış veya yarı yapılandırılmış. Ayrıca, Hadoop"kodu verilere taşı" paradigması nedeniyle işlem oldukça hızlıdır .

Hadoop Ekosistemi

HadoopEkosistemin bileşenleri şunlardır :

HDFS : HadoopDağıtılmış Dosya Sistemi. Veri dosyalarını orijinal forma mümkün olduğunca yakın depolar.

HBase : Hadoop'un veritabanıdır ve bir RDBMS. Büyük tablolar için yapılandırılmış veri depolamayı destekler.

Hive : Bu standart çok benzer bir dil kullanarak büyük veri kümelerinin analizini sağlayan ANSI SQLo kimse familier ima, SQLbir üzerine verilere erişme gerekir Hadoopküme.

Domuz : Veri akışı dilini anlamak kolaydır. Oldukça iyi olan büyük veri kümelerinin analizine yardımcı olur Hadoop. Pigkomut dosyaları yorumlayıcı MapReducetarafından otomatik olarak işlere dönüştürülür Pig.

ZooKeeper : Dağıtık uygulamalar için bir koordinasyon hizmetidir.

Oozie : schedularApache Hadoopişlerini yönetmek için kullanılan bir iş akışı sistemidir .

Mahout : Ölçeklenebilir bir makine öğrenimi ve veri madenciliği kütüphanesidir.

Chukwa : Büyük dağıtık sistemi yönetmek için veri toplama sistemidir.

Sqoop : Hadoopİlişkisel veritabanları gibi yapılandırılmış veri depoları arasında toplu veri aktarımı için kullanılır .

Ambari : HadoopKümelerin sağlanması, yönetimi ve izlenmesi için web tabanlı bir araçtır .

kovan

Hiveyapılandırılmış verileri işlemek için bir veri ambarı altyapı aracıdır Hadoop. Bu üst üste bulunduğu HadoopHacimli verileri özetlemek ve sorgulama ve kolay analiz yapar.

Kovan değil

  1. İlişkisel veritabanı

  2. Çevrimiçi İşlem İşleme ( OLTP) için bir tasarım .

  3. Gerçek zamanlı sorgular ve satır düzeyinde güncellemeler için bir dil.

Kovanın Özellikleri

  1. Şemayı veritabanında saklar ve işlenen verileri içine alır HDFS.

  2. İçin tasarlanmıştır OLAP.

  3. Veya SQLadlı sorgulama için yazım dili sağlar .HiveQLHQL

  4. Tanıdık, hızlı, ölçeklenebilir ve genişletilebilir.

Kovan Mimarisi

Aşağıdaki bileşenler Kovan Mimarisinde bulunur:

  1. Kullanıcı Arayüzü : kullanıcı ve arasında etkileşim oluşturabilen Hivebir data warehousealtyapıdır HDFS. Desteklenen Kullanıcı Arabirimleri Hive, Hive Web Kullanıcı Arayüzü, Hive Komut satırı ve Hive HD Insight'tır (Windows Server'da).

  2. MetaStore : şemayı veya tabloları, veritabanlarını, bir tablodaki sütunları, veri türlerini ve eşlemeyi saklamak için Hiveilgili seçimleri yapar .database serversMetadataHDFS

  3. HiveQL Process Engine : üzerindeki şema bilgilerinin sorgulanmasına HiveQLbenzer . Program için geleneksel yaklaşımın yerini almıştır . Bunun yerine yazma yılında , biz bir sorgu yazabilir ve işlemek.SQLMetastoreMapReduceMapReduceJavaMapReduce

  4. Exceution Motor : bir kesişme bölümü HiveQLsüreci motoru ve MapReducebir HiveYürütme Motoru. Yürütme altyapısı sorguyu işler ve aynı sonuçları üretir MapReduce results. Lezzetini kullanır MapReduce.

  5. HDFS veya HBase : HadoopDağıtılmış Dosya Sistemi veya HBaseverileri dosya sistemine depolamak için kullanılan veri depolama teknikleridir.


1

Her şeyden önce biz açıkça almalısınız Hadoop için daha hızlı bir alternatif olarak oluşturuldu RDBMS . Büyük miktarda veriyi çok daha hızlı bir şekilde işlemek için daha önce RDBMS'de çok zaman aldı.

Şimdi iki terimi bilmek gerekir:

  1. Yapısal Veri : Geleneksel RDBMS'de kullandığımız verilerdir ve iyi tanımlanmış yapılara ayrılmıştır.

  2. Yapılandırılmamış Veriler : Bunu anlamak önemlidir, dünya verilerinin yaklaşık% 80'i yapılandırılmamış veya yarı yapılandırılmıştır. Bunlar ham haliyle olan ve RDMS kullanılarak işlenemeyen verilerdir. Örnek: facebook, twitter verileri. ( http://www.dummies.com/how-to/content/unstructured-data-in-a-big-data-environment.html ).

Bu nedenle, son birkaç yılda büyük miktarda veri üretiliyordu ve veriler çoğunlukla yapılandırılmamıştı, bu da HADOOP'u doğurdu. Esas olarak RDBMS kullanılarak gerçekleştirilemeyecek kadar zaman alan çok büyük miktarda veri için kullanıldı. Gerçek zamanlı olarak nispeten küçük veriler için kullanılamamasının birçok dezavantajı vardı, ancak yeni sürümdeki dezavantajlarını kaldırmayı başardılar.

Daha ileri gitmeden önce, önceki araçlarda bir hata gördüğünde yeni bir Büyük Veri aracının oluşturulduğunu söylemek istiyorum. Böylece, hangi araçların oluşturulduğunu göreceksiniz, önceki araçların sorununun üstesinden gelmek için yapılmıştır.

Hadoop basitçe iki şey olarak söylenebilir: Mapreduce ve HDFS . Mapreduce, işlemin gerçekleştiği ve HDFS, verilerin depolandığı DataBase'dir. Bu yapı WORM prensibini izledi, yani bir kez yazarak birden çok kez okundu. Bu nedenle, verileri HDFS'de sakladıktan sonra değişiklik yapamayız. Bu , bir kez yazdıktan sonra da verilerde değişiklik yapabileceğimiz bir NOSQL ürünü olan HBASE'in oluşturulmasına yol açtı .

Ancak zamanla Hadoop'un birçok hatası olduğunu gördük ve bunun için Hadoop yapısı üzerinde farklı bir ortam yarattık. PIG ve HIVE iki popüler örnektir.

HIVE , SQL kökenli insanlar için oluşturuldu . Yazılan sorgular HIVEQL olarak adlandırılan SQL'e benzer . HIVE tamamen yapılandırılmış verileri işlemek için geliştirilmiştir . Yapılandırılmamış veriler için kullanılmaz.

Öte yandan PIG'nin kendi sorgu dili vardır, yani PIG LATIN . Hem yapılandırılmış hem de yapılandırılmamış veriler için kullanılabilir .

Ne zaman HIVE kullanılacağı ve PIG ne zaman kullanılacağı arasındaki farka gelince, PIG'nin mimarı dışında kimsenin söyleyebileceğini sanmıyorum. Bağlantıyı takip edin: https://developer.yahoo.com/blogs/hadoop/comparing-pig-latin-sql-constructing-data-processing-pipelines-444.html


1

Hadoop:

HDFS, Hesaplamalı işleme modeli Map-Reduce kullanan Hadoop Dağıtılmış Dosya Sistemi anlamına gelir.

HBase:

HBase, anahtar-değer depolama, neredeyse gerçek zamanlı okuma ve yazma için iyidir.

Hive:

Kovan, SQL benzeri sözdizimi kullanılarak HDFS'den veri ayıklamak için kullanılır. Kovan HQL dilini kullanır.

Domuz:

Domuz ETL oluşturmak için bir veri akışı dilidir. Bu bir betik dilidir.


0

Birkaç kelimeyle cevaplamaya çalışayım.

Hadoop diğer tüm aletlerden oluşan bir eko-sistemdir. Yani, Hadoop'u karşılaştıramazsınız, ancak MapReduce'u karşılaştırabilirsiniz.

İşte birkaç sentim:

  1. Hive: İhtiyacınız çok SQLish ise, sorun ifadenizin SQL tarafından karşılanabileceği anlamına gelirse, o zaman yapılacak en kolay şey Hive kullanmak olacaktır. Diğer durumda, kovanı ne zaman kullanacağınız, sunucunun belirli veri yapısına sahip olmasını istediğiniz zamandır.
  2. Domuz: Domuz Latin ile rahat ve daha fazla veri boru hatları gerekiyorsa. Ayrıca, verileriniz yapıdan yoksundur. Bu gibi durumlarda Pig kullanabilirsiniz. Dürüst olmak gerekirse, Hive & Pig arasında kullanım durumları açısından fazla bir fark yoktur.
  3. MapReduce: Sorununuz doğrudan SQL kullanılarak çözülemezse, önce Hive & Pig için UDF oluşturmayı denemelisiniz ve daha sonra UDF sorunu çözmüyorsa MapReduce aracılığıyla halletmek mantıklıdır.

0

Domuz: dosyaları işlemek ve verileri temizlemek daha iyidir örnek: null değerleri kaldırma, dize işleme, gereksiz değerler Kovan: temizlenmiş verileri sorgulamak için


0

1. Hadoop'u txt, csv gibi büyük dosya (yapı, yapı ve yarı yapı verileri) form dosya formatında saklamak için kullanıyoruz.

Verilerimizde Sütunlu Güncellemeler İstersek Hbase aracını kullanıyoruz

3. Kovan durumunda, Büyük veriyi yapılandırılmış formatta saklıyoruz ve buna ek olarak bu veriler üzerinde Analiz sağlıyoruz.

4.Pig herhangi bir formatta (yapı, yarı yapı ve yapı) verileri analiz etmek için Pig latin dilini kullanan bir araçtır.


0

Domuzdaki Verilerin Temizlenmesi çok kolaydır, uygun bir yaklaşım, domuzdan verileri temizlemek ve daha sonra verileri kovan yoluyla işlemek ve daha sonra hdfs'ye yüklemek olacaktır.


0

Hive, Hbase ve Pig'in farklı projelerde gerçek zamanlı deneyimimi kullanması.

Kovan çoğunlukla aşağıdakiler için kullanılır:

  • Geçmiş verileri üzerinde analiz yapmanız gereken Analytics amacı

  • Belirli sütunlara dayalı iş raporları oluşturma

  • Meta veri bilgileriyle birlikte verileri verimli bir şekilde yönetme

  • Kovalama kavramı kullanılarak sıkça kullanılan belirli sütunlardaki tabloları birleştirme

  • Bölümleme konseptini kullanarak verimli depolama ve sorgulama

  • Güncelleme, silme gibi işlem / satır seviyesi işlemleri için yararlı değildir.

Domuz çoğunlukla şunlar için kullanılır:

  • Devasa veriler üzerinde sık veri analizi

  • Büyük veriler üzerinde toplu değerler / sayımlar oluşturma

  • Kurumsal düzeyde önemli performans göstergeleri çok sık üretiliyor

Hbase çoğunlukla kullanılır:

  • Verilerin gerçek zamanlı işlenmesi için

  • Karmaşık ve iç içe şemaları verimli bir şekilde yönetmek için

  • Gerçek zamanlı sorgulama ve daha hızlı sonuç için

  • Sütunlarla kolay ölçeklenebilirlik için

  • Güncelleme, silme gibi işlem / satır seviyesi işlemleri için kullanışlıdır.


0

Bu sorunun kısa cevabı -

Hadoop - Dağıtılmış dosya sistemi ve programlama modelini kolaylaştıran, geleneksel yaklaşımlara kıyasla, çok boyutlu verileri ve işlem verilerini dağıtılmış biçimde çok verimli ve çok daha az işlem süresi ile depolamamıza olanak tanır.

(HDFS - Hadoop Dağıtılmış Dosya sistemi) (Harita Küçült - Dağıtılmış işleme için Programlama Modeli)

Hive - Hadoop dağıtılmış dosya sisteminden çok popüler bir SQL tarzında veri okuma / yazma olanağı sağlayan sorgu dilidir. Bu, Hive'ın desteklenmediği çok karmaşık senaryolar dışında, artık Map-Reduce programı yazmak zorunda olmadıkları için, programlanmayan birçok arka plan insanı için hayatı kolaylaştırdı.

Hbase - Sütunlu NoSQL Veritabanı mı. Hbase için temel depolama katmanı yine HDFS'dir. Bu veritabanı için en önemli kullanım durumu milyarlarca satırı milyonlarca sütunla depolayabilmektir. Hbase'in düşük gecikme özelliği, dağıtılmış veriler üzerinden kaydın daha hızlı ve rasgele erişilmesine yardımcı olur, Tavsiye Motorları gibi karmaşık projeler için yararlı olmasını sağlayan çok önemli bir özelliktir. Ayrıca, kayıt düzeyinde sürüm oluşturma özelliği, kullanıcının işlem verilerini çok verimli bir şekilde saklamasına izin verir (bu, HDFS ve Hive ile sahip olduğumuz kayıtları güncelleme sorununu çözer)

Umarım bu yukarıdaki 3 özelliği hızlı bir şekilde anlamaya yardımcı olur.


0

Bu ipliğin özellikle HBase ve Pig için adalet yapmadığına inanıyorum. Hadoop'un büyük veri gölü uygulamaları için dağıtılmış, esnek dosya sisteminin seçimi olduğuna inanmakla birlikte, HBase ve Hive arasındaki seçim özellikle iyi ayrılmıştır.

Olduğu gibi, birçok kullanım senaryosu SQL benzeri veya No-SQL benzeri arayüzler için özel bir gereksinime sahiptir. HBase'in üstündeki Phoenix ile SQL benzeri yetenekler kesinlikle elde edilebilir, ancak performans, üçüncü taraf entegrasyonları, pano güncellemesi bir tür acı verici deneyimlerdir. Ancak, yatay ölçeklendirme gerektiren veritabanları için mükemmel bir seçimdir.

Domuz özellikle hesaplamalar veya ETL boru hattı gibi özyinelemeli olmayan gruplar için mükemmeldir (Spark'ı rahat bir mesafeden daha iyi performans gösterdiği bir yerde). Ayrıca, üst düzey veri akışı uygulamaları toplu sorgulama ve komut dosyası oluşturma için mükemmel bir seçimdir. Pig ve Hive arasındaki seçim, istemci veya sunucu tarafı komut dosyası oluşturma, gerekli dosya formatları vb. Gereksinimlerine de bağlıdır. 'Prosedürel veri akışı dili' ve 'bildirimsel veri akışı dili' için seçim de domuz ve kovan arasındaki seçim için güçlü bir argüman.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.