Hadoop, kullanıcıların büyük miktarlarda yapılandırılmış veriyi ve yapılandırılmamış veriyi depolamasına, işlemesine ve analiz etmesine olanak tanıyan açık kaynaklı bir çerçevedir.
Hadoop başlangıçta arama motoru indekslemesine yardımcı olmak için geliştirilse de, Google’ın piyasaya sürülmesinden sonra odak noktası büyük veriye yöneldi.
Açık kaynaklı bir çözüm olan Hadoop, düşük bir giriş maliyeti sağlar ve büyük veri analitiğini pahalı şirket içi donanımlarla çalıştırma ihtiyacını ortadan kaldırır. Sonuç olarak Hadoop, verileri işlemek ve büyük veri kümelerini depolamak isteyen işletmeler için cazip bir seçenektir.
Bugün, bu açık kaynaklı büyük veri çerçevesi Apache Software Foundation tarafından desteklenir ve bakımı yapılır; dolayısıyla Hadoop’un Apache Hadoop olarak adlandırıldığını duyabilirsiniz.
Hadoop’un çekirdeği üç ana bileşenden oluşur:
- Hadoop Distributed File System (Hadoop Dağıtılmış Dosya Sistemi)
- Hadoop MapReduce
- Hadoop YARN
Fakat Hadoop’un ana bileşenlerini öğrenmeden önce, ”daemonlar” hakkında bilgi sahibi olmanız gerekir. Daemonlar, dağıtılmış altyapının çalıştırılmasına yardımcı olan arka plan işlemleridir. Bu süreçler veri depolama ve veri işleme görevlerini yerine getirir. Hadoop’taki temel daemonlar aşağıdakileri içerir:
- NameNode: NameNode, dosya sistemi ad alanını yöneten ve ayrıca dosyalara erişimi kontrol eden ana sunucudur. Temel olarak, tüm dosya ve dizinler için dizin ağacını ve meta verileri korur.
- DataNode: DataNode gerçek veri bloklarının depolanmasından sorumlu işçi düğümlerdir. Hata toleransını sağlamak için her bloğun birden fazla kopyası farklı DataNode’lara dağıtılır.
- ResourceManager (RM): Bu daemon, Hadoop’un Yet Another Resource Negotiator (YARN) sisteminin bir parçasıdır ve kümedeki kaynakların yönetilmesi ve izlenmesinden sorumludur. ResourceManager, belirli görevlerin (MapReduce görevleri gibi) dağıtımını koordine eden ana sistem olarak hareket eder.
- NodeManager (NM): İşçi düğümlerinin her birinde çalışan NodeManager daemon, ResourceManager ile birlikte çalışır. Kendi düğümündeki kaynakları izler ve ResourceManager’a geri bildirimde bulunur. Ayrıca, ResourceManager tarafından yönlendirildiği gibi düğümündeki görevleri yürütmekten de sorumludur.
1. Hadoop Distributed File System
Hadoop Dağıtılmış Dosya Sistemi (HDFS), Hadoop sisteminin veri depolama bileşenidir. HDFS, sistemde depolanan verileri alır ve daha sonra Hadoop kümesindeki veri düğümlerinde depolanan daha küçük, daha yönetilebilir parçalara böler.
Hadoop Distributed File System, büyük veri kümelerini etkili ve verimli bir şekilde daha yönetilebilir boyutlara indirgeyebilir. Veri görevlerini ve analizlerini gerçekleştirmek için tüm verilere her veri düğümünden aynı anda erişilebilir.
2. Hadoop MapReduce
MapReduce, Hadoop sisteminin birincil programlama bileşenidir. Hadoop MapReduce kullanılarak büyük veri görevleri, tüm Hadoop kümesinde aynı anda gerçekleştirilen küçük görevlere bölünebilir.
Paralel işleme, verileri işlemek için gereken süreyi büyük ölçüde azaltır ve yıkıcı bir bilgisayar arızası olasılığını azaltır. MapReduce ve HDFS birbiriyle yakından ilişkilidir ve sistemin düzgün çalışması için birbirlerine ihtiyaç duyarlar.
3. Hadoop YARN
Hadoop YARN (Yet Another Resource Negotiator) sistem genelinde bilgi işlem kaynaklarının yönetilmesinden sorumludur. YARN, Hadoop kümesi genelinde görevleri planlar ve tahsis eder.
YARN tam olarak sistemin veri işleme motoru değildir, ancak sistemin kapsayıcı görev ve kaynak yöneticisidir.
4. Hadoop Common
Hadoop Common, Hadoop’un orijinal üç bileşeninin bir parçası değildir. Hadoop Common, Apache tarafından eklenen dördüncü bir bileşendir. Common, HBase, Hive, Apache Spark, Sqoop ve Flume gibi ek yardımcı programlar ve uygulamalar içeren bir Java kütüphanesidir.
Tüm bunlar Hadoop ekosisteminin performansını ve yeteneklerini geliştiren eklenti özelliklerdir.
Bulutistan hizmetlerinin detaylarına ulaşmak için tıklayınız.
Hadoop’un Tarihçesi
Modern veri göllerinin tarihi Hadoop’un yükselişiyle mümkün oldu. Son derece büyük veri kümelerini depolama ve işleme ihtiyacı arttıkça, mevcut platform ve araçlar talebi karşılayamaz hale geldi. Veri değişiyordu ve Hadoop’a dayanan veri gölü, evriminde merkezi bir rol oynadı.
2003 yılında Google, dağıtılmış dosya sistemlerindeki verilere yeterli erişim sağlamak için GFS’yi (Google Dosya Sistemi) tanıttı.
2004 yılında Google, harita küçültme konusunda bir teknik inceleme yayınladı. Java tabanlı hesaplamada işlerin işlenmesine yönelik bir teknik ve program modeli, görev ve harita azaltma konusunda önemli algoritmalara sahiptir. Veriyi dönüştürür ve bir veri seti haline getirir.
2005 yılında NDFS, Doug Cut ve Mike Cafarella tarafından (Nutch dağıtılmış dosya sistemi) tanıtıldı. Bu, Hadoop’ta yeni bir dosya sistemidir. Hadoop dağıtılmış dosya sistemi ve Nutch dağıtılmış dosya sistemi aynıdır.
2006 yılında Google, Doug’ın istifasıyla Yahoo’ya katıldı. Doug Cut, Nutch dağıtılmış dosya sistemini temel alan Hadoop dağıtılmış dosya sistemi üzerinde yeni bir proje yaptı. Aynı yıl Hadoop’un ilk sürümü 0.1.0 yayınlandı.
2007 yılında Yahoo, 1000 makinede aynı anda iki kümeyi çalıştırmaya başladı.
2008 yılında Hadoop en hızlı sistem haline geldi.
2013 yılında Hadoop 2.2 piyasaya sürüldü.
2017 yılında Hadoop 3.0 piyasaya sürüldü.
Hadoop’u Neden Kullanmalısınız?
Hadoop, büyük miktarda verinin oluşturulduğu ve işletmenizin bu verilerden öngörülere ihtiyaç duyduğu durumlarda kullanılır. Hadoop’un gücü, yazılımın neredeyse çoğunun ona takılabildiği ve veri görselleştirme için kullanılabildiği için çerçevesinde yatmaktadır. Bir sistemden bir kümedeki binlerce sisteme genişletilebilir ve bu sistemler düşük kaliteli ticari sistemler olabilir. Hadoop, yüksek kullanılabilirlik için donanıma bağlı değildir.
Peki neden Hadoop kullanmalısınız?
- Hadoop’un maliyet tasarrufları eski sistemlerle karşılaştırıldığında üst düzeydedir.
- Zaman içinde yeni gelişmelerle gelişen sağlam bir topluluk desteğine sahiptir.
Hadoop Nasıl Çalışır?
Hadoop, dev veri kümelerinin ticari donanım kümeleri arasında dağıtılmasına olanak tanır. Birden çok sunucuda paralel işlemeyi kullanarak işletmelerin büyük miktarda veriyi hızlı bir şekilde depolamasına ve işlemesine yardımcı olur.
Hadoop’u kullanırken müşteriler aşağıdaki adımları takip edebilir:
- Müşteriler veri ve programları Hadoop’a gönderir.
- HDFS, meta verileri ve dağıtılmış dosya sistemlerini yönetir.
- Hadoop MapReduce giriş ve çıkış verilerini işler ve dönüştürür.
- YARN görevleri bir kümeye böler.
- Hadoop deneyiminden yararlanan müşteriler verimliliği, hızlı yanıt sürelerini ve büyük verilerden en iyi şekilde yararlanma becerisini artırdı.
Büyük Veri için Hadoop Kullanmanın Avantajları
Hadoop piyasadaki en eski büyük veri çözümlerinden biridir ve bu sistemi kullanmanın birçok faydası vardır.
Hadoop’un en önemli avantajları aşağıdakileri içerir:
- Maliyet
- Güç
- Hata toleransı
- Esneklik
- Maliyet
1. Maliyet
Herhangi bir iş teknolojisi için en önemli faktörlerden biri maliyettir. Hadoop’un en önemli avantajlarından biri, onu kullanmayla ilişkili maliyettir. Hadoop sistemi açık kaynaklıdır, bu nedenle işletmenizin pahalı yazılım çözümleri için ödeme yapması gerekmez.
Buna ek olarak, Hadoop verileri depolamak için emtia donanımı kullanır, bu da işletmenizin pahalı donanım altyapısına yatırım yapmak zorunda kalmamasını sağlar. Hadoop muhtemelen tüm büyük veri çözümleri arasında işletmeler için en uygun maliyetli olanıdır.
2. Güç
Hadoop’un dağıtılmış bilgi işlem kaynak modeli, işletmelerin büyük verileri hızlı bir şekilde işlemesini sağlar. Dağıtılmış bilgi işlem, işletmenizin yerinde sahip olduğundan daha fazla bilgi işlem kaynağına erişmesini sağlar.
Hadoop ile işletmeniz ne kadar çok veri düğümü kullanırsa, işleme yetenekleri de o kadar güçlü olur. Hadoop’un fiyat noktasında daha güçlü bir büyük veri sistemi bulamazsınız.
Verilerini tam olarak kullanmak ve hızlı bir şekilde işlemek isteyen işletmeler Hadoop’un sunduğu bilgi işlem gücünden faydalanabilir.
3. Hata Toleransı
Dağıtık bilgi işlem, işletmelere sunduğu muazzam bilgi işlem gücünün ötesinde faydalar sağlar. Hadoop’un dağıtık bilgi işlem modeli, donanım arızası durumunda veri işlemlerinizin korunmasını da sağlar.
Bir düğüm donanım arızası nedeniyle çevrimdışı olursa, tüm veri görevleri otomatik olarak etkin bir düğüme yönlendirilir ve veri işlemleri kesintisiz olarak devam eder.
Donanım arızası nedeniyle değerli verileri kaybetmeyi veya işleme operasyonlarının çevrimdışı olmasını göze alamazsınız. Hadoop’un dağıtık modeli, işletmelere büyük veri operasyonlarında güven verebilecek güçlü hata toleransı sunar.
4. Esneklik
Hadoop, veri depolama söz konusu olduğunda işletmelere önemli bir esneklik sunar. Geleneksel ilişkisel veri tabanlarında, tüm veri formatlarının tutarlı olmasını sağlamak için depolama öncesinde tüm verilerin önceden işlenmesi gerekir.
Hadoop, birden fazla kaynaktan gelen verilerin depolanmasını kolaylaştırır, çünkü verilerin önceden işlenmesi veya belirli bir şekilde yapılandırılması gerekmez. Her türden veriyi toplayabilir ve işletmenizin istediği şekilde depolayabilirsiniz. Hadoop, işletmenizin verileri depolamasına ve daha sonra nasıl kullanılacağına karar vermesine olanak tanır.
Ayrıca Hadoop son derece ölçeklenebilirdir ve bu da esnekliğin en üst düzeyidir. Daha fazla depolama alanına veya daha fazla bilgi işlem gücüne ihtiyaç duyarsanız, ek düğümler eklemek ve performans seviyelerini çok az idari işle iyileştirmek kolaydır.
5. Minimum Ağ Trafiği
Hadoop, her görevi, her biri bir kümedeki kullanılabilir bir veri düğümüne atanan birkaç küçük alt göreve böler. Her düğüm az miktarda veri işleyerek genel olarak daha az ağ trafiğine olanak tanır.
6. Yüksek Verim
Hadoop’un dağıtılmış dosya sistemi, bir küme içindeki çeşitli düğümlere çeşitli işler atar. Paralel süreç, yüksek verim sağlar; bu da siz ve işletmeniz için daha fazla verimlilik ve üretkenlik anlamına gelir.
Hadoop’un Dezavantajları
Birçok avantajına rağmen, Hadoop aynı zamanda bazı benzersiz zorlukları da beraberinde getirir. Hadoop ile ilgili akılda tutulması gereken en önemli dezavantajlarından bazıları aşağıdakileri içerir:
1. Küçük Dosya Zorlukları
Bu aracın en büyük engellerinden biri bazen küçük dosya boyutlarıyla uğraşmasıdır.
Az sayıda büyük boyutlu dosya için iyi çalışır. Ancak tam tersi durumda, birçok küçük dosya Namenode’a (HDFS Mimarisindeki ana düğüm) fazladan yük bindirebilir ve onun düzgün çalışmasına müdahale edebilir.
2. Potansiyel Güvenlik Sorunları
Hadoop öncelikle dünyanın en tanınmış programlama dillerinden biri olan Java ile yazılmıştır. Temel olarak Java kullanıyor olması onu daha az güvenli hale getirir, çünkü siber suçlular onu daha kolay anlayıp istismar edebilir.
3. Dik Öğrenme Eğrisi
Hadoop çerçevesi, son kullanıcıların anlaması ve üzerinde çalışması açısından karmaşık olabilir. Mimari ayrıca kurulum, bakım ve güncelleme için derinlemesine bilgi ve önemli kaynaklar gerektirir.
Hadoop Ne İçin Kullanılır?
Hadoop’un bazı temel uygulamalarından bazıları aşağıdaki şekildedir:
1. Büyük veri analitiği
Hadoop’un popülerliğinin başlıca nedenlerinden biri, devasa veri kümelerini işleme konusundaki yeterliliğidir. Büyük yapılandırılmış ve yapılandırılmamış veri kümelerini analiz etmek için bir platform sağlar.
Örnek: Perakendeciler, ürün tekliflerini uyarlamak, fiyatlandırma stratejilerini optimize etmek ve müşteri hizmetlerini iyileştirmek için müşterilerin satın alma alışkanlıklarını, tercihlerini ve geri bildirimlerini analiz eder.
2. Günlük ve tıklama akışı analizi
Günlük dosyaları ve tıklama akışları, kullanıcı davranışı verilerinden oluşan bir hazine sağlar. İçgörüler elde etmek için bu büyük günlük setlerini işleyebilir.
Örnek: Bir e-ticaret web sitesi, kullanıcıların sitede nasıl gezindiğini anlamak için günlükleri analiz edebilir, bu da kullanıcı arayüzünü iyileştirmek veya promosyonları uyarlamak için etkili olabilir.
3. Veri ambarı ve iş zekası (BI)
Farklı kaynaklardan gelen büyük miktarda veriyi dağıtılmış bir şekilde depolayabilir ve derinlemesine iş içgörüleri sağlamak için BI araçlarıyla entegre olabilir.
Örnek: Bir finans kurumu, çeşitli sistemlerden gelen verileri Hadoop’ta birleştirebilir ve ardından pazar eğilimleri, müşteri segmentasyonu ve risk analizi hakkında öngörüler elde etmek için BI araçlarını kullanabilir.
4. İçerik önerisi
Kişiselleştirme günümüzün dijital çağında hayati öneme sahiptir. Özel içerik veya ürün önerileri sağlamak için kullanıcı verilerini işleyebilir ve analiz edebilir.
Örnek: Netflix veya Spotify gibi yayın hizmetleri, şov, film veya müzik önermek için sırasıyla kullanıcının izleme veya dinleme alışkanlıklarını analiz eder.
5. Görüntü ve video analizi
Görüntü ve video verilerinin işlenmesi büyük dosyaların analizini gerektirir. Hadoop, dağıtılmış veri işleme kapasitesiyle bunu verimli bir şekilde halledebilir.
Örnek: Sağlık hizmetlerinde tıbbi görüntüleme dosyaları, kalıpları veya anormallikleri tespit etmek ve teşhislere yardımcı olmak için işlenebilir.
6. Bilimsel simülasyon ve veri işleme
Aynı zamanda bilim topluluğu tarafından simülasyonları yürütmek ve sonuçta ortaya çıkan geniş veri kümelerini işlemek için de kullanılır.
Örnek: İklim bilimcileri, çeşitli parametrelere ve geçmiş verilere dayalı olarak küresel iklim değişikliklerini simüle etmek ve analiz etmek için Hadoop’u kullanabilir.
7. Arama kalitesinin iyileştirilmesi
Arama motorları, arama sonuçlarını iyileştirmek için büyük miktarda veriyi işler. Bu verilerin saklanmasına ve analiz edilmesine yardımcı olur.
Örnek: Bir arama motoru şirketi, arama sonuçlarının alaka düzeyini sürekli olarak iyileştirmek için kullanıcı arama sorgularını, tıklama oranlarını ve web sitesi geri bildirimlerini analiz edebilir.
8. Dolandırıcılık tespiti ve önlenmesi
İşlem verileri ve kullanıcı davranışı analiz edilerek, dolandırıcılık faaliyetini gösteren modeller tespit edilebilir.
Örnek: Kredi kartı şirketleri, yerleşik kalıplara dayalı olarak potansiyel sahtekarlık işlemlerini belirlemek için Hadoop’u kullanarak milyonlarca işlemi gerçekleştirebilir.
9. Sosyal medya analizi
Sosyal platformlar her saniye büyük miktarda kullanıcı verisi üretir. Kullanıcı davranışları, tercihleri ve trendleri hakkında öngörüler elde etmek için bu verileri işleyebilir.
Örnek: Bir şirket, kamuoyunun duyarlılığını ölçmek veya ortaya çıkan eğilimleri belirlemek için ürünüyle ilgili tweet’leri veya gönderileri analiz edebilir.
Bulutistan hizmetlerinin detaylarına ulaşmak için tıklayınız.
Hadoop Alternatifleri
1. Apache Spark
Spark çerçevesi Hadoop’un en popüler alternatifidir. Apache bunu Hadoop için eklenebilir bir toplu işleme sistemi olarak oluşturdu, ancak artık bağımsız olarak çalışır. Hadoop’a göre ana avantajı, yapay zeka ve derin öğrenmenin yükselişi göz önüne alındığında, yazılım şirketlerinin giderek artan bir odak noktası olan akış (gerçek zamanlı) işleme desteğidir.
Spark, disk tabanlı işlemeye değil, bellek içi işlemeye güvenerek akış işlemeyi destekler. Bu yaklaşım Hadoop’tan çok daha büyük bir verim sağlar.
2. Apache Storm
Storm, gerçek zamanlı işleme için tasarlanmış başka bir Apache aracıdır. Sistem kapatılana veya kesintiye uğrayana kadar sürekli çalışan iş akışı topolojilerini kullanır. Storm, dosyaları HDFS’ye okur ve yazar, ancak Hadoop kümesinde çalışamaz (bunun yerine Zookeeper’a güvenir).
Storm ve Hadoop arasındaki en büyük fark, verileri nasıl işledikleridir. Hadoop, verileri alır ve daha sonra kullanılmak üzere HDFS’ye geri çekmeden önce işlenmek üzere düğümler arasında dağıtır. Storm, verileri işlemek için bu ayrı başlangıç ve bitişten yoksundur; kendisine beslenen verileri sürekli bir akışta dönüştürüp analiz ederek karmaşık olay işlemeyi (CEP) mümkün kılar.
3. Ceph
Bu platform, nesneleri ağ boyunca dağıtılmış tek bir düğümde depolayarak nesne, dosya ve blok düzeyinde depolamayı kolaylaştırır. Hadoop’tan ana ayırt edici özelliği, tek bir hata noktası olmayan, tamamen dağıtılmış mimaridir.
Ceph verileri kopyalar ve hataya dayanıklıdır, bu da özel donanım ihtiyacını ortadan kaldırır. Sunucu kümesi hatalarının hızlı tanımlanmasını ve düzeltilmesini sağlayarak yönetim maliyetlerinin azaltılmasına yardımcı olur. HDFS olmadan Hadoop’tan Ceph depolama alanına erişebilirsiniz.
Ceph, büyük dosya sistemlerini yönetme konusunda Hadoop’tan daha iyi performans gösterir. HDFS’nin merkezi tasarımı, tek bir hata noktası oluşturarak verilerin dosya ve klasörler halinde düzenlenmesini daha az uygun hale getirir.
4. Hydra
Bu dağıtılmış işleme sistemi, birçok büyük veri görevini Hadoop’tan daha iyi gerçekleştirebilir. Toplu işlemleri ve akışı destekler. Hydra, verileri birçok kümedeki ağaçlarda depolar ve işler ve yüzlerce düğüm içeren kümeleri işleyebilir.
Hydra’nın işleri otomatik olarak yeniden dengelemek ve kümelere tahsis etmek için bir küme yöneticisi vardır. Hata toleransını sağlamak için veri çoğaltmayı ve otomatik düğüm hatası işlemeyi kullanır.