Apache Ecosystem

Ölçeklenebilirlik Mimarisi: Apache Hadoop’ın Çekirdek Altyapısına Derin Bir Bakış

Modern veri mühendisliği alanında, Apache Hadoop kadar derin izler bırakmış birkaç teknoloji vardır. Yıllardır büyük veri işleme için temel taşı görevi görerek, kuruluşların ticari donanımlı küme üzerinde petabaytlarca bilgiyi depolamasını ve analiz etmesini sağlamıştır. Spark ve Flink gibi yeni araçlar belirli kullanım senaryoları için ortaya çıksa da, dağıtık sistemlerde uzmanlaşmayı hedefleyen her geliştirici için Hadoop’ın temel mimarisini anlamak kritik önem taşır. Bu yazıda Hadoop ekosisteminin üç temel direği olan HDFS, MapReduce ve YARN incelenecektir.

Hadoop Dağıtık Dosya Sistemi (HDFS): Depolama Omurgası

Veri işlenmeden önce, verimli bir şekilde depolanmalıdır. HDFS, yüksek hata toleransına sahip devasa veri setlerini işlemek üzere tasarlanmış dağıtık bir dosya sistemidir. Geleneksel dosya sistemlerinin aksine, HDFS büyük dosyaları bloklara (genellikle 128MB veya 256MB) böler ve bunları bir makine kümesine dağıtır. HDFS’in güvenilirliğinin anahtarı çoğaltmadır. Varsayılan olarak, her blok farklı düğümlerde (ve genellikle farklı raf gruplarında) üç kez çoğaltılır; bu sayede bir düğüm arızalandığında veriye erişim devam eder. Bu mimari, HDFS’in doğrusal olarak ölçeklenebilmesini sağlar; daha fazla düğüm ekledikçe hem depolama kapasitesi hem de veri aktarım hızı orantılı olarak artar. ```xml fs.defaultFS hdfs://namenode:9000 dfs.replication 3 ```

MapReduce: İşleme Motoru

Veri depolandıktan sonra, analiz edilmesi gerekir. MapReduce, Google tarafından tanıtılan ve Hadoop tarafından benimsenen orijinal işleme paradigmasydır. "Veriyi işlemeye taşımak" yerine "işlemeyi veriye taşımak" ilkesi üzerine çalışarak ağ trafiğini en aza indirger. MapReduce işi iki aşamadan oluşur: Map (Eşleme) ve Reduce (Azaltma). Map aşaması, girdi verisini işleyerek ara anahtar-değer çiftleri oluşturur. Reduce aşaması ise bu ara sonuçları birleştirerek nihai çıktıyı üretir. Güçlü bir yapıya sahip olsa da, MapReduce karmaşık sorgular için yinelenen ve yavaş bir yapıdadır çünkü ara sonuçları diske yazar. ```java // Basitleştirilmiş MapReduce Mantığı public class WordCountMapper extends Mapper { private final static IntWritable one = new IntWritable(1); private Text word = new Text(); public void map(Object key, Text value, Context context) { StringTokenizer itr = new StringTokenizer(value.toString()); while (itr.hasMoreTokens()) { word.set(itr.nextToken()); context.write(word, one); } } } ```

YARN: Kaynak Yönetimi ve Orkestrasyon

Hadoop’ın erken sürümleri bir darboğazla karşılaştı: MapReduce tek işleme motoruydu ve bu da monolitik bir mimari yaratıyordu. YARN (Yet Another Resource Negotiator - Başka Bir Kaynak Müzakerecisi), kaynak yönetimini veri işlemeden ayırmak amacıyla tanıtıldı. YARN, aynı Hadoop kümesi üzerinde Spark, Tez veya Hive gibi birden fazla veri işleme motorunun çalışmasına olanak tanır. YARN iki ana bileşenden oluşur: Küme kaynaklarını izleyen ResourceManager ve bireysel düğümleri yöneten NodeManager. Bu sorumluluk ayrımı, küme kaynaklarının daha iyi kullanılmasını ve çoklu kiracılığı (multi-tenancy) mümkün kılarak Hadoop’u çeşitli iş yükleri için daha esnek bir platform haline getirir.

Daha Geniş Ekosistem

Hadoop nadiren yalnız kullanılır. Başarısı, aşağıdakileri içeren ekosistemine dayanır:
  • Hive: SQL benzeri bir sorgu dili (HiveQL) sağlayan bir veri ambarı altyapısı.
  • HBase: Gerçek zamanlı okuma/yazma erişimi için HDFS üzerine inşa edilmiş bir NoSQL veritabanı.
  • Pig: Yüksek seviyeli bir veri akış dili ve yürütme çerçevesi.

Sonuç

Büyük veri alanı bulut-native çözümler ve akış işleme çerçeveleriyle evrilse de, Apache Hadoop’ın temel kavramları—dağıtık depolama, hata toleranslı işleme ve kaynak soyutlaması—temel yapı taşları olarak kalmaya devam etmektedir. Geliştiriciler için HDFS, MapReduce ve YARN’ı ustalaşmak, bugün üretim ortamında kullanılan spesifik araçlardan bağımsız olarak karmaşık dağıtık hesaplama zorluklarıyla başa çıkmak için gerekli zihinsel modelleri sağlar.
Share: