Spark - Giriş

Sektörler, veri setlerini analiz etmek için yoğun bir şekilde Hadoop'u kullanıyor. Bunun nedeni, Hadoop çerçevesinin basit bir programlama modeline (MapReduce) dayanması ve ölçeklenebilir, esnek, hataya dayanıklı ve uygun maliyetli bir hesaplama çözümü sağlamasıdır. Burada asıl mesele, sorgular arasındaki bekleme süresi ve programı çalıştırmak için bekleme süresi açısından büyük veri kümelerini işlemede hızı korumaktır.

Spark, Hadoop hesaplamalı bilgi işlem yazılımı sürecini hızlandırmak için Apache Software Foundation tarafından tanıtıldı.

Ortak bir inanca karşı, Spark is not a modified version of Hadoopve kendi küme yönetimine sahip olduğu için Hadoop'a gerçekten bağımlı değildir. Hadoop, Spark'ı uygulamanın yollarından yalnızca biridir.

Spark, Hadoop'u iki şekilde kullanır - biri storage ve ikincisi processing. Spark kendi küme yönetimi hesaplamasına sahip olduğundan, Hadoop'u yalnızca depolama amacıyla kullanır.

Apache Spark

Apache Spark, hızlı hesaplama için tasarlanmış, ışık hızında bir küme bilgi işlem teknolojisidir. Hadoop MapReduce'a dayanır ve MapReduce modelini, etkileşimli sorgular ve akış işlemeyi içeren daha fazla hesaplama türü için verimli bir şekilde kullanmak üzere genişletir. Spark'ın ana özelliği,in-memory cluster computing bu, bir uygulamanın işlem hızını artırır.

Spark, toplu uygulamalar, yinelemeli algoritmalar, etkileşimli sorgular ve akış gibi çok çeşitli iş yüklerini kapsayacak şekilde tasarlanmıştır. Tüm bu iş yükünü ilgili bir sistemde desteklemenin yanı sıra, ayrı araçları korumanın yönetim yükünü azaltır.

Apache Spark'ın Evrimi

Spark, Matei Zaharia tarafından UC Berkeley'in AMPLab'ında 2009 yılında geliştirilen Hadoop'un alt projelerinden biridir. 2010 yılında bir BSD lisansı altında Açık Kaynaklıdır. 2013'te Apache yazılım vakfına bağışlandı ve şimdi Apache Spark, Şubat-2014'ten itibaren üst düzey bir Apache projesi haline geldi.

Apache Spark'ın Özellikleri

Apache Spark aşağıdaki özelliklere sahiptir.

  • Speed- Spark, bir uygulamanın Hadoop kümesinde, bellekte 100 kata kadar ve diskte çalışırken 10 kat daha hızlı çalıştırılmasına yardımcı olur. Bu, diske yapılan okuma / yazma işlemlerinin sayısını azaltarak mümkündür. Ara işlem verilerini bellekte depolar.

  • Supports multiple languages- Spark, Java, Scala veya Python'da yerleşik API'ler sağlar. Bu nedenle, farklı dillerde uygulama yazabilirsiniz. Spark, etkileşimli sorgulama için 80 üst düzey operatör ile birlikte gelir.

  • Advanced Analytics- Spark yalnızca 'Harita'yı ve' azalt'ı desteklemez. Ayrıca SQL sorgularını, Akış verilerini, Makine öğrenimini (ML) ve Grafik algoritmalarını destekler.

Spark, Hadoop'ta Oluşturuldu

Aşağıdaki diyagram, Spark'ın Hadoop bileşenleriyle nasıl oluşturulabileceğinin üç yolunu gösterir.

Aşağıda açıklandığı gibi Spark dağıtımının üç yolu vardır.

  • Standalone- Spark Bağımsız dağıtım, Spark'ın HDFS (Hadoop Dağıtılmış Dosya Sistemi) üzerindeki yeri işgal ettiği ve HDFS için açık bir şekilde yer ayrıldığı anlamına gelir. Burada, Spark ve MapReduce, kümedeki tüm kıvılcım işlerini kapsayacak şekilde yan yana çalışacaktır.

  • Hadoop Yarn- Hadoop Yarn dağıtımı, herhangi bir ön kurulum veya kök erişimi gerekmeden Yarn üzerinde basitçe kıvılcım çalışmaları anlamına gelir. Spark'ı Hadoop ekosistemine veya Hadoop yığınına entegre etmeye yardımcı olur. Diğer bileşenlerin yığının en üstünde çalışmasına izin verir.

  • Spark in MapReduce (SIMR)- MapReduce'ta Spark, bağımsız dağıtıma ek olarak kıvılcım işi başlatmak için kullanılır. SIMR ile kullanıcı Spark'ı başlatabilir ve kabuğunu herhangi bir yönetici erişimi olmadan kullanabilir.

Spark Bileşenleri

Aşağıdaki çizim, Spark'ın farklı bileşenlerini tasvir etmektedir.

Apache Spark Çekirdeği

Spark Core, diğer tüm işlevlerin üzerine inşa edildiği kıvılcım platformunun temelini oluşturan genel yürütme motorudur. Bellek içi bilgi işlem ve harici depolama sistemlerinde referans veri kümeleri sağlar.

Spark SQL

Spark SQL, yapılandırılmış ve yarı yapılandırılmış veriler için destek sağlayan SchemaRDD adlı yeni bir veri soyutlaması sunan Spark Core'un üzerinde bir bileşendir.

Kıvılcım Akışı

Spark Streaming, akış analizi gerçekleştirmek için Spark Core'un hızlı programlama özelliğinden yararlanır. Verileri mini gruplar halinde alır ve bu mini veri yığınları üzerinde RDD (Esnek Dağıtılmış Veri Kümeleri) dönüşümleri gerçekleştirir.

MLlib (Makine Öğrenimi Kitaplığı)

MLlib, dağıtılmış bellek tabanlı Spark mimarisi nedeniyle Spark'ın üzerinde dağıtılmış bir makine öğrenimi çerçevesidir. Karşılaştırmalara göre, MLlib geliştiricileri tarafından Alternating En Küçük Kareler (ALS) uygulamalarına karşı yapılır. Spark MLlib, Hadoop disk tabanlı sürümünden dokuz kat daha hızlıdır.Apache Mahout (Mahout bir Spark arayüzü kazanmadan önce).

GraphX

GraphX, Spark'ın üzerinde dağıtılmış bir grafik işleme çerçevesidir. Pregel soyutlama API'sini kullanarak kullanıcı tanımlı grafikleri modelleyebilen grafik hesaplamasını ifade etmek için bir API sağlar. Ayrıca bu soyutlama için optimize edilmiş bir çalışma zamanı sağlar.