elektrik port üyelik servisleri elektrik port üyelik servisleri

Büyük Veri İşlemek İçin Tasarlanmış Araçlar |
Hadoop ve Spark

Büyük veri günümüzde sıklıkla karşılaştığımız bir terim. Bu yazımızda sektörde sıklıkla kullanılan iki büyük veri işleme aracı olan Hadoop ile Apache Spark’tan bahsedeceğiz ve proje geliştirirken nasıl bir tercih yapmamız gerektiğine değineceğiz. Gelin detayları yazımızda inceleyelim.



A- A+
27.12.2019 tarihli yazı 11118 kez okunmuştur.

Hadoop


Hadoop, bilgisayarınızda kümeler arasında dağıtılmış bir ortamda  verilerin depolanmasını, işlenmesini ve analiz edilmesini sağlayan açık kaynaklı bir yazılım çerçevesidir. Hadoop, her makinenin yerel hesaplama ve depolama sunduğu tek bir sunucu kullanmak yerine veriyi farklı makinelere dağıtmak için tasarlanmıştır. Hadoop, bu kümeler arasında gerekli işlemleri yapmak için basit bir programlama modeli kullanır ve verilerin farklı CPU düğümlerinde paralel olarak işlendiği MapReduce algoritmasını kullanarak uygulamayı çalıştırır. Başka bir deyişle Hadoop,bilgisayarda kümelenerek depolanan büyük veride istatistiksel analiz gerçekleştirmek için kullanılır. Hadoop Dağıtılmış Dosya Sistemi olarak bilinen bir depolama bölümünden ve MapReduce olarak adlandırılan bir işlem bölümünden oluşur. Hadoop temel olarak dosyaları büyük bloklara böler ve kümeler arasında dağıtır. Bu yaklaşım veri setinin daha hızlı ve daha verimli bir şekilde işlenmesini sağlar. 
 


 

Spark


Spark, daha hızlı analizler yapmak için tasarlanmış açık kaynaklı bir çerçevedir.  Spark, büyük veri işlemenin yanı sıra grafik işlemeden makine öğrenmesine kadar çok çeşitli veri analizi görevlerini desteklemek ve kullanıcılar için kolaylaştırmak üzere tasarlanmıştır.  Örneğin, bir SQL sorgusu kullanarak veri yükleyip daha sonra Spark'ın ML kitaplığını kullanarak bir makine öğrenmesi modelini değerlendirirseniz Spark bu adımları tek bir taramada birleştirebilir. Spark'ın kütüphaneleri kullanıcılara çok çeşitli işlevler sunar. Spark kendi kümeleme sistemini kullanır. Esnek Dağıtık Veri Kümesi (RDD), Spark'ın temel veri yapısıdır. Değişmez, dağıtılmış bir nesne koleksiyonudur. Esnek dağıtık veri kümeleri Python, Java veya Scala nesneleri içerebilir. 

 

Hadoop ile Spark Arasındaki Farklar


Hadoop ve Spark, büyük veri teknolojilerinde piyasada sıklıkla kullanılan popüler seçeneklerdir. Bu kısımda Hadoop ve Spark arasındaki farklılıklardan bahsedeceğiz.

• Hadoop, MapReduce algoritması kullanan açık kaynaklı bir çerçeve iken Spark, sorgular ve eylemler için ara geri bildirim sağlayan etkileşimli bir moda sahiptir.
 
• Hadoop MapReduce verileri bir diskten okur ve bir diske yazar, bu işlem hızının yavaşlamasına sebep olurken, Spark verileri bellekte depolar, dolayısıyla işlem hızı çok daha yüksektir.
 
• Hadoop MapReduce farklı gereksinimler için birbirinden farklı ilave uygulamalara ihtiyaç duyarken, Spark aynı kümede toplu ve etkileşimli bir şekilde makine öğrenmesi, grafik işleme gibi görevleri gerçekleştirir.
 
• Hadoop, verileri toplu ve verimli bir şekilde işlemek için tasarlanmıştır. Spark, gerçek zamanlı verileri verimli bir şekilde yönetmek için tasarlanmıştır .
 
• Bir geliştirici Hadoop MapReduce ile, yalnızca toplu modda verileri işlerken, Spark gerçek zamanlı verileri Spark Streaming aracılığıyla işleyebilir .
 
• Hadoop, dayanıklı dağıtılmış veri kümeleri sayesinde doğal olarak arızalara karşı dayanıklıdır. Dayanıklı dağıtık veri kümeleri hem yazılım hem de donanım arızalarına karşı toleranslıdır. Bu sistem başarısız olan düğümlerdeki veri bloklarını otomatik olarak tekrar kopyalar.
 
• Hadoop, maliyet açısından karşılaştırıldığında daha ucuz bir seçenektir, çünkü Spark'ın bellekte çalışması RAM’in çok fazla kullanılmasına sebep olur dolayısıyla maliyeti arttırır.

 

 

 

Sonuç


Hadoop, büyük verinin paralel olarak işlenmesini sağlar. Farklı veri düğümlerinde ayrı olarak işlenecek küçük parçaları işledikten sonra elde edilen sonuçları tek bir sonuç olarak birden fazla düğümde toplar. Diğer taraftan Spark, Scala, Java, Python ve Spark SQL için kullanıcı dostu uygulama programlama arayüzleri ile birlikte kullanıldığından Hadoop'tan daha kolaydır. Spark ile, aynı kümede gerçek zamanlı veri işleme ve makine öğrenmesi uygulamaları gerçekleştirmek kullanıcılara kolaylık sağlar.

Hadoop - Spark arasında seçim yapmak geliştirdiğiniz projenin parametrelerine ve temel gereksinimlerine bağlıdır. Apache Spark , Hadoop'tan daha gelişmiş bir araçtır çünkü Hadoop’un sağladığı hizmetler toplu veri işleme ile sınırlıyken Spark etkileşimli, yinelemeli, gerçek zamanlı veri işleme özellikleriyle türlü gereksinimleri karşılayabilir. Ancak Spark, RAM’i çok fazla kullanması sebebiyle Hadoop'tan daha pahalı bir seçenektir. 

Aslında, Hadoop ve Spark arasındaki temel fark veri işleme yaklaşımlarında yatmaktadır. Spark RAM’de çalışırken Hadoop MapReduce bir diski okumak ve bir diske yazmak zorundadır. Sonuç olarak, işlem hızı önemli ölçüde farklılık gösterir. Bazı durumlarda Apache Spark, Hadoop MapReduce’tan 100 kat daha hızlı olabilir. Ancak, işlenen verilerin hacmi de farklılık gösterir. Hadoop MapReduce, Apache Spark'tan çok daha büyük veri kümeleriyle çalışabilir.


Hadoop Ne İçin Kullanılır?


• Büyük veri kümelerinin doğrusal işlenmesi: Hadoop MapReduce, büyük  verinin paralel olarak işlenmesini sağlar. Verileri farklı veri düğümlerinde işlenecek şekilde küçük parçalara ayırır ve sonuçları tek bir sonuç döndürmek için otomatik olarak toplar. Elde edilen veri setinin mevcut RAM'den daha büyük olması durumunda, Hadoop MapReduce, Spark'tan daha iyi performans gösterecektir.
 
• Gerçek zamanlı bir sonuç beklenmediği durumlarda ekonomik çözümler üretmek: Veri analizi sonuçlarının acil önceliğinin olmadığı durumlarda Hadoop tercih edilebilir.


Spark Ne İçin Kullanılır?


• Hızlı veri işleme: Bellek içi veri işleme, Spark'ı Hadoop’tan ayıran en önemli farklardan biridir ve Spark’ın Hadoop’tan daha hızlı olmasını sağlar.
 
• İşlem yinelemesi: Eğer verileri tekrar tekrar işlemeniz gerekiyorsa Spark, Hadoop’tan daha iyi bir tercih olacaktır. Spark'ın Esnek Dağıtık Veri Kümeleri (RDD'ler) bellekte birden fazla işleme olanak tanırken, Hadoop’un öncelikle bir diske geçici sonuçlar yazması gerekir.
 
• Gerçek zamanlı işlem: Veri analiz sonuçlarına ulaşma hızı sizin için önemli bir parametre ise Spark’ı tercih etmelisiniz.
 
• Grafik işleme: Spark'ın kullandığı hesaplama modeli, grafik işlemede yinelemeli hesaplamalar için oldukça avantajlıdır. Aynı zamanda Apache Spark grafik hesaplamaları için tasarlanmış bir uygulama programlama arayüzü olan GraphX'e sahiptir.
 
• Makine öğrenmesi: Spark yerleşik bir makine öğrenmesi kütüphanesi olan MLlib'e sahipken, Hadoop'un buna benzer bir kütüphanesi yoktur. MLlib, bellekte de çalışabilen kullanıma hazır algoritmalara sahiptir. 
 
• Veri setlerine katılmak: Daha hızlı veri işleyebilmesi sebebiyle Spark, tüm veri kombinasyonlarını daha hızlı yaratır.


Proje geliştirirken hangisini seçmeliyiz?


Proje geliştirirken, projenin ihtiyaçları doğrultusunda bir seçim yapılmalıdır. Büyük veri setlerinin doğrusal bir şekilde işlenmesi Hadoop'un avantajıdır. Spark daha hızlı performans , işlem yinelemesi ve gerçek zamanlı analiz sağlar. Grafik işleme ve makine öğrenmesi uygulamaları için Spark daha elverişli bir tercihtir. Spark, Hadoop ekosistemi ile uyumludur ve bu sayede proje geliştirirken hem Hadoop hem de Spark ile çalışabilirsiniz.


KAYNAK:


►Scnsoft.com
Educba.com
Towardsdatascience.com


Aktif etkinlik bulunmamaktadır.
ANKET
Endüstri 4.0 için En Hazır Sektör Hangisidir

Sonuçlar