Hadoop'ta Veri İşleme: Hadoop Bileşenlerinin Açıklaması [2022]
Yayınlanan: 2021-01-03World Wide Web'in yıllar içinde katlanarak büyümesiyle, üretilen veriler de katlanarak büyüdü. Bu, muazzam miktarda verinin oluşturulmasına yol açtı ve bu devasa miktardaki veriyi geleneksel ilişkisel veritabanı sistemleriyle işlemek ve depolamak zordu.
Ayrıca oluşturulan veriler sadece yapılandırılmış formda değil, aynı zamanda video, resim vb. yapılandırılmamış formatta da olmuştur. Bu tür veriler ilişkisel veri tabanları tarafından işlenemez. Bu sorunlara karşı koymak için Hadoop ortaya çıktı.
Hadoop'un veri işlemesine dalmadan önce, Hadoop ve bileşenlerine genel bir bakış atalım. Apache Hadoop, büyük miktarda verinin hızlı ve verimli bir şekilde depolanmasını ve işlenmesini sağlayan bir çerçevedir. Büyük miktarlarda yapılandırılmış ve yapılandırılmamış veri depolamak için kullanılabilir. hadoop ekosistemi ve bileşenleri hakkında daha fazla bilgi edinin.
Hadoop'un temel yapı taşları aşağıdaki gibidir: –
İçindekiler
Hadoop'un Yapı Taşları
1. HDFS (Depolama katmanı)
Adından da anlaşılacağı gibi, Hadoop Dağıtılmış Dosya Sistemi, Hadoop'un depolama katmanıdır ve verilerin dağıtılmış bir ortamda (ana ve bağımlı yapılandırma) depolanmasından sorumludur. Verileri birkaç veri bloğuna böler ve bunları farklı veri düğümlerinde depolar. Bu veri blokları, düğümlerden biri çöktüğünde veri kaybını önlemek için farklı veri düğümleri arasında da çoğaltılır.
Verilerin işlenmesi için çalışan iki ana süreci vardır: –

a. AdDüğümü
Ana makinede çalışıyor. Dosya sisteminde depolanan tüm dosyaların konumlarını kaydeder ve verilerin küme boyunca nerede bulunduğunu izler, yani dosyaların meta verilerini depolar. İstemci uygulamalar veriler üzerinde belirli işlemler yapmak istediğinde NameNode ile etkileşime girer. NameNode isteği aldığında, gerekli verilerin bulunduğu Veri Düğümü sunucularının bir listesini döndürerek yanıt verir.
B. Veri Düğümü
Bu işlem her bağımlı makinede çalışır. İşlevlerinden biri, her bir HDFS veri bloğunu yerel dosya sisteminde ayrı bir dosyada depolamaktır. Başka bir deyişle, gerçek verileri bloklar halinde içerir. Periyodik olarak kalp atışı sinyalleri gönderir ve verilere erişmek için NameNode'dan gelen talebi bekler.
2. MapReduce (İşleme katmanı)
Büyük miktarda verinin daha hızlı işlenmesi için Hadoop çerçevesinin üstünde kullanılan Java tabanlı bir programlama tekniğidir. Bu devasa veriyi dağıtık bir ortamda birçok Veri Düğümü kullanarak işler, bu da paralel işlemeyi ve işlemlerin hataya dayanıklı bir şekilde daha hızlı yürütülmesini sağlar.
Bir MapReduce işi, veri kümesini, eşleştiriciler tarafından işlenmek üzere daha sonra anahtar/değer çiftlerine dönüştürülen birden çok veri parçasına böler. Verilerin ham formatı işleme için uygun olmayabilir. Böylece, InputSplit işlevi ve RecordReader kullanılarak harita aşamasıyla uyumlu giriş verileri oluşturulur.
InputSplit, bireysel bir eşleştirici tarafından işlenecek verilerin mantıksal temsilidir. RecordReader, bu bölmeleri, anahtar-değer çiftleri biçimini alan kayıtlara dönüştürür. Temel olarak girdinin bayt yönelimli gösterimini kayıt yönelimli gösterime dönüştürür.
Bu kayıtlar daha sonra verilerin daha fazla işlenmesi için haritacılara gönderilir. MapReduce işleri öncelikle Harita aşaması, Karıştırma aşaması ve Azaltma aşaması olmak üzere üç aşamadan oluşur.
a. Harita Aşaması
Verilerin işlenmesindeki ilk aşamadır. Harita aşamasındaki ana görev, RecordReader'dan gelen her girişi işlemek ve onu ara demetlere (anahtar-değer çiftleri) dönüştürmektir. Bu ara çıktı, eşleyiciler tarafından yerel diskte depolanır.
Bu anahtar/değer çiftlerinin değerleri, RecordReader'dan girdi olarak alınanlardan farklı olabilir. Harita aşaması ayrıca yerel indirgeyiciler olarak da adlandırılan birleştiriciler içerebilir. Veriler üzerinde ancak yalnızca bir eşleştirici kapsamında toplama gerçekleştirirler.

Hesaplamalar farklı veri düğümlerinde gerçekleştirildiğinden, aynı anahtarla ilişkili tüm değerlerin tek bir indirgeyicide birleştirilmesi esastır. Bu görev, bölümleyici tarafından gerçekleştirilir. Bunları birleştirmek için bu anahtar/değer çiftleri üzerinde bir karma işlevi gerçekleştirir.
Ayrıca tüm görevlerin redüktörlere eşit olarak bölünmesini sağlar. Bölücüler genellikle birden fazla redüktör ile çalışırken devreye girer.
B. Karıştırma ve Sıralama Aşaması
Bu aşama, eşleyicilerden elde edilen ara çıktıyı redüktörlere aktarır. Bu işleme karıştırma denir. Eşleştiricilerden gelen çıktı da indirgeyicilere aktarılmadan önce sıralanır. Sıralama, anahtar/değer çiftlerindeki anahtarlar temelinde yapılır. İndirgeyicilerin tüm veriler alınmadan önce veriler üzerinde hesaplamalar yapmasına yardımcı olur ve sonuçta hesaplamalar için gereken süreyi azaltmaya yardımcı olur.
Anahtarlar sıralandıkça, redüktör giriş olarak farklı bir anahtar aldığında, daha önce alınan veriler üzerinde azaltma görevlerini gerçekleştirmeye başlar.
C. Aşamayı Azalt
Harita aşamasının çıktısı, azaltma aşamasına girdi görevi görür. Bu anahtar/değer çiftlerini alır ve istenen sonucu elde etmek için üzerlerine azaltma işlevini uygular. Anahtarlarla ilişkili anahtarlar ve değerler, belirli işlemleri gerçekleştirmek için azaltma işlevine iletilir.
Toplu çıktıyı elde etmek için verileri filtreleyebilir veya birleştirebiliriz. Azaltma işlevinin yürütülmesini yayınlayın, sıfır veya daha fazla anahtar/değer çifti oluşturabilir. Bu sonuç, Hadoop Dağıtılmış Dosya Sistemine geri yazılır.
3. İPLİK (Yönetim katmanı)
Yet Another Resource Navigator, Hadoop'un kaynak yönetimi bileşenidir. Kaynakların tahsisi için birbirleriyle iletişim kuran her bir düğümde (bağımlı makinelerde Düğüm Yöneticisi ve ana düğümde Kaynak Yöneticisi) çalışan arka plan işlemleri vardır. Kaynak Yöneticisi, tüm uygulamalar arasında kaynakları yöneten ve istekleri Düğüm Yöneticisine ileten YARN katmanının en önemli parçasıdır.

Düğüm Yöneticisi, makinenin bellek, CPU ve disk gibi kaynak kullanımını izler ve bunları Kaynak Yöneticisine iletir. Her Veri Düğümü üzerine kuruludur ve Veri Düğümlerindeki görevlerin yürütülmesinden sorumludur.
Mutlaka Okuyun: Büyük Veri Mühendisleri için En İyi 10 Hadoop Aracı
Çözüm
Hadoop'ta veri işlemeye yönelik tüm iş akışı şu şekilde özetlenebilir: –
- Giriş Bölmesi ; HDFS'de bulunan verileri mantıksal olarak birkaç veri bloğuna böler. Verilerin nasıl bölüneceğine ilişkin karar Inputformat tarafından verilir .
- Veriler, RecordReader tarafından anahtar/değer çiftlerine dönüştürülür. RecordReader, bayt yönelimli verileri kayıt yönelimli verilere dönüştürür. Bu veriler, eşleyiciye girdi görevi görür.
- Kullanıcı tanımlı bir işlevden başka bir şey olmayan eşleyici, bu anahtar/değer çiftlerini işler ve daha sonraki işlemler için ara anahtar/değer çiftlerini üretir.
- Bu çiftler, eşleyiciden indirgeyiciye aktarılacak veri miktarını azaltmak için birleştiriciler tarafından yerel olarak (bir eşleyici kapsamında) indirgenir.
- Partitioner, aynı anahtara sahip tüm değerlerin aynı redüktörde birleştirilmesini ve görevlerin redüktörler arasında eşit olarak dağıtılmasını sağlar.
- Bu ara anahtar/değer çiftleri daha sonra indirgeyicilere karıştırılır ve anahtarlara göre sıralanır. Bu sonuç redüktörlere girdi olarak beslenir.
- Azaltma işlevi, her bir anahtarın değerlerini toplar ve sonuç, RecordWriter kullanılarak HDFS'de depolanır. HDFS'ye geri yazmadan önce, verilerin yazılması gereken biçime Çıktı biçimi tarafından karar verilir .
Büyük Veri hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 7+ vaka çalışması ve proje sağlayan, 14 programlama dili ve aracını kapsayan, pratik uygulamalı Büyük Veride Yazılım Geliştirme Uzmanlığı programında PG Diplomamıza göz atın çalıştaylar, en iyi firmalarla 400 saatten fazla titiz öğrenim ve işe yerleştirme yardımı.
Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.