Hadoop Ekosistemine Giriş: HDFS, MapReduce ve YARN

Mehmet_ISIK
7 min readSep 26, 2024

--

İçindekiler

  1. Giriş
  2. Hadoop Nedir?
  3. Hadoop’un Temel Özellikleri
  4. Hadoop Tarihçesi
  5. Hadoop İsminin Kökeni
  6. Klasik Sistemler vs. Hadoop
  7. Hadoop’un Yapısı
  • NameNode
  • DataNode
  • HDFS İstemcisi
  • MapReduce
  • YARN (Yet Another Resource Negotiator)
  • NodeManager
  • ApplicationMaster

8. Hadoop’ta Hata Toleransı

9. Hadoop’ta Dağıtık İşleme ve Ölçeklenebilirlik

10. Hadoop’un Dezavantajları

11. Dağıtık Depolama ve İşleme

12. HDFS Nedir?

13. HDFS Nasıl Çalışır?

14. HDFS’nin Özellikleri

15. MapReduce Nedir?

16. MapReduce Çalışma Şeması

17. Kimler MapReduce Kullanır?

18. YARN Nedir?

19. YARN Nasıl Çalışır?

20. YARN’ın Bileşenleri

  • ResourceManager
  • NodeManager
  • ApplicationMaster

21. Hadoop’un Geleceği

22. Sonuç

1. Giriş

Hoşgeldiniz!

Günümüzde büyük veri, her geçen gün daha da önem kazanıyor. Verilerin hızla büyüdüğü ve çeşitlendiği dijital çağda, bu büyük veri kümelerini işlemek için daha güçlü, esnek ve ölçeklenebilir çözümlere ihtiyaç var. Apache Hadoop, bu büyük veri işleme ihtiyacına cevap veren en popüler ve yaygın kullanılan sistemlerden biridir. Bu yazımızda Hadoop’un ne olduğunu, nasıl çalıştığını ve büyük veri dünyasında neden bu kadar önemli olduğunu detaylı bir şekilde inceleyeceğiz.

Resim — 1: Hadoop

2. Hadoop Nedir?

Apache Hadoop, büyük veri kümelerinin dağıtık bir şekilde işlenmesini sağlayan açık kaynaklı bir yazılım kütüphanesidir. Hadoop, basit programlama modelleri kullanarak büyük verilerin birden fazla sunucu üzerinde paralel olarak işlenmesini mümkün kılar. Bu dağıtık yapı, verilerin saklanması ve işlenmesi konusunda yüksek esneklik ve ölçeklenebilirlik sağlar. Hadoop, büyük miktarda verinin hem saklanmasını hem de verimli bir şekilde işlenmesini sağlar ve bu yüzden büyük veri (Big Data) ile çalışan organizasyonlar için oldukça idealdir.

3. Hadoop’un Temel Özellikleri

  • Açık Kaynak: Herkes tarafından kullanılabilir ve geliştirilebilir bir açık kaynak yazılımıdır.
  • Yazılım Tabanlı: Hadoop, donanım değil, yazılım tabanlı bir framework’tür. Düşük maliyetli ve standart donanımlar üzerinde çalışabilir.
  • Küme Tabanlı (Cluster): Hadoop, verileri birden fazla sunucu üzerinde dağıtarak işler. Bu dağıtım, iş yükünün paylaşılmasını ve paralel işlem yapılmasını sağlar.
  • Büyük Veri İşleme: Çok büyük veri kümelerini depolayabilir ve işleyebilir.
  • Dağıtık İşleme: Hadoop, işlemleri birden fazla düğümde paralel olarak yürütür. Bu, işleme hızını artırır ve sistemin verimliliğini yükseltir.

4. Hadoop Tarihçesi

Hadoop’un gelişim süreci şu şekildedir:

  • 2002: Apache Nutch projesi başladı.
  • 2003: Google, veri işleme için MapReduce makalesini yayınladı.
  • 2004: Nutch, Dağıtık Dosya Sistemi (Distributed File System) ile tanıtıldı.
  • 2005: Hadoop, Hadoop Distributed File System (HDFS) ile piyasaya sürüldü.
  • 2006: Yahoo, Hadoop’u kullanmaya başladı.
  • 2013: Hadoop 2, yeni özelliklerle birlikte yayımlandı.
  • 2017: Hadoop 3, hata toleransı ve ölçeklenebilirlik geliştirmeleriyle yayımlandı.
Resim — 2: Hadoop History

5. Hadoop İsminin Kökeni

Hadoop ismi, Doug Cutting’in oğlunun sarı oyuncak filinden gelir. Cutting, bu ismi yazılım projesi için kullanmaya karar vermiştir.

Resim — 3: Hadoop Name

6. Klasik Sistemler vs. Hadoop

Klasik sistemlerde veriler tek bir sunucuda saklanır ve işlenir. Bu durum, büyük veri işleme süreçlerinde ölçeklenebilirlik sorunlarına yol açabilir. Hadoop ise verileri dağıtık bir şekilde işler ve verimlilik sağlar. Klasik sistemlerde işlem gücü ve depolama birimleri sınırlıdır; bu, verinin büyümesiyle birlikte performansın düşmesine neden olur. Hadoop ise verileri dağıtık bir yapıda işleyerek bu performans problemini aşar. Veriler büyük miktarlara ulaştığında bile Hadoop, sunuculara (düğümlere) ekleyerek kapasiteyi artırabilir. Ayrıca, klasik sistemlerde veri kaybı riski daha yüksektir çünkü veri genellikle tek bir sunucuda saklanır. Hadoop’ta ise veriler birden fazla düğüme kopyalanır, bu da veri güvenliğini artırır ve hata toleransı sağlar.

Resim — 4: Hadoop Classical System vs. Hadoop

7. Hadoop’un Yapısı

  • NameNode: HDFS’teki dosya sistemini yönetir. Verilerin nerede saklandığını ve her bir veri bloğunun hangi node’da olduğunu takip eder.
  • DataNode: Verilerin fiziksel olarak depolandığı node’lardır. Her DataNode, NameNode ile sürekli iletişim halindedir.
  • HDFS İstemcisi: Kullanıcıların HDFS’te veri okumak ve yazmak için kullandıkları araçtır.
  • MapReduce: Veriler önce “map” aşamasında işlenir ve küçük parçalara ayrılır, ardından “reduce” aşamasında bu parçalar birleştirilir.
  • YARN: Hadoop’ta kaynak yönetimini ve iş yükü planlamasını sağlar. YARN, birden fazla iş akışını paralel olarak yönetir.
  • NodeManager: Her node’da çalışan kaynak yönetim bileşenidir. node’lardaki CPU, bellek gibi kaynakların yönetimini sağlar.
  • ApplicationMaster: Her işin yönetiminden sorumlu bileşendir. Kaynakları tahsis eder ve işin başarılı bir şekilde tamamlanmasını sağlar.

8. Hadoop’ta Hata Toleransı

Hadoop, verileri birden fazla node’a kopyalayarak hata toleransı sağlar. Bu mekanizma, veri kaybını en aza indirir ve işlemlerin kesintisiz yürütülmesini sağlar.

9. Hadoop’ta Dağıtık İşleme ve Ölçeklenebilirlik

Hadoop, verileri küçük parçalara bölerek dağıtık bir yapıda işler. Bu, büyük veri kümelerinin daha hızlı işlenmesine ve veri kaybı riskinin azaltılmasına olanak tanır. Hadoop, hem scale-up hem de scale-out ölçekleme modellerini destekler. Scale-up modelinde donanımın kapasitesi artırılırken, scale-out modelinde daha fazla sunucu eklenerek paralel işleme kapasitesi artırılır.

Resim — 5: Distributed Processing
Resim — 6: Scaling

10. Hadoop’un Dezavantajları

  • Esneklik Eksikliği: Hadoop, her kullanım senaryosu için esnek olmayabilir. Veriyi işleme modeli belirli sınırlamalara sahiptir.
  • Yönetim Karmaşıklığı: Yeni node eklemek ve yönetmek zaman alıcı ve karmaşık olabilir.
  • Namenode Kapasite Sınırları: Namenode, Hadoop’un kapasite sınırlarını belirler. Çok büyük veri kümelerinde belleğin sınırlı olması sorun yaratabilir.
  • Depolama ve İşleme Arasındaki Bağlılık: Hadoop’ta depolama ve işlem süreçleri sıkı sıkıya birbirine bağlıdır.

11. Dağıtık Depolama ve İşleme

Hadoop’un en güçlü yönlerinden biri, verilerin dağıtık olarak depolanması ve işlenmesidir. HDFS (Hadoop Distributed File System), verileri birden fazla node’a bölerek bu verilerin güvenli bir şekilde işlenmesini sağlar. Bu yapı, verilerin paralel işlenmesine ve veri kaybı riskinin azaltılmasına olanak tanır.

12. HDFS Nedir?

Hadoop Distributed File System (HDFS), Hadoop’un büyük veri kümelerini dağıtık bir şekilde depolamak için kullandığı dosya sistemidir. HDFS, büyük veri setlerini çok sayıda node’a bölerek depolar. Bu yapı, büyük miktardaki verilerin kolayca yönetilmesini ve işlenmesini sağlar.

13. HDFS Nasıl Çalışır?

HDFS, merkezi bir NameNode ve veri depolamak için kullanılan DataNode’lardan oluşur. NameNode, verilerin nerede saklandığını kontrol ederken, DataNode’lar verilerin depolandığı sunuculardır. HDFS’de veriler bloklar halinde saklanır ve her blok birden fazla DataNode üzerine yazılır. Bu sayede, bir düğümde hata oluştuğunda, veriler diğer düğümlerden alınarak işlenmeye devam edilir.

Resim — 7: HDFS Çalışma Yapısı

14. HDFS’nin Özellikleri

  • Büyük Dosya Desteği: HDFS, petabaytlarca veriyi işleyebilir ve depolayabilir.
  • Hata Toleransı: HDFS, verileri birden fazla kopya halinde farklı düğümlerde saklayarak hata toleransı sağlar.
  • Yüksek Erişilebilirlik: Eğer bir NameNode devre dışı kalırsa, yedek NameNode devreye girer ve işlemler devam eder.
  • Ölçeklenebilirlik: Düğüm ekleyerek HDFS’nin kapasitesi kolayca artırılabilir.

15. MapReduce Nedir?

MapReduce, büyük veri kümelerini dağıtık bir şekilde işlemek için kullanılan bir programlama modelidir. Bu model, büyük verileri işlemek için iki temel aşamaya dayanır: Map ve Reduce. Map aşamasında veriler işlenir ve küçük parçalara ayrılır. Reduce aşamasında ise bu parçalar birleştirilir ve nihai sonuç elde edilir.

Resim — 8: Hadoop Map Reduce

16. MapReduce Çalışma Şeması

MapReduce’un çalışma şeması şu adımlardan oluşur:

  1. Map Aşaması: Veriler küçük parçalara ayrılarak işleme node’larında analiz edilir.
  2. Shuffle Aşaması: Aynı türdeki veriler bir araya getirilir.
  3. Reduce Aşaması: Veriler birleştirilir ve nihai sonuç elde edilir.
Resim — 9: MapReduce Çalışma Yapısı

17. Kimler MapReduce Kullanır?

MapReduce, büyük veri işleme süreçlerinde yaygın olarak kullanılır. Örneğin:

  • Sqoop: Yapılandırılmış verileri Hadoop’a taşır.
  • Hive: SQL benzeri sorgular çalıştırır.
  • Pig: Veri analitiği sağlar.

Bilgi: Günümüzde MapReduce nerdeyse bitti gibi bir şey durumunda. Artık MapReduce yazan çok çok az kişi var. Buna rakip olarak çıkan Spark piyasayı domine etmiş durumda.

18. YARN Nedir?

YARN (Yet Another Resource Negotiator), Hadoop’un kaynak yönetim ve iş planlama sistemidir. YARN, Hadoop’un verimli bir şekilde çalışmasını sağlayan temel bileşendir ve Hadoop’taki uygulamalar arasında kaynak tahsisi yaparak her birinin ihtiyaç duyduğu kaynaklara erişmesini sağlar.

Resim — 10: Hadoop YARN

19. YARN Nasıl Çalışır?

YARN, Hadoop ekosisteminde uygulamalar arasında kaynak dağıtımını yönetir. Her uygulama, YARN tarafından kaynaklara erişim izni alır ve Hadoop kümesinde paralel olarak çalıştırılır. YARN, kaynakları optimize ederek veri işlemenin hızını artırır ve kaynak kullanımını düzenler.

20. YARN’ın Bileşenleri

  • ResourceManager: Kümedeki kaynakları yöneten merkezi bileşendir. Uygulamalara kaynak tahsis eder ve kaynak kullanımını izler.
  • NodeManager: Her düğümde çalışan bileşendir. NodeManager, düğümlerin kaynaklarını izler ve ResourceManager ile iletişim kurarak kaynak tahsisini sağlar.
  • ApplicationMaster: Her uygulamanın kaynaklarını yöneten geçici bileşendir. Bir uygulamanın ihtiyaç duyduğu kaynakları belirler, bu kaynakları yönetir ve uygulamanın sorunsuz çalışmasını sağlar.
Resim — 11: Hadoop YARN Mimari Yapısı

21. Hadoop’un Geleceği

Apache Hadoop, büyük veri işleme dünyasında devrim yaratan bir sistem olarak yerini almıştır. Hadoop’un dağıtık yapısı ve esnek mimarisi, büyük veri işleme süreçlerinde önemli avantajlar sunar. Hadoop, Spark gibi modern veri işleme araçlarıyla birlikte entegre edilerek daha güçlü ve esnek veri çözümleri sunmaya devam etmektedir.

22. Sonuç

Hadoop, büyük veri işleme dünyasında devrim yaratmış ve HDFS ile MapReduce gibi bileşenleri sayesinde büyük veri kümelerinin verimli bir şekilde depolanmasını ve işlenmesini sağlamıştır. YARN, Hadoop’un esnekliğini artırarak kaynak yönetiminde önemli bir rol oynar. Hadoop, büyük veri projelerinde güçlü bir çözüm olmaya devam etmektedir. Ancak yeni teknolojilerle entegre bir şekilde kullanılması, gelecekteki veri işleme süreçlerinde Hadoop’un yerini daha da sağlamlaştıracaktır.

Bir sonraki yazımda görüşmek üzere.

Her türlü iş birliği için, LinkedIn üzerinden bağlantı kurmak isterseniz buradan profilime ulaşabilirsiniz 😊

--

--