Apache Spark en basit tanımıyla hızlı ve performanslı olarak "büyük veriyi" analiz etmek için kullanılan bir teknoloji. Daha çok Hadoop MapReduce ile karşılaştırılsa da aslında bazı noktalarda örtüşüp bazı yerlerde farklılaşırlar. Genel olarak aşağıdaki özelliklere sahip :
- MapReduce'den memory işlemlerinde 100x, disk işlemlerinde 10x daha hızlı
- Java, Scala, Python dil desteği
- Kolay kullanım
- Farklı veri kaynakları ile kolay entegrasyon
- Akış programlama (streaming), SQL ve komplex analitik desteği.
Yukarıda sayılan özelliklerden ötürü son zamanlarda popüler olmaya başlayan bir büyük veri analiz teknolojisi olarak öne çıkan Apache Spark'ı Apache Cassandra'ya attığımız büyük veri yığınları için de kullanmak mümkün. Datastax'ın ücretsiz olarak sunduğu connector kütüphanesi ile büyük veri ile dilediğiniz gibi sorgular koşup, çıktıları yeni bir tabloya yazabilir, her hangi bir dosyaya kaydedebilirsiniz.
Örnek olarak günlük 5-6M kayıt attığınız, bir kaç yüz milyon satır veri içeren, Cassandra'da yer alan bir tablo düşünelim. NoSQL yapısı gereği her sorguyu SQL'deki gibi çalıştıramadığımızdan Apache Spark burada devreye giriyor. Cassandra'da yer alan tablomuza bağlanıp istediğimiz filtreye göre veri çekip bu veri üzerinde "count", "group by", "join" gibi NoSQL dünyasında istediğimiz gibi koşamadığımız fonksiyonları rahatça koşabiliriz. Spark temel olarak verimizi ilgili kaynaktan parça parça çekerek, dağıtık sistem üzerinde (spark cluster) sonuçları üreterek bize dilediğimiz çıktıyı üretir. Hadoop MapReduce'teki disk üzerinde gerçekleşen map ve reduce işlemleri, Spark tarafından memory'de gerçekleştiğinden çok daha hızlı sonuçlar alınır.

Hiç yorum yok:
Yorum Gönder