Yeni Başlayanlar İçin Apache Spark Eğitimi: Örneklerle Apache Spark'ı Öğrenin
Yayınlanan: 2020-03-26İçindekiler
Tanıtım
Veriler her yerdedir - küçük bir girişimin müşteri günlüklerinden çok uluslu büyük bir şirketin finansal tablolarına kadar. Şirketler, işlerinin nasıl performans gösterdiğini ve nerede gelişebileceklerini anlamak için bu oluşturulan verileri kullanır. Gartner Research Kıdemli Başkan Yardımcısı Peter Sondergaard, bilginin 21. yüzyılın yağı olduğunu ve analitiklerin içten yanmalı motor olarak kabul edilebileceğini söyledi.
Ancak şirketler büyüdükçe müşterileri, paydaşları, iş ortakları ve ürünleri de büyüyor. Böylece, işlemeleri gereken veri miktarı çok büyük hale gelir.
Tüm bu veriler, müşterileri için daha iyi ürünler yaratmak için analiz edilmelidir. Ancak saniyede üretilen terabaytlarca veri, excel sayfaları ve kayıt defterleri kullanılarak işlenemez. Büyük veri kümeleri, Apache Spark gibi araçlarla işlenebilir.
Apache Spark'a giriş yaparak yazılımın ayrıntılarına gireceğiz .
Apache Spark nedir?
Apache Spark, açık kaynaklı bir küme bilgi işlem çerçevesidir . Temel olarak büyük veri iş yüklerini ve veri kümelerini işlemek için kullanılan bir veri işleme sistemidir . Büyük veri kümelerini hızlı bir şekilde işleyebilir ve iş yükünü hafifletmek için bu görevleri birden çok sisteme dağıtabilir. Büyük veri işleme ve dağıtılmış bilgi işlem olmak üzere iki terimden bunalan geliştiricilerin yükünü azaltan basit bir API'ye sahiptir!
Apache Spark'ın geliştirilmesi, Spark'ın kurucusu olarak kabul edilen Matei Zaharia tarafından UC Berkeley'deki AMPLab'da açık kaynaklı bir araştırma projesi olarak başladı . 2010 yılında, bir BSD lisansı altında proje açık kaynaklıydı. Daha sonra 2013 yılında Apache Software Foundation bünyesinde kuluçka projesi haline geldi. 2014 yılında şirketin en önemli projelerinden biri oldu.

2015 yılında Spark, projeye 1000'den fazla katkıda bulundu. Bu, onu Apache Software Foundation'daki ve aynı zamanda büyük veri dünyasındaki en aktif projelerden biri haline getirdi . 2009'dan beri 200'den fazla şirket bu projeye destek veriyor.
Ama Spark'la ilgili tüm bu çılgınlık neden?
Bunun nedeni, Spark'ın bir seferde tonlarca veriyi işleyebilme ve işleyebilmesidir. Bu veriler binlerce bağlı sanal veya fiziksel sunucuya dağıtılabilir. Python, R, Scala ve Java gibi çeşitli programlama dilleriyle çalışan çok sayıda API ve kitaplığa sahiptir. Veri akışını, grafik işleme gibi karmaşık görevleri ve ayrıca makine öğrenimini destekler. Ayrıca apache kıvılcımının oyunu değiştiren özellikleri, talebini çok yüksek kılıyor.
Hadoop'un HDFS'si gibi çok çeşitli veritabanlarını, Amazon S3 ve MongoDB, Apache HBase, MapR Database ve Apache Cassandra gibi NoSQL veritabanlarını destekler. Ayrıca Apache Kafka ve MapR Event Store'u da destekler.
Apache Kıvılcım Mimarisi
Apache Spark'ın tanıtımını keşfettikten sonra, şimdi yapısını öğreneceğiz. Apache Mimarisi hakkında daha fazla bilgi edinin.
Mimarisi iyi tanımlanmıştır ve iki ana bileşeni vardır:
Esnek Dağıtılmış Veri Kümeleri (RDD)
Bu, Spark kümesinin çalışan düğümlerinde depolanan veri öğeleri koleksiyonudur. Küme, Spark'ı yükleyebileceğiniz dağıtılmış bir makine koleksiyonudur. RDD'ler, bir arıza durumunda verileri düzeltebildikleri için esnek olarak adlandırılır. Bir kümede birden çok düğüme yayıldıkları için dağıtılmış olarak adlandırılırlar.
Spark tarafından iki tür RDD desteklenir:
- HDFS'deki (Hadoop Dağıtılmış Dosya Sistemi) dosyalardan oluşturulan Hadoop veri kümeleri
- Scala koleksiyonlarına dayalı paralelleştirilmiş koleksiyonlar
RDD'ler iki tür işlem için kullanılabilir:
- Dönüşümler - Bu işlemler RDD'ler oluşturmak için kullanılır
- Eylemler – Bunlar, Spark'a bazı hesaplamalar yapması ve sonucu sürücüye döndürmesi talimatını vermek için kullanılır. Önümüzdeki bölümlerde sürücüler hakkında daha fazla bilgi edineceğiz
DAG (Yönlendirilmiş Asiklik Grafik)
Bu, veriler üzerinde bir dizi eylem olarak düşünülebilir. Köşeler ve kenarların bir kombinasyonudur. Her köşe bir RDD'yi temsil eder ve her kenar o RDD'de yapılması gereken hesaplamayı temsil eder. Bu, RDD'ye uygulanan tüm işlemleri içeren bir grafiktir.
Bu, bir düğüm diğerine bağlı olduğu için yönlendirilmiş bir grafiktir. Grafik, içinde döngü veya döngü olmadığı için asikliktir. Bir dönüşüm gerçekleştirildikten sonra, orijinal konumuna geri dönemez. Apache Spark'taki bir dönüştürme, bir veri bölümü durumunu A'dan B'ye dönüştüren bir eylemdir.
Peki bu mimari nasıl çalışıyor? Hadi görelim.
Apache Spark mimarisinin iki birincil arka plan programı ve bir küme yöneticisi vardır . Bunlar – ana ve işçi arka plan programıdır . Daemon, arka plan işlemi olarak yürütülen bir programdır. Spark'taki bir kümede birçok bağımlı ancak tek bir ana arka plan programı olabilir.
Ana düğümün içinde Spark uygulamasını çalıştıran bir sürücü programı vardır. Kodu çalıştırmak için kullanabileceğiniz etkileşimli kabuk, sürücü programı görevi görür. Sürücü programının içinde Spark Context oluşturulur. Bu bağlam ve sürücü programı, bir küme yöneticisinin yardımıyla bir iş yürütür.
İş, birçok göreve bölündükten sonra işçi düğümünde dağıtılır. Görevler, çalışan düğümler tarafından RDD'lerde çalıştırılır . Sonuç, Spark Context'e geri verilir . Çalışan sayısını artırdığınızda işler birden çok bölüme ayrılabilir ve birçok sistem üzerinde paralel olarak çalışabilir. Bu, iş yükünü azaltacak ve işin tamamlanma süresini iyileştirecektir.

Apache Spark: Yararları
Apache Spark kullanmanın avantajları şunlardır :
Hız
İşler yürütülürken veriler önce RDD'lerde depolanır. Böylece bu veriler bellekte tutulduğu için hızlı bir şekilde erişilebilir ve iş daha hızlı yürütülür. Spark, bellek içi önbelleğe almanın yanı sıra sorgu yürütmeyi de optimize etti. Bu sayede analitik sorgular daha hızlı çalışabilir. Çok yüksek bir veri işleme hızı elde edilebilir. Büyük ölçekli verileri işlemek için Hadoop'tan 100 kat daha hızlı olabilir.
Birden çok iş yükünü işleme
Apache Spark, aynı anda birden çok iş yükünü işleyebilir. Bunlar etkileşimli sorgular, grafik işleme, makine öğrenimi ve gerçek zamanlı analitik olabilir. Bir Spark uygulaması, birçok iş yükünü kolaylıkla bir araya getirebilir.
Kullanım kolaylığı
Apache Spark, büyük veri kümelerini işlemek için kullanımı kolay API'lere sahiptir. Buna paralel uygulamalar oluşturmak için kullanabileceğiniz 100'den fazla operatör dahildir. Bu operatörler verileri dönüştürebilir ve yarı yapılandırılmış veriler, veri çerçevesi API'leri kullanılarak işlenebilir.
Dil desteği
Spark, Java, Python, Scala ve R gibi birden çok programlama dilini desteklediği için geliştiricilerin favorisidir. Bu, uygulamalarınızı geliştirmek için size birden çok seçenek sunar. API'ler ayrıca geliştirici dostudur, çünkü karmaşık dağıtılmış işleme teknolojisini, gereken kod miktarını azaltmaya yardımcı olan üst düzey operatörlerin arkasına gizlemelerine yardımcı olur.
Yeterlik
Tembel değerlendirme Spark'ta gerçekleştirilir. Bu, RDDS aracılığıyla yapılan tüm dönüşümlerin doğası gereği tembel olduğu anlamına gelir. Dolayısıyla, bu dönüşümlerin sonuçları hemen üretilmez ve mevcut olandan yeni bir RDD oluşturulur. Kullanıcı, Apache programını birkaç küçük işlem halinde düzenleyebilir, bu da programların yönetilebilirliğini artırır.
Tembel değerlendirme, sistemin hızını ve verimliliğini artırır.
Topluluk desteği
En büyük açık kaynaklı büyük veri projelerinden biri olarak, üzerinde çalışan farklı şirketlerden 200'den fazla geliştiriciye sahiptir. 2009 yılında, topluluk başlatıldı ve o zamandan beri büyüyor. Bu nedenle, teknik bir hatayla karşılaşırsanız, geliştiriciler tarafından yayınlanan çevrimiçi bir çözüm bulmanız olasıdır.
Ayrıca Spark projenizde size yardımcı olmaya hazır birçok serbest veya tam zamanlı geliştirici bulabilirsiniz.
Gerçek zamanlı akış
Spark, gerçek zamanlı veri akışıyla ünlüdür . Bu, temel Spark API'sinin bir uzantısı olan Spark Streaming aracılığıyla mümkün olur. Bu, veri bilimcilerinin Amazon Kinesis ve Kafka gibi çeşitli kaynaklardan gelen gerçek zamanlı verileri işlemesine olanak tanır . İşlenen veriler daha sonra veritabanlarına, dosya sistemlerine ve gösterge tablolarına aktarılabilir.
Süreç, Spark Streaming'in veri hatalarından hızla kurtulabilmesi açısından verimlidir . Daha iyi yük dengeleme gerçekleştirir ve kaynakları verimli kullanır.
Apache Spark'ın Uygulamaları
Apache Spark'a ve faydalarına giriş yaptıktan sonra , farklı uygulamaları hakkında daha fazlasını öğreneceğiz:
Makine öğrenme
Apache Spark'ın verileri bellekte saklama ve tekrar tekrar sorgu yürütme yeteneği, onu makine öğrenimi algoritmalarını eğitmek için iyi bir seçenek haline getirir. Bunun nedeni, benzer sorguları tekrar tekrar çalıştırmanın mümkün olan en iyi çözümü belirlemek için gereken süreyi azaltmasıdır.
Spark'ın Makine Öğrenimi Kitaplığı (MLlib) , tahmine dayalı analiz, sınıflandırma, duygu analizi, kümeleme ve boyut azaltma gibi gelişmiş analitik işlemleri yapabilir.
Veri entegrasyonu
Bir kuruluştaki farklı sistemlerde üretilen veriler her zaman temiz ve düzenli değildir. Spark, bu veriler üzerinde ETL işlemlerini gerçekleştirmede çok verimli bir araçtır. Bu, farklı kaynaklardan veri çekmek, bunları temizlemek ve düzenlemek için işlemleri yürüttüğü, ayıkladığı, dönüştürdüğü ve yüklediği anlamına gelir. Bu veriler daha sonra analiz için başka bir sisteme yüklenir.
Etkileşimli analiz
Bu, kullanıcıların canlı veriler üzerinde veri analitiği gerçekleştirebilecekleri bir süreçtir. Spark'taki Yapılandırılmış Akış özelliğinin yardımıyla kullanıcılar, canlı veriler üzerinde etkileşimli sorgular çalıştırabilir. Ayrıca, Web analitiğini artıracak canlı bir web oturumunda etkileşimli sorgular çalıştırabilirsiniz. Bu canlı veri akışlarına makine öğrenimi algoritmaları da uygulanabilir.
Sis hesaplama
IoT'nin (Nesnelerin İnterneti) sensörlere sahip çeşitli cihazlardan yükselen çok sayıda veriyle ilgilendiğini biliyoruz. Bu, birbirine bağlı cihazlar ve kullanıcılardan oluşan bir ağ oluşturur. Ancak IoT ağı genişlemeye başladığında, dağıtılmış bir paralel işleme sistemine ihtiyaç duyulmaktadır.

Bu nedenle, veri işleme ve merkezi olmayan depolama, Spark ile birlikte Fog Computing aracılığıyla yapılır . Bunun için Spark, Spark Streaming, GraphX ve MLlib gibi güçlü bileşenler sunar. apache kıvılcım uygulamaları hakkında daha fazla bilgi edinin.
Çözüm
Apache Spark'ın hızlı, etkili ve zengin özelliklere sahip olduğunu öğrendik. Bu nedenle Huawei, Baidu, IBM, JP Morgan Chase, Lockheed Martin ve Microsoft gibi şirketler işlerini hızlandırmak için bunu kullanıyor. Artık perakende, işletme, finansal hizmetler, sağlık yönetimi ve üretim gibi çeşitli alanlarda ünlüdür.
Dünya verilere daha bağımlı hale geldikçe, Apache Spark gelecekte veri işleme için önemli bir araç olmaya devam edecek.
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.