Özgün ÜNLÜ
Bunu Paylaş
AŞAĞI KAYDIR
BLOG YAZILARINA DÖN
//BLOG YAZISI

APACHE SPARK NEDİR?

19 Mar 2019KATEGORİ :YAZILIM

Apache Spark Nedir?

Apache Spark; günümüzde ismi daha çok duyulmaya başlamış olan ve büyük verileri işlemeyi amaçlayan bir başka proje olarak bilinmektedir. Apache Spark'ın Hadoop'tan daha hızlı olmak gibi bir iddiası bulunmaktadır. Apache Spark'ın bu iddiasını destekleyen özellikleri vardır. Apache Spark; Directed Acyclic Graph motoruna sahiptir. Scala dili kullanılarak yazılmıştır. Ayrıca, bellek içi veri işleme özelliklerine sahiptir. Kısacası, Apache Spark; Hadoop'tan iyi olduğunu iddia etmekle haklı gibi gözükmektedir. Apache Spark; yapay öğrenme algoritmalarının dağıtık implementasyonu konusunda Hadoop'a kıyasla çok daha iyi performans vermektedir. Apache Spark'ın tüm bu özelliklerinden dolayı, Apache Mahout projesi; Hadoop yerine Spark ile çalışmayı tercih etmiştir. Apache Spark'ın Hadoop'un yerine geçmesi için uygun bir teknoloji olduğu doğru değildir. Apache Spark'ın, Hadoop'un eksik kaldığı yerlerde tamamlayıcı göreviyle kullanıldığını söylemek daha doğru olacaktır. Çünkü, Hadoop, binlerce sunucu üzerinde petabyte'larce veriyi en doğal haliyle saklayıp analiz edebilecek tasarıma sahiptir. Ancak, Apache Spark, Hadoop'a kıyasla daha az veriyi, in- memory şeklinde işlemek ve Hadoop'a kıyasla daha hızlı sonuç almak amacıyla tasarlanmıştır. Spark; Hadoop'a kıyasla HDFS gibi bir storage çözümü sunmaz. Ancak, Spark sayesinde HDFS üzerinden okuma yapmak mümkün hale gelir. Bunun dışında, Java kullanarak Hadoop MapReduce uygulamaları geliştirmek çok basit durmaktadır. Ancak, Spark ile bir uygulama geliştirmek çok daha kullanıcı dostu bir özellik taşımaktadır. Bu sebeplerden dolayı, Apache Spark'a gereken önemin verilmesi gerektiği söylenebilir.


Hadoop ve Apache Spark Arasındaki Farklar ve Benzerlikler

Hadoop ve Apache Spark; büyük veri analizi teknolojisi olarak bilinirler. Hadoop sayesinde büyük veriler, hem işlenir hem de kaydedilir. Bu işlemler, paralel biçimde yapılır. Hadoop, verilerin saklanması adına HDFS sistemini kullanır. Buna ek olarak, verileri işlemek için MapReduce sistemini kullanır. Hadoop sayesinde büyük verileri işlemek ve kaydetmek mümkündür. Ancak, yine de Apache Spark'ın kullanılmasını gerektirecek faktörler mevcuttur. Apache Spark; tıpkı Hadoop gibi büyük verilerin analizi için kullanılır. Ancak, Hadoop'tan farklı bir amaca hizmet eder. Apache Spark; Hadoop'tan farklı olarak veriyi işlemek için kullanır. Kendisine ait dosya yönetim sistemi ve veri depolama aracı bulunmaz. Bu sebepten dolayı, Spark'ın HDFS veya farklı bir bulut tabanlı veri platformuyla entegre edilmesi şarttır. Hadoop ise hem veriyi işler hem de dağıtık veriyi depolar. Hadoop, başka makinelere gerek duymaksızın büyük verilerin saklanabileceği HDFS yapısını bulundurmaktadır. Bunun dışında, Spark, veriyi RAM'de işler. Hadoop ise bundan farklı olarak MapReduce yapısı sayesinde veriyi diskte tutarak işler. Bu özelliğinden dolayı, Spark'ın Hadoop'tan tam 100 kat daha hızlı olduğu iddia edilmektedir. Ancak, bu iddianın duruma göre değişebileceğini söylemek gerekir. Spark; belleğe sığmayan verileri işlemek amacıyla diskte kullanmaktadır. Bu durumda, elde edilen veri kümesinin hali hazırdaki RAM'den daha büyük olması durumunda Hadoop MapReduce, Spark'a kıyasla daha hızlı olabilir. Apache Spark'ın bunlar dışında da farklı avantajları söz konusudur. Apache Spark içerisinde Spark Streaming bulunur. Bu sayede, Spark, yakın gerçek zamanlı veri işleme için de kullanılmaktadır. Özellikle, sosyal medya sitelerinden elde edilen verilerin gerçek zamanlı olarak analitiğinin yapılmasında Spark'ın bu özelliği işe yarar. Hadoop MapReduce ise Spark'tan farklı olarak var olan verileri işlemek amacıyla ortaya çıkmıştır. Kısacası, Hadoop, internet sitelerinden sürekli olarak bilgi toplama amacıyla kurulmuştu. Bu sebeple, gerçek zamanlı veri işleme ihtiyacı hiçbir zaman gerekli görülmemişti.


Apache Spark'ın Özellikleri

Apache Spark; RDD ismindeki yüksek seviyeli bir operatöre sahiptir. RDD sayesinde yapısal olmayan datalar ile süreklilik gösteren işlemleri yapmak daha kolay hale gelir. Apache Spark; Scala başta olmak üzere Java, R ve Python dilleri ile geliştirilme şansına sahiptir. Özellikle, Scala programlama dili için Apache Spark'ın resmi dili anlayışı mevcuttur. Ancak, Python dili de syntax kolaylığı ve kütüphane zenginliğinden dolayı Apache Spark için sıklıkla kullanılmaktadır. Spark; makine öğrenmesi uygulamaları geliştirmek adına MLib kütüphanesi sunmaktadır. Bunun dışında Spark'ta yer alan GraphX kütüphanesi sayesinde graph tabanlı hesaplamalar yapmak mümkündür. Ayrıca, Spark, Spark SQL adında SQL diline çok benzeyen bir sorgu diline sahip olma avantajı barındırmaktadır. Spark'ın kendi içerisinde Spark Streaming ve Spark SQL barındırması bu özelliklerin yönetilmesini de daha kolay hale getirmektedir. Spark, Hadoop'a kıyasla birden çok veri kümesinin birleştirilmesi gereken yerlerde çok daha hızlı bir şekilde join işlemi gerçekleştirebilir. Bunun dışında, Spark, çalıştığı sırada ortaya çıkan bir hatayı rahatlıkla telafi edebilir. Arıza durumunda Spark uygulamasının en baştan başlatılmasına gerek yoktur. Spark, güvenlik konusunda da Hadoop'a kıyasla daha avantajlıdır. Spark'ta Shared Secret sistemi vardır. Bu sistem, kimlik doğrulama sistemi sayesinde her iki tarafın da gizliliğinin korunmasını sağlar.


Apache Spark mı Yoksa Hadoop mu Seçilmelidir?



Apache Spark vs Hadoop

Apache Spark ve Hadoop, büyük veri analizi konusunda oldukça önemli iki alternatif sunarlar. Bu bağlamda, Spark veya Hadoop'tan hangisinin kullanılması gerektiğine dair farklı görüşler bulunmaktadır. Ancak, hem Spark hem de Hadoop, farklı kullanım alanlarına sahiptir. Spark'ın avantajları arasında hızlı performans, sürekli işlemlerde kolaylık, grafik işleme, gerçek zamanlı analiz, makine öğrenimi bulunmaktadır. Ancak, projesinde bütünlüğe sahip bir dosya sistemine ihtiyacı olanların aynı zamanda büyük boyutlu veri setleriyle çalışanların Hadoop kullanması daha mantıklı olacaktır. Bununla beraber, veri güvenliğini ön planda tutanlar ve gerçek zamanlı bir uygulama geliştirmeyecek olanlar için de Hadoop öncelikli olmalıdır. Bunun dışında, gerçek zamanlı işlemler yapmak isteyenler, bunun yanı sıra işlediği verileri saklamak isteyenler için HDFS kullanımında her iki teknolojiden de faydalanmak mümkün olacaktır. Kısaca özetlemek gerekirse, hem Spark'ın hem de Hadoop'un kendine özgü avantaj ve dezavantajları mevcuttur. İkisinde de her koşulda win- win durumu söz konusu değildir.



Apache Spark vs Hadoop

Apache Spark Ne İşe Yarar?

Apache Spark; oldukça geniş bir platform olduğundan dolayı yapılabilecek şeylerin sayısı bir hayli fazladır. Spark'ın çalışma algoritması oldukça hızlıdır. Bu sayede, yapılan işlemlerden kısa zamanda verim alınır. İmport ve export transform konusunda Spark'ın en önemli ortam olması, ciddi bir avantaj teşkil etmektedir. Buna ek olarak, Apache Spark; sürekli işlemlerde yüksek performans verir. Bunun sebebi, Spark'ta yer alan in memory avantajıdır. Bilim adamlarının Mlib'ten dolayı Spark'ı tercih ettikleri bilinmektedir. Veri analistleri, Spark SQL'den dolayı yine Spark'ı tercih ederler. Spark'ın Hive ve HDFS ile native entegrasyonu bulunmaktadır. Spark'ın en çok kullanıldığı alanların başında finans sektörü gelmektedir. Gerçek zamanlı veya anlık hızlı işlemlerde, Spark, çok faydalı olmaktadır. Özellikle, Spark SQL sayesinde yapılan işi paylaşmak mümkün olmaktadır. ETL ve streaming yapılabilmektedir. NASA başta olmak üzere birçok şirket, Apache Spark kullanmaktadır. Günümüzde IT dünyasında büyük bilgisayarlar dönemi geride kalmıştır. Çünkü, büyük bilgisayarlar, günümüzün ihtiyaçlarına cevap vermezler. Bu bağlamda, distributed sistemler popüler hale gelmiştir. Spark, datanın hafızada distribute edilmesini sağlamıştır. Bu sayede, Hadoop'a kıyasla daha kolay bir programlama, daha yüksek hız ve cluster avantajları sunmaktadır.

  • 4373
  • 1
Yorumlar ( 1 )
  • Özgün ÜNLÜ Kişisel Web Sayfa Yorum Avatarı
    Nurşah Kara

    Hadoop ve Spark'ı sizin kadar iyi anlatan ve arasındaki farkları bu kadar net gösteren birini daha bulamamıştım. Emeğinize sağlık.

Yorum Bırakın

Attention! Please do not spam. Your comments will not be shown without approval by the administrator.

Uyarı! Lütfen anlamsız yorum bırakmayın. Yönetici tarafından onay almadan yorumlar gösterilmeyecektir.

01. Yazar Hakkında

Özgün ÜNLÜ

1991 yılında küçük bir şehir olan Akşehir'de doğdum. Bilgisayar Mühendisliği bölümünden mezun olduktan sonra yazılım konusunda sürekli olarak kendimi geliştirmekteyim.

04.Instagram Paylaşımlarım

05. Kategoriler

06. Bağış

Lösev Bağış

Arkadaşlar Merhaba,

Ben kendim yerine bizlerden daha çok bağışa ihtiyaç duyan bu minik arkadaşlar için sizlerin yardımlarınızı bekliyorum. Tam olarak buradan bu minik arkadaşlarımıza yardım edebilirsiniz.

Sevgilerimle...

HAYALİNİZİ GERÇEKLEŞTİRMEYE HAZIR MISINIZ ?

İLETİŞİM
Kapat