Derinlemesine anlama
Hadoop
Hadoop
Apache
vakfın açık kaynaklı bir projesidir . Java
2005 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 Hadoop
kullanır Map Reduce
.
Hadoop'un Özellikleri
- 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.
- Hiçbir şey mimariyi paylaşmadı.
- Verilerini birden çok bilgisayara çoğaltır, böylece biri düşerse, veri yine de kopyasını depolayan başka bir makineden işlenebilir.
Hadoop
düşü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.
- Çevrimiçi İşlem İşleme ve Çevrimiçi Analitik İşlemeyi tamamlar. Ancak, a yerine geçmez
RDBMS
.
- İşin paralelleştirilemediği veya veriler içinde bağımlılıklar olduğu zaman iyi değildir.
- 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ü Hadoop
vardır:
- Hadoop 1.0
- 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: MAP
ve REDUCE
verileri 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ı
İlk sınırlama MapReduce
programlama uzmanlığının gerekliliğiydi .
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.
Önemli bir sınırlama, Hadoop 1.0
hesaplamaya sıkı sıkıya bağlı olduğuydu; MapReduce
bu, kurulu veri yönetimi satıcılarının iki görüşle kaldığı anlamına geliyordu:
Ya da içinde çalışabilmek için işlevlerini yeniden MapReduce
yazın Hadoop
veya
Dışından veri ayıklayın HDFS
veya işleyin Hadoop
.
Hadoop
Kü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
, HDFS
veri 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. MapReduce
artı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. Hadoop
paralel ç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. Hadoop
hata 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
Hadoop
Ekosistemin bileşenleri şunlardır :
HDFS : Hadoop
Dağı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 SQL
o kimse familier ima, SQL
bir üzerine verilere erişme gerekir Hadoop
küme.
Domuz : Veri akışı dilini anlamak kolaydır. Oldukça iyi olan büyük veri kümelerinin analizine yardımcı olur Hadoop
. Pig
komut dosyaları yorumlayıcı MapReduce
tarafından otomatik olarak işlere dönüştürülür Pig
.
ZooKeeper : Dağıtık uygulamalar için bir koordinasyon hizmetidir.
Oozie : schedular
Apache Hadoop
iş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 : Hadoop
Kümelerin sağlanması, yönetimi ve izlenmesi için web tabanlı bir araçtır .
kovan
Hive
yapılandırılmış verileri işlemek için bir veri ambarı altyapı aracıdır Hadoop
. Bu üst üste bulunduğu Hadoop
Hacimli verileri özetlemek ve sorgulama ve kolay analiz yapar.
Kovan değil
İlişkisel veritabanı
Çevrimiçi İşlem İşleme ( OLTP
) için bir tasarım .
Gerçek zamanlı sorgular ve satır düzeyinde güncellemeler için bir dil.
Kovanın Özellikleri
Şemayı veritabanında saklar ve işlenen verileri içine alır HDFS
.
İçin tasarlanmıştır OLAP
.
Veya SQL
adlı sorgulama için yazım dili sağlar .HiveQL
HQL
Tanıdık, hızlı, ölçeklenebilir ve genişletilebilir.
Kovan Mimarisi
Aşağıdaki bileşenler Kovan Mimarisinde bulunur:
Kullanıcı Arayüzü : kullanıcı ve arasında etkileşim oluşturabilen Hive
bir data warehouse
altyapı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).
MetaStore : şemayı veya tabloları, veritabanlarını, bir tablodaki sütunları, veri türlerini ve eşlemeyi saklamak için Hive
ilgili seçimleri yapar .database
servers
Metadata
HDFS
HiveQL Process Engine : üzerindeki şema bilgilerinin sorgulanmasına HiveQL
benzer . Program için geleneksel yaklaşımın yerini almıştır . Bunun yerine yazma yılında , biz bir sorgu yazabilir ve işlemek.SQL
Metastore
MapReduce
MapReduce
Java
MapReduce
Exceution Motor : bir kesişme bölümü HiveQL
süreci motoru ve MapReduce
bir Hive
Yürütme Motoru. Yürütme altyapısı sorguyu işler ve aynı sonuçları üretir MapReduce results
. Lezzetini kullanır MapReduce
.
HDFS veya HBase : Hadoop
Dağıtılmış Dosya Sistemi veya HBase
verileri dosya sistemine depolamak için kullanılan veri depolama teknikleridir.