Apache Spark Kurulumu ve Uygulama Örnekleri

765

Merhaba Arkadaşlar ,

Bu makalemizde big data (büyük veri) uygulamaları yapabilmemizi sağlayan spark’ın kurulum ve üzerinde basit uygulamalar yapacağız.

Spark basit manada  ne yapıyor diyecek olursak  anlık veri işleyen , belirlediğimiz queryleri aralıklarla çalıştıran , makine öğrenmesi yapabilen ve en son olarak farklı veri tiplerimizi aynı platform üzerinde işlememize yardımcı olan  bir veri işleme motorudur.

Spark’ın çok hızlı bir biçimde verileri işler bunun nedeni ise verileri memory üzerinde manipüle eder.Verileri hafızada  nasıl depoluyor diyecek olrusak RDD(Resilient Distributed Datasets) yani esnek dağıtılmış veri setleri sayesinde bu işlemi yapıyor. Spark HDFS ,Cassandra Mongodb  vs . bunların yanı sıra işletim sistemi üzerindeki hemen hemen bütün dosya türler üzerinde koşabililr.

RDD hakkında biraz değinecek olursak bu datasetlere atılan veriler değiştirelemez. Bu yüzden bir veri üzerinde çalıştıktan sonra eğer değiştirmek yada tekrar o veri üzerinden işlem yapmak istiyorsak yeni bir dataset oluşturmalıyız. Bunu  yanı sıra rdd’ler memory cache çalışırlar bir referans üzerinde birden çok işlem yapacak olursak spark bunu tekrar tekrar oluşturmaz varolanı kullanır.

Şimdi ise yavaştan kuruluma geçelim ilk önce bilgisayarımızda python kurulmuş olması lazım. Python kurulumu için https://www.python.org/downloads/   bu adresten python’u indirelim. İndirdikten sonra bilgisayarımızda belirlediğiniz bir dizine çıkarın. Benim  C:pythonPythonPython35-32 dizinin altında bulunuyor. Python kurulumu bilgisayarımıza ortam değişkeni olarak ekledikten sonra bitiyor.

python kurulumu doğru yapmışmıyız diye komut satırını açıp “python” diyerek test edebilirsiniz. Herşey düzgün yapıldı ise çıktınız şu şekilde olacaktır.

Bundan sonra ise bilgisayarınızda javanın kurulu olması gerkiyor. Aynı Sonrasında ise aynı adımları izleyerek ortam değişkenlerini java_path ayarlamamız gerekiyor. Bu adresten jdk indirebilirsiniz.
http://www.oracle.com/technetwork/pt/java/javase/downloads/jdk8-downloads-2133151.html

Bu adımlardan sonra apache spark kurmaya hazırız. İlk önce bilgisayarımıza apache sparkı indirmeliyiz.

Adres: https://spark.apache.org/downloads.html

Ben version olarak “2.0.2-bin-hadoop2.7” indirdim. İndirme işlemini bitirdikten sonra belirlediğimiz dizinimize zipli dosyayı çıkartıyoruz. Benim çıkarttığım dizin “C:sparkspark-2.0.2-bin-hadoop2.7” bu şekildedir.

Sonrasında ise işletim sistemimizin  ortam değişkenlerimize spark’ı eklemeliyiz.

 

Artık tüm kurulumları tamamladık ve spark’ı çalıştıralım .  Apache Spark’ı çalıştırabilmek için  komut satırı açıp spark’ın kurulu olduğu dizinin altında bin klasörüne gitmemiz lazım.

cmd>>cdC:sparkspark-2.0.2-bin-hadoop2.7bin

Sonrasında ise komut satırında bu dizine geldikten sonra pyspark diyerek spark’ı çalıştırabiliriz. Kurulumunuz sorunsuz ise aşağıdaki gibi bir çıktı almanız gerekiyor.

Herşey tamam ise basit birkaç örnek yapalım . ilk önce bir tane rdd oluştutup belirli bir dosyamızın içinde count almayı deneyelim. Ben “yazarlar.bilisim.io” adlı dosyamızı bin dizinin altına kaydettim.

 

Şimdi ise count almayı deneyelim.

İlk önce dosyamızı rdd’ye tanımlayalım. Bunun için bu komut’u yazıyoruz.

>>>bilisimYazarlarRdd=sc.textFile(‘yazarlar.bilisim.io’)


Bu komut ile artık rdd file oluşturmuş olduk. Şimdi ise dosyamızın içinden count alalım. Dosyamızın içeriği şu şekildeydi.

Oluşturduğumuz rdd datasetimizden count almak için ise komutumuz şu şekilde olacaktır.

>>> bilisimYazarlarRdd.count()

Çıktısı şu şekildedir.

Şimdi ise aynı dosyamız içersinde filtreleme yaparak  yeni rdd olusturup bunun count’unu alalım. Neden ayrı rdd olusturuyoruz diye sorarsak makalemizin baındada rdd’ler ile iliglili bahsetmiştik değiştirelemeyeceklerini bu yüzden yeni rdd olusturup onun countunu alacağız.

>>> yazarlarRddFilter = bilisimYazarlarRdd.filter(lambda line:’Mehmet’ in line)
bu satırda eski rddmizi filtreleyip içerisindeki aratacağımız kelimeyi yazıyoruz . ve yeni rddmizi oluşturmuş oluyoruz.

Yeni rdd’mizde count aldığımızda  şöyle bir çıktı almamız lazım . Ben bir kaç örnek daha yaptım resimde yazarların post sayılarına göre filtreledim.

>>> yazarlarRddFilter.count()

Çıktısı şu şekildedir :

Bazı  spark komutları :

bilisimYazarlarRdd.first()   —>rdd içerisindeki ilk elamanı verir.

bilisimYazarlarRdd.map(lambda line: len(line.split())).reduce(lambda a, b: a if (a > b) else b)  —>Bu komut satırı ise tüm dosyadaki lineları okuyor ve boşluğu referans alarak yanyana en çok kaç tane kelime yazılmış onun size’ını alıyor.

Daha çok  komutları incelemek için ise https://spark.apache.org/docs/2.0.2/quick-start.html adresinden bakabilirsiniz.

Kurulum ve basit örnekler ile şimdilik yazımı sonlandırıyorum .Apache  Spark serisine devam edeceğim konu “Spark Streaming ve Kafka Entegrasyonu” olacaktır.  Sitemizi takip ederek bu konuyuda öğrenebilirsiniz.

Umarım Yararlı olmuştur.

iyi Çalışmalar

Yorum yaz

Email adresiniz yayınlanmayacaktır.