Apache Spark vs Hadoop Mapreduce – Bilmeniz Gerekenler

Yayınlanan: 2019-09-05

Büyük Veri, modern dünyadaki her yerde hazır bulunan Büyük Birader gibidir. Büyük Veri'nin çeşitli endüstrilerde giderek artan kullanım durumları, Hadoop MapReduce ve Apache Spark'ın en popüler olduğu sayısız Büyük Veri teknolojisini daha da doğurdu. Hem MapReduce hem de Spark, Apache Software Foundation tarafından geliştirilen açık kaynaklı amiral gemisi projeleri olsa da, birbirlerinin en güçlü rakipleridir.

Bu yazıda önce MapReduce ve Spark çerçeveleri hakkında konuşacağız, ardından aralarındaki temel farkları tartışmaya geçeceğiz.

Spark ve MapReduce nedir?

Spark , hızlı hesaplama sağlamak için özel olarak tasarlanmış bir Büyük Veri çerçevesidir. Toplu iş, etkileşimli, yinelemeli ve akış dahil olmak üzere farklı iş yüklerini işleyebilen genel amaçlı bir veri işleme motoru olarak hizmet eder. Spark'ın önemli bir özelliği hızdır - veri işleme hızını artırmak için bellek içi hesaplamaları yürütür. Sonuç olarak, bir bilgisayar düğümleri kümesinde iyi çalışır ve büyük veri kümelerinin daha hızlı işlenmesine olanak tanır.

Esnek Dağıtılmış Veri Kümesi (RDD), Spark'ın birincil veri yapısıdır. RDD, her düğümün bir kümenin farklı düğümlerinde hesaplanabilen daha küçük parçalara bölündüğü değişmez dağıtılmış nesneler topluluğudur. Bu, bir küme içinde bağımsız veri işlemeyi kolaylaştırır.

MapReduce , paralel ve dağıtılmış bir ortamda büyük miktarda veriyi işlemek için tasarlanmış açık kaynaklı bir çerçevedir. Verileri yalnızca toplu iş modunda işleyebilir. Hadoop MapReduce'un iki ana bileşeni vardır - HDFS ve YARN.

MapReduce programlaması iki bölümden oluşur – Eşleştirici ve Düşürücü. Eşleştirici, verileri sıralama görevini üstlenirken, Düşürücü, sıralanan verileri birleştirir ve daha küçük parçalara dönüştürür.

Bu iki çerçeve arasındaki temel farka gelince, bu onların veri işlemeye doğuştan gelen yaklaşımlarıdır. MapReduce, verileri diskten okuyarak ve diske yazarak işlerken, Spark bunu bellekte yapabilir. Böylece Spark, hızlı işleme açısından MapReduce'a göre bir avantaj elde eder.

Ancak bu, Spark'ın MapReduce'dan daha iyi olduğu anlamına mı geliyor? Ne yazık ki, tartışma o kadar basit değil. Bu konuya daha fazla ışık tutmak için aralarındaki farkları madde madde inceleyeceğiz.

Veri işleme

Spark : Daha önce de belirttiğimiz gibi, Spark daha çok hibrit ve genel amaçlı bir işleme çerçevesidir. Bellek içi hesaplama ve işleme optimizasyonu sayesinde, gerçek zamanlı olarak veri işlemeyi hızlandırır. Akış iş yükleri, etkileşimli sorgular çalıştırma ve makine öğrenimi algoritmaları için mükemmeldir. Ancak RDD, Spark'ın yalnızca hayati verileri diske yazarak diskte geçici olarak veri depolamasına izin verir. Böylece belleğe bir işlem yükler ve onu önbellekte tutar. Bu, Spark'ı oldukça fazla bellek yoğun hale getirir.

MapReduce : MapReduce, Hadoop'un yerel toplu işleme motorudur. Bileşenleri (HDFS ve YARN), toplu verilerin daha sorunsuz işlenmesini sağlar. Ancak, veri işleme sonraki birkaç adımda gerçekleştiğinden, süreç oldukça yavaştır. MapReduce'un bir avantajı, kalıcı depolamaya izin vermesidir - verileri diskte depolar. Bu, onu büyük veri kümelerini işlemek için uygun hale getirir. Bir görev tamamlanır tamamlanmaz, MapReduce süreçlerini öldürür ve bu nedenle diğer servislerle aynı anda çalışabilir.

Kullanım kolaylığı

Kıvılcım : Kullanım kolaylığı söz konusu olduğunda Kıvılcım tacını alır. Scala (ana dil), Java, Python ve Spark SQL için birçok kullanıcı dostu API ile birlikte gelir. Spark aynı kümede akış, toplu işleme ve makine öğrenimine izin verdiği için veri işleme altyapısını ihtiyaçlarınıza göre kolayca basitleştirebilirsiniz. Ayrıca Spark, kullanıcılara anında geri bildirim sunan komutları çalıştırmak için etkileşimli bir REPL (Okuma-değerlendirme-yazdırma döngüsü) modu içerir.

MapReduce : Hadoop MapReduce Java ile yazıldığı için sözdizimini öğrenmek zaman alır. Bu nedenle, başlangıçta birçok kişi programlamayı oldukça zor bulabilir. MapReduce etkileşimli bir moddan yoksun olsa da, Pig ve Hive gibi araçlar onunla çalışmayı biraz daha kolaylaştırır. MapReduce görevlerini herhangi bir programlama gerektirmeden çalıştırabilen başka araçlar da (örneğin, Xplenty) vardır.

Hata Toleransı

Spark : Spark, ağ G/Ç'sini azaltarak hata toleransı için RDD ve farklı veri depolama modelleri kullanır. Bir RDD'nin bölüm kaybı varsa, RDD bu bölümü bellekte depolanan bilgilerden yeniden oluşturacaktır. Bu nedenle, bir süreç yarıda çökerse, Spark en baştan işlemeye başlamak zorunda kalacaktır.

MapReduce : Spark'tan farklı olarak MapReduce, Node Manager ve ResourceManager aracılığıyla hataya dayanıklılık için çoğaltma konseptini kullanır. Burada bir işlem yarıda başarısız olursa, MapReduce kaldığı yerden devam ederek zamandan tasarruf sağlar.

Güvenlik

Spark : Spark henüz emekleme aşamasında olduğu için güvenlik faktörü çok gelişmiş değildir. Paylaşılan bir gizli (parola doğrulama) sayfası aracılığıyla kimlik doğrulamayı destekler. Web kullanıcı arayüzüne gelince, javax sunucu uygulaması filtreleri ile korunabilir. Spark'ın YARN ve HDFS özellikleri, Kerberos kimlik doğrulamasına, HDFS dosya düzeyinde izinlere ve düğümler arasında şifrelemeye olanak tanır.

MapReduce : MapReduce çok daha gelişmiştir ve bu nedenle Spark'tan daha iyi güvenlik özelliklerine sahiptir. Hadoop'un tüm güvenlik avantajlarından yararlanır ve Knox Gateway ve Sentry dahil olmak üzere Hadoop güvenlik projeleriyle entegre edilebilir. Kuruluşlar, geçerli üçüncü taraf satıcılar aracılığıyla kimlik doğrulama için Active Directory Kerberos ve LDAP'yi bile kullanabilir.

Maliyet

Hem Spark hem de MapReduce açık kaynaklı projeler olsa da, her ikisi için de ödemeniz gereken belirli maliyetler vardır. Örneğin, Spark, görevleri bellekte çalıştırmak için büyük miktarda RAM gerektiriyordu ve bu süre içinde RAM, sabit disklerden daha maliyetliydi. Aksine, Hadoop disk odaklıdır - pahalı RAM satın almanız gerekmeyecek olsa da, disk G/Ç'sini birden çok sisteme dağıtmak için sistemlere daha fazla yatırım yapmanız gerekecektir.

Bu nedenle, maliyetle ilgili olarak, büyük ölçüde kuruluşun gereksinimlerine bağlıdır. Bir kuruluşun büyük miktarda büyük veriyi işlemesi gerekiyorsa, sabit disk alanı satın almak geniş bellek alanı satın almaktan çok daha ucuz olduğundan, Hadoop uygun maliyetli bir seçenek olacaktır. Ayrıca MapReduce, donanım ve personel gereksinimlerini atlamanıza olanak tanıyan bir dizi hizmet olarak Hadoop teklifi ve Hadoop tabanlı hizmetle birlikte gelir. Bununla karşılaştırıldığında, yalnızca birkaç hizmet olarak Kıvılcım seçeneği vardır.

uyumluluk

Uyumluluk söz konusu olduğunda, hem Spark hem de MapReduce birbirleriyle uyumludur. Spark, Hadoop tarafından desteklenen tüm veri kaynakları ve dosya biçimleriyle sorunsuz bir şekilde entegre edilebilir. Ayrıca, her ikisi de ölçeklenebilir. Bu nedenle, Spark'ın veri türleri ve veri kaynaklarıyla uyumluluğu, Hadoop MapReduce ile hemen hemen aynıdır.

Gördüğünüz gibi, hem Spark hem de MapReduce, onları birbirinden ayıran benzersiz özelliklere sahiptir. Örneğin Spark, MapReduce'da bulunmayan gerçek zamanlı analitik sunarken MapReduce, Spark'ta bulunmayan bir dosya sistemiyle birlikte gelir. Her iki çerçeve de kendi farklı yollarıyla mükemmeldir ve her ikisi de benzersiz avantaj ve dezavantajlarla birlikte gelir. Sonuç olarak, Spark ve MapReduce arasındaki tartışmanın tümü, özel iş gereksinimlerinize ve gerçekleştirmek istediğiniz görev türlerine bağlıdır.

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.

Veriye Dayalı Teknolojik Devrime Öncülük Edin

IIIT Bangalore'den Büyük Veride Gelişmiş Sertifika Programı