Apache Flink nedir?

Apache Spark, büyük veri iş yükleri için kullanılan açık kaynak, dağıtılmış işleme sistemidir. Her boyuttaki verilerde hızlı analitik sorgular için bellek içi önbelleğe alma ve optimize edilmiş sorgu yürütmeden yararlanır. Java, Scala, Python ve R'de geliştirme API'leri sağlar ve toplu işleme, etkileşimli sorgular, gerçek zamanlı analiz, makine öğrenimi ve grafik işleme gibi birden fazla iş yükünde kodların yeniden kullanılmasını destekler. Bunun; FINRA, Yelp, Zillow, DataXu, Urban Institute ve CrowdStrike dahil olmak üzere herhangi bir sektördeki kuruluşlar tarafından kullanıldığını göreceksiniz.

Apache Spark'ın tarihi nedir?

Apache Spark, 2009 yılında UC Berkley AMPLab'de öğrencileri, araştırmacıları ve öğretim üyelerini içeren ve yoğun veri kullanan uygulama alanlarına odaklanan bir iş birliği olan bir araştırma projesi olarak başladı. Spark'ın amacı, Hadoop MapReduce'un ölçeklenebilirliğini ve hata toleransını korurken makine öğrenimi ve etkileşimli veri analizi gibi hızlı yinelemeli işleme için optimize edilmiş yeni bir çerçeve oluşturmaktı. "Spark: Cluster Computing with Working Sets" başlıklı ilk makale Haziran 2010'da yayınlandı ve Spark, bir BSD lisansı altında açık kaynaklıydı. Spark, Haziran 2013'te Apache Software Foundation'da (ASF) kuluçka aşamasına girdi ve Şubat 2014'te Apache Top-Level Project olarak kuruldu. Spark bağımsız olarak, Apache Mesos'ta veya en yaygın şekilde Apache Hadoop'ta çalışabilir.

Apache Spark nasıl çalışır?

Hadoop MapReduce, büyük veri kümelerini paralel, dağıtılmış bir algoritma ile işlemeye yönelik bir programlama modelidir. Geliştiriciler, iş dağılımı ve hata toleransı konusunda endişelenmeye gerek kalmadan büyük ölçüde paralelleştirilmiş işleyiciler yazabilir. Bununla birlikte, bir işi çalıştırmak için gereken sıralı çok adımlı süreç MapReduce için bir zorluktur. MapReduce her adımda kümedeki verileri okur, işlemleri gerçekleştirir ve sonuçları HDFS'ye geri yazar. Her adım bir disk okuma ve yazma gerektirdiğinden, MapReduce işleri disk G/Ç'nin gecikmesi nedeniyle daha yavaştır.

Spark, bellek içi işleme yaparak, bir işteki adım sayısını azaltarak ve verileri birden fazla paralel işlemde yeniden kullanarak MapReduce sınırlamalarını gidermek için oluşturuldu. Spark ile verilerin belleğe okunması, işlemlerin gerçekleştirilmesi ve sonuçların geri yazılması için yalnızca bir adıma ihtiyaç vardır ve bu da çok daha hızlı bir yürütme sağlar. Spark ayrıca, aynı veri kümesinde bir işlevi tekrar tekrar çağıran makine öğrenimi algoritmalarını büyük ölçüde hızlandırmak için bellek içi bir önbellek kullanarak verileri yeniden kullanır. Verilerin yeniden kullanımı, bellekte önbelleğe alınan ve birden fazla Spark işleminde yeniden kullanılan bir nesne koleksiyonu olan Esnek Dağıtılmış Veri Kümesi (RDD) üzerinde bir soyutlama olan DataFrames'in oluşturulmasıyla gerçekleştirilir. Bu, özellikle makine öğrenimi ve etkileşimli analiz yaparken Spark'ı MapReduce'tan birkaç kat daha hızlı hale getiren gecikmeyi önemli ölçüde azaltır.

Temel farklılıklar: Apache Spark ve Apache Hadoop

Pek çok kuruluş, Spark ve Hadoop MapReduce'un tasarımındaki farklılıkların dışında, bu büyük veri çerçevelerinin birbirini tamamladığını ve daha geniş bir iş sorununu çözmek için birlikte kullanıldığını görmüştür.

Hadoop, depolama olarak Hadoop Dağıtılmış Dosya Sistemi'ne (HDFS), farklı uygulamalar tarafından kullanılan bilgi işlem kaynaklarını yönetmenin bir yolu olarak YARN'a ve bir yürütme altyapısı olarak MapReduce programlama modelinin bir uygulamasına sahip olan açık kaynaklı bir çerçevedir. Tipik bir Hadoop uygulamasında; Spark, Tez ve Presto gibi farklı yürütme altyapıları da dağıtılır.

Spark; etkileşimli sorgu, makine öğrenimi ve gerçek zamanlı iş yüklerine odaklanan açık kaynaklı bir çerçevedir. Kendi depolama sistemine sahip değildir ancak HDFS gibi diğer depolama sistemlerinde veya Amazon Redshift, Amazon S3, Couchbase ve Cassandra gibi diğer popüler mağazalarda analizler yapar. Hadoop'ta Spark, diğer Hadoop altyapıları gibi ortak bir küme ve veri kümesi paylaşmak için YARN'dan yararlanarak tutarlı hizmet ve yanıt düzeyleri sağlar.

Apache Spark'ın avantajları nelerdir?

Apache Spark'ın onu Hadoop ekosistemindeki en aktif projelerden biri haline getiren birçok faydası vardır. Bunlara aşağıdakiler dahildir:

Hızlı

Spark, bellek içi önbelleğe alma ve optimize edilmiş sorgu yürütme aracılığıyla her boyuttaki verilerde hızlı analiz sorguları yapabilir.

Yazılım geliştirici dostu

Apache Spark tarafından sunulan yerel Java, Scala, R ve Python desteği sayesinde uygulamalarınızı oluşturmak için farklı programlama dili seçeneklerinden faydalanabilirsiniz. Bu API'ler, dağıtılmış işlemenin karmaşıklığını basit, üst düzey işleyicilerin arkasına gizleyerek gereken kod miktarını önemli ölçüde azalttığından geliştiricileriniz için işleri kolaylaştırır.

Birden fazla iş yükü

Apache Spark; etkileşimli sorgular, gerçek zamanlı analiz, makine öğrenimi ve grafik işleme dahil olmak üzere birden fazla iş yükü çalıştırma özelliğiyle birlikte gelir. Bir uygulama birden fazla iş yükünü sorunsuz bir şekilde birleştirebilir.

Apache Spark İş Yükleri Nelerdir?

Spark çerçevesi şunları içerir:

  • Platformun altyapısı olarak Spark Core
  • Etkileşimli sorgular için Spark SQL
  • Gerçek zamanlı analiz için Spark Streaming
  • Makine öğrenimi için Spark MLlib
  • Grafik işleme için Spark GraphX

Spark Core

Spark Core, platformun altyapısıdır. Bellek yönetimi, hata kurtarma, zamanlama, işleri dağıtıp izleme ve depolama sistemleriyle etkileşime girmeden sorumludur. Spark Core; Java, Scala, Python ve R için oluşturulmuş bir uygulama programlama arabirimi (API'ler) aracılığıyla sunulur. Bu API'ler, dağıtılmış işlemenin karmaşıklığını basit ve üst düzey operatörlerin arkasına gizler.

MLlib

Makine Öğrenimi

Spark, veriler üzerinde geniş ölçekte makine öğrenimi yapmak için bir algoritma kitaplığı olan MLlib'yi içerir. Makine öğrenimi modelleri, herhangi bir Hadoop veri kaynağında R veya Python kullanan veri bilimcileri tarafından eğitilebilir, MLlib kullanılarak kaydedilebilir ve Java veya Scala tabanlı bir işlem hattına aktarılabilir. Spark, bellekte çalışan hızlı ve etkileşimli hesaplama için tasarlanmıştır ve makine öğreniminin hızlı çalışmasını sağlar. Algoritmalar; sınıflandırma, regresyon, kümeleme, iş birliğine dayalı filtreleme ve model madenciliği yapma özelliğini içerir.

Spark Streaming

Gerçek Zamanlı

Spark Streaming, akış analizi yapmak için Spark Core'un hızlı zamanlama yeteneğinden yararlanan gerçek zamanlı bir çözümdür. Verileri mini gruplar halinde alır ve toplu analiz için yazılan aynı uygulama koduyla bu veriler üzerinde analiz sağlar. Bu, toplu işleme ve gerçek zamanlı akış uygulamaları için aynı kodu kullanabildiklerinden geliştirici üretkenliğini artırır. Spark Streaming; Twitter, Kafka, Flume, HDFS ve ZeroMQ'dan elde edilen veriler ile Spark Packages ekosisteminde bulunan diğer birçok veriyi destekler.

Spark SQL

Etkileşimli Sorgular

Spark SQL, MapReduce'tan 100 kata kadar daha hızlı, düşük gecikmeli ve etkileşimli sorgular sağlayan dağıtılmış bir sorgu altyapısıdır. Binlerce düğüme ölçeklendirirken hızlı sorgular için maliyet tabanlı optimizasyon aracı, sütunlu depolama ve kod oluşturma içerir. İş analistleri, verileri sorgulamak için standart SQL veya Hive Sorgu Dili'ni kullanabilirler. Geliştiriciler; Scala, Java, Python ve R'da bulunan API'leri kullanabilirler. JDBC, ODBC, JSON, HDFS, Hive, ORC ve Parquet dahil kullanıma hazır çeşitli veri kaynaklarını destekler. Amazon Redshift, Amazon S3, Couchbase, Cassandra, MongoDB, Salesforce.com, Elasticsearch gibi diğer popüler mağazalar, Spark Packages ekosisteminden bulunabilir.

GraphX

Grafik İşleme

Spark GraphX, Spark üzerine inşa edilmiş dağıtılmış bir grafik işleme çerçevesidir. GraphX, kullanıcıların etkileşimli olarak bir grafik veri yapısını geniş ölçekte oluşturmasını ve dönüştürmesini sağlamak için ETL, keşif amaçlı analiz ve yinelemeli grafik hesaplaması sağlar. Son derece esnek bir API ve bir dizi dağıtılmış grafik algoritması ile birlikte gelir.

Apache Spark'ın kullanım örnekleri nelerdir?

Spark, büyük veri iş yükleri için kullanılan genel amaçlı, dağıtılmış işleme sistemidir. Modelleri tespit etmek ve gerçek zamanlı öngörü sağlamak için her tür büyük veri kullanım örneğinde dağıtılmıştır. Kullanım örneklerinden bazıları şunlardır:

Finansal Hizmetler

Spark, bankacılıkta müşteri kaybını tahmin etmek ve yeni finansal ürünler önermek için kullanılır. Spark, yatırım bankacılığında gelecek trendlerini tahmin etmek üzere hisse senedi fiyatlarını analiz etmek için kullanılır.

Sağlık hizmetleri

Spark, verileri her hasta etkileşimi için ön saflardaki sağlık çalışanlarının kullanımına sunarak kapsamlı hasta bakımı oluşturmak için kullanılır. Spark, hasta tedavisini öngörmek/önermek için de kullanılabilir.

Üretim

Spark, önleyici bakımın ne zaman yapılması gerektiğini önererek, internet bağlantılı ekipmanın kesinti süresini ortadan kaldırmak için kullanılır.

Perakende

Spark, kişiselleştirilmiş hizmetler ve teklifler aracılığıyla müşterileri çekmek ve elde tutmak için kullanılır.

Apache Spark'ı bulutta dağıtmak nasıl çalışır?

Bulut; performans, ölçeklenebilirlik, güvenilirlik, erişilebilirlik ve büyük ölçeklendirme ekonomileri sağladığından Spark, bulutta ideal bir iş yüküdür. ESG araştırmasına göre katılımcıların %43'ü bulutu Spark için birincil dağıtım çözümü olarak kullandığını belirtmiştir. Müşterilerin bulutu Spark için bir avantaj olarak görmesinin temel nedenleri daha kısa dağıtım süreci, daha iyi erişilebilirlik, daha sık özellik/işlev güncellemesi, daha fazla esneklik, daha geniş coğrafi kapsama alanı ve gerçek kullanımla ilgili maliyetlerdir.

Apache Spark'a ilişkin AWS teklifleri nelerdir?

Amazon EMR, ticari Hadoop ve Spark dağıtımlarının entegrasyon ve test titizliğini, bulutun ölçeği, basitliği ve maliyet etkinliği ile birleştirdiğinden, Apache Spark'ı bulutta dağıtmak için en ideal yerdir. Düğüm tedariki, küme kurulumu, Spark yapılandırması veya küme ayarlaması yapmanıza gerek kalmadan Spark kümelerini dakikalar içinde başlatmanıza olanak tanır. EMR, dakikalar içinde bir, yüzlerce veya binlerce bilgi işlem bulut sunucusu sağlamanıza olanak tanır. Otomatik Ölçeklendirme'yi kullanarak EMR'nin Spark kümelerinizi her boyuttaki veriyi işleyecek şekilde otomatik olarak ölçeklendirmesini ve kullanılmayan kapasite için ödeme yapmaktan kaçınmak için işiniz tamamlandığında ölçeği küçültmesini sağlayabilirsiniz. Belirli bir süre için taahhütte bulunarak ve Amazon EC2 Rezerve Edilmiş Bulut Sunucularını kullanarak %75'e varan tasarruf ederek ya da kümelerinizi yedek AWS bilgi işlem kapasitesinde çalıştırarak ve EC2 Spot ile %90'a varan tasarruf ederek faturanızı düşürebilirsiniz.

Hemen bir hesap oluşturarak AWS'de Apache Spark'ı kullanmaya başlayın.

AWS'de Sonraki Adımlar

Ücretsiz bir hesap açmak için kaydolun

AWS Ücretsiz Kullanım için anında erişim elde edin.

Kaydolun 
Konsolda oluşturmaya başlayın

AWS Yönetim Konsolu'nda oluşturmaya başlayın.

Oturum açın