Apache Spark’ı Hangi Ortamlarda Kullanabiliriz?
Apache Spark büyük veri ve analitik dünyada çok popüler bir araç. Spark’ı bir çok farklı amaçla kullanabileceğimiz gibi bir çok farklı ortamda çalıştırabiliriz. Bu yazımızda Spark’ı hangi ortamlarda çalıştırıp kullanabiliriz onlardan bahsedeceğiz.
Lokal
Java yüklü herhangi bir bilgisayar veya sunucuda Spark binary dosyalarını indirip lokal modda Spark’ı kullanabilirsiniz. Geliştirme yapmak ve öğrenmek için ideal bir yöntem. Canlı ortam ve ağır yükler için uygun değil. Ancak lokal modda bile pandas ile işleyebileceğinizden daha büyük veri işleyebilirsiniz.
On-Premises
Kendi veri merkezinizde fiziksel/sanal sunucularda cluster modda (Standalone, YARN gibi) Spark’ı kullanabilirsiniz. Ücretsiz Standalone veya ücretli Cloudera sık kullanılan iki seçenek.
Kubernetes
Bulutta veya veri merkezinde olması farketmeksizin Spark’ı Kubernetes ile dağıtık olarak kullanabilirsiniz. Kubernetes ile farkı Spark sürümlerine sahip uygulamaları aynı cluster üzerinde çalıştırmak gibi avantajlarınız olur.
Databricks
Amazon, Azure ve Google Cloud üzerinde Spark’ı Databricks platformu içinde kullanabilirsiniz. Databricks, her türlü analitik ihtiyacı karşılayan oldukça konforlu bir ortam sunarak Spark’ı enterprise seviyede güvenle, desteğe sahip olarak ancak ücretini de ödemek şartıyla kullanmanızı sağlıyor. Açık kaynaklı Spark’ın optimize edilmiş hali olan Databricks Runtime var içinde. Makine öğrenmesi, veri mühendisliği ve veri analizi ihtiyaçlarını karşılayan bir çok özellik var. Üstelik modern veri ambarı (lakehouse) formatı olan delta format varsayılan format olarak sunuluyor. Bu sayede klasik veri ambarı ve iş zekası ihtiyaçlarınızı (ölçekleme problemi olmaksızın) karşılama ve modern yapay zeka, veri bilimi ve mühendisliği fırsatlarını kullanma şansını bir arada buluyorsunuz.
AWS
EMR: Amazon’un yönetilen Hadoop cluster hizmeti. EMR’da YARN modunda Spark’ı ağır (realtime+batch) yükler için kullanabilirsiniz. Veri ile hesaplama birbirinden izole edilmiş durumda. Klasik Hadoop cluster’larının problemlerinden biri de veri ile hesaplamanın ayrışamamasıydı. Hiç işiniz olmasa bile sadece veri erişimi için büyük kaynakları açık tutmak zorundaydınız. EMR bu sorunu çözmüş. Ayrıca yakın zamanda EMR’ın sunucusuz (serverless) versiyonu da çıktı. Böylece kullanmadan önce cluster yaratmanıza gerek kalmıyor.
Glue: Glue ile Spark’ı ETL işleri için sunucusuz (serverless) olarak kullanabilirsiniz.
Google Cloud
Dataproc: EMR gibi klasik Hadoop-Spark cluster ihtiyacını karşılayan servis. Burada da hesaplama ile verinin ayrıştığını görüyoruz. Spark’ı YARN modunda kullanabilirsiniz.
BigQuery: Evet yanlış duymadınız BigQuery üzerinde de Spark kullanabilirsiniz. Verileri dışa aktarmadan veya altyapıyı yönetmeden Spark’ı BigQuery Studio’da yazıp çalıştırabilirsiniz.
Azure
HDInsight da EMR ve Dataproc gibi klasik Hadoop-Spark cluster ihtiyacını karşılıyor.
Azure Synapse Analytics
Azure Data Factory
Cloudera
Bulut veya on-premise ortamlarda Spark’ı YARN cluster yöneticisi ile ağır iş yükleri için kullanabilirsiniz.
Bulutta
Herhangi bir bulutta, kendi sanal makinelerinizi yaratıp üzerine standalone veya Hadoop-YARN cluster kurup kullanabilirsiniz.
Bu yazımızda özet olarak Apache Spark’ı hangi ortamlarda kullanabileceğimizden bahsettik.
Başka bir yazıda görüşünceye dek hoşça kalın.
Spark’ı uygulamalı olarak çok iyi seviyede öğrenmek isterseniz Data Engineer Bootcamp‘i öneririm.