HADOOP Dağıtık Dosya Süreçleri ve Projeleri

tarihinde yayınlandıSEO Paylaşımları içinde yayınlandı

HADOOP Dağıtık Dosya Süreçleri ve HADOOP Projeleri

Hadoop, HDFS (Hadoop Distributed File System) ve Map Reduce bileşenlerinden oluşan bir yazılımdır. Büyük verileri işlemek amaçlı uygulamaları çalıştıran ve HDFS olarak adlandırılan bir dağıtık dosya sistemi ile Hadoop Map/Reduce özelliklerini birleştiren java ile geliştirilmiş açıklı kaynaklı bir kütüphanedir. Dağıtık sistemlerde en çok kullanılan program Hadoop’tur. Amacı Google Dosya Sistemi teknolojisi olan

Map/Reduce algoritmasını birçok bilgisayara dağıtarak uygulamayı sağlamaktadır. Hadoop giderek bir endüstri standardı olmaya başlıyor. Mesela Facebook Hadoop kullanarak kullanıcı davranışlarının analizini yapıyor ve sosyal reklamların etkisini ölçüyor.

 

DFS Dağıtık Dosya Sistemi (Distributed File System)

Mantıksal bir dosya sistemidir. DFS kullanarak ağ üzerinde paylaştırılmış olan tüm kaynakları tek bir çatı altında toplayıp ağ kullanıcılarının hizmetine tek bir paylaşımla sunabilirsiniz. Böylece ulaşılmak istenen paylaştırılmış kaynaklara daha hızlı erişebilirsiniz.

Örneğin, bir şirkette bir bölümde çalışanların o bölümün ilgili kaynaklarına tek bir merkezden ulaşmasını istiyorsak dağıtık dosya sistemi kullanarak dağınıklığı önleyebiliriz.

 

*DFS ROOT: Dosya dizin sistemi benzeri hiyerarşinin en üst düzeyidir.

*DFS LINK: DFS ROOT dizini ile paylaşılan DFS klasörü arasındaki bağlantıya verilen isimdir.

 

HDFS (Hadoop Distributed File System)

HDFS sayesinde sıradan disklerin sunucuları bir araya gelerek tek bir sanal disk oluştururlar. Böylece çok büyük boyutta birçok dosya bu dosya sisteminde saklanabilir. Bu dosya bloklar halinde farklı sunucular üzerine dağıtılarak yedeklenir. Bu sayede veri kaybı önlenmiş olur. Ek olarak, Hadoop dağıtık dosya sistemi büyük dosyalar üzerinde okuma (streaming) imkanı sağlar. Ancak raslantısal erişim (Random Access) özelliği bulunmaz.

 

HDFS Süreçleri

Hadoop dağıtık dosya süreçleri, name node ve data node süreçlerini barındırır.

  1. Name Node: Blokların sunucular üzerindeki dağılımından, yaratılmasından, silinmesinden ve bir blokta sorun meydana geldiğinde yeniden oluşturulmasından sorumludur. Ayrıca her türlü dosya erişimini de bu süreç yönetmektedir. Bu nedenle bu süreç için master yani ana süreç diyebiliriz. Anlaşılacağı gibi HDFS üzerindeki tüm dosyalar hakkındaki bilgiler (metadata) name node tarafından saklanır ve yönetilir. Her kümede yalnızca bir tane bulunur.
  2. Data Node: İşçi süreçtir. Data nodelerin her biri kendi yerel diskindeki verilerden sorumludur. Ayrıca her bir data node diğer data node verilerinin de yedeklerini bulundurur.

 

HADOOP Map/Reduce (Eşle/İndirge)

Map fonksiyonu istediğimiz verileri filtrelememizi sağlar. Bu verilerden sonuç elde etmemizi sağlayan ise, Reduce fonksiyonlarıdır. Map/Reduce, işlemleri küçük parçalara böler ve farklı bilgisayarlara dağıtır. Sonra işlenenleri toplayıp sonucu verir. Map ve Reduce fonksiyonlarından oluşan program yazıldıktan sonra Hadoop üzerinde çalıştırılır. Hadoop, Map ve Reduce fonksiyonlarından gelen iş parçalarını dağıtarak aynı anda işlenmesini ve oluşan verilerin tekrar bir araya gelmesini sağlar. Hadoop kümede düğüm sayısı arttıkça performansıda doğrusal olarak artar. Yani işlenen dosyaların ilgili düğümün yerel diskinden okunması, ağ trafiğini meşgul etmemesi, birden fazla işi aynı anda işleyerek doğrusal olarak ölçeklemesi gibi. Ayrıca, Hadoop’un Google Map/Reduce’den en büyük farkı açık kaynaklı olmasıdır.

 

Map/Reduce Süreçleri

Map reduce, job tracker ve task tracker süreçlerinden oluşur.

  1. Job Tracker: Yazılan Map/Reduce programının küme içinde dağıtılmasından, çalıştırılmasından, dağıtılan iş parçacıklarının çalışması esnasında oluşabilecek problemlerde işin sonlandırılmasında veya yeniden başlatılmasından sorumludur.
  2. Task Tracker: Data nodelerin bulunduğu sunucularda çalışır. Job tracker den iş talep eder. Job tracker, name node yardımıyla data nodenin lokal diskindeki veriye göre en uygun işi bulur ve task trackere verir. Böylece işler tamamlanmış olur. Sonuç çıktısı HDFS üzerinden bir dosya olarak yazılır ve program sonlanır.

 

HADOOP Parametreleri

  • Ölçeklenebilirlik: İhtiyaç duyulduğunda yeni düğüm noktaları eklenebilir.
  • Hesaplı çözüm: Yüksek hacimli verinin fazla CPU gücü gerektiren paralel çözüm ihtiyaçlarını, daha ucuz veya hesaplı bilgisayar alt yapısıyla gerçekleştirilmesini sağlar. Böylece her saklama için maliyet düşer ve hesap endişesi ikinci plana itilmiş olur.
  • Esneklik: Hadoop yapısal olan veya olmayan her türlü veriyi her kaynaktan işleyebilen şemasız bir mimariye sahiptir. Bu sayede farklı kaynaklardan gelen farklı veri tiplerini birbiriyle birleştirebilir.
  • Hatadan kurtarma: Düğüm noktalarından birine ulaşılamadığında sistem yükü diğer düğümlere paylaştırılır ve bu sayede hizmete kesintisiz devam eder.

 

HADOOP Altında Geliştirilen Projeler

  • AVRO : Veri dizileştirme (serialization) sistemidir.
  • CASSANDRA
  • HBASE
  • HIVE: Facebook tarafından geliştirilmiştir. SQL benzeri HiveQL dili MapReduce uygulamaları yazılmasını sağlar. Java kullanmaz.
  • MAHOUT: Hadoop üzerinde çalışabilen Machine Learning algoritmalarını içeren bir kütüphanedir.
  • PIG: Yahoo tarafından geliştirilmiştir. MapReduce yazmak için “DataFlow” dili olarak adlandırılan SQL den farklı kendine özgü PigLatindili kullanılır.
  • ZOOKEEPER: Dağıtık uygulamalar için yüksek ölçekli koordinasyon uygulamasıdır

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir