Apache Spark ile AWS RDS Veritabanına Bastion Host Üzerinden SSH Tunnel Kurarak Bağlanmak

Giriş Veri mühendisliği projelerinde, özellikle kurumsal ortamlarda canlı veriye doğrudan erişim yerine bastion host gibi geçit sunucuları üzerinden güvenli bağlantılar tercih edilir. Bu yazıda, bir SSH Tunnel yardımıyla lokalde çalışan Apache Spark ile AWS RDS veritabanına nasıl erişebileceğinizi adım adım göstereceğim. Bastion Host Nedir? Bastion host, bir diz üstü bilgisayarınız veya internete açık bir cihaz […]

Spark ML Custom Transformer Yazma

Bu yazımızda Spark ML Custom Transformer yazacağız. Spark’ın makine öğrenimi kütüphanesi (MLlib), veri bilimcilere ve makine öğrenimi mühendislerine zengin bir araç seti sunuyor. Model geliştirme çalışmalarında bilhassa özellik mühendisliği (feature engineering) aşamasında çok yoğun veri ön hazırlık süreçleri oluyor.  Bu çalışmalarda  PySpark’ın pyspark.ml.feature kütüphanesi, makine öğrenimi modelleriniz için ham verileri anlamlı ve kullanışlı özelliklere (feature) […]

Scikit-Learn Spark Deployment

Makine öğrenimi modelleri, günümüzde birçok alanda veri analizinin ve tahminlerin temelini oluşturuyor. Scikit-learn ise en başından beri Python ile yapılan çalışmalarda, basit arayüzü ve geniş algoritma yelpazesi ile ML çalışmalarında en yaygın kütüphane. Ancak, scikit-learn  ile büyük veri kümelerinde çalışmak, performans ve ölçeklenebilirlik açısından bazı zorluklar doğurabiliyor. Bu noktada, büyük veri üzerindeki başarısıyla meşhur Apache Spark […]

Docker ile Hızlı ve Kolay PySpark ve Jupyter Kurulumu

Büyük veri analizi, günümüzün veri odaklı dünyasında giderek daha önemli hale geliyor. PySpark ve Jupyter Notebook, bu alanda en popüler araçlardan ikisi. PySpark, büyük veriyi işlemek için son derece hızlı ve ölçeklenebilir bir araçken, Jupyter Notebook ise PySpark ile etkileşimli veri analizi ve görselleştirme çalışmaları için sade ve konforlu bir ortam sunar. Ancak, PySpark ve […]

Apache Spark, Minio, Nessie Catalog, Iceberg ve Docker ile Lakehouse Örneği

Veri ambarı (data warehouse) ile veri gölünün (data lake) en iyi yönlerini birleştirerek bizlere ilişkisel veri tabanı konforunu büyük veri üzerinde sunan lakehouse çözümleri gün geçtikçe hayatımızdaki yerini alıyor. Bugün burada tamamen açık kaynak kodlu bileşenleri kullanarak docker üzerinde basit bir lakehouse örneği yapacağız. 1. Altyapıyı Oluşturan Bileşenler 1.1. Nessie Nessie veri gölleri için transactional […]

Delta Lake Temizliği ile Depolama Alanı Optimizasyonu

Herkese merhaba! Gittikçe artan veri hacimleriyle birlikte, verilerin depolanması, yönetilmesi konusundaki güçlüklerin de benzer oranda arttığını biliyoruz.  Açık kaynaklı bir depolama katmanı olan olan Delta Lake kullanıyorsanız, bir Delta tablosunda yapılan tüm değişikliklerin izlenmesi için kullanılan log dosyaları ve verilerin kaydedildiği parquet uzantılı dosyaların zamanla arttığını gözlemlemişsinizdir. Bu dosyalar zamanla ciddi boyutlara ulaşabilir, sorgu performansını […]

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 […]

Spark on Kubernetes

17 Ekim 2024’de güncellendi. Merhabalar. Bu yazımızda bir Spark uygulamasını Kubernetes cluster (Minikube) üzerinde çalıştıracağız, yaygın adıyla Spark on Kubernetes. Bildiğimiz gibi Spark 2.3 sürümüne kadar sadece 3 cluster yöneticisi vardı: Hadoop YARN, Apache Mesos ve Spark Standalone. Sürüm 2.3 ile beraber Kubernetes de bunların arasına katıldı. Şimdiye kadar Spark kullanımında hakim cluster yöneticisi YARN […]

Apache Spark AWS S3 Veri Kaynağı

Merhabalar. Bu yazımızda Apache Spark AWS S3 entegrasyonu yapacağız. Bu kapsamda bir Spark  dataframe’i AWS S3’e nasıl yazacağımızı ve S3’den Spark ile nasıl veri okuyacağımızı öğreneceğiz. Bu işi lokal makinemizdeki Spark ile yapacağız. Peki bunun yazı haline gelecek neyi var diye sorarsanız, ben de “Biraz gıcık bir iş, ben çektim siz çekmeyin” derim. Aslında birkaç […]

Spark ve Delta Lake ile Büyük Veri Slowly Changing Dimension Type2

Bu yazımızda veri ambarı dünyasında boyut (dimension) tablolarında sıklıkla kullanılan bir güncelleme yöntemi olan slowly changing dimension örneğini Apache Spark ve Delta Lake ile yapacağız. Veri ambarında gerçekleşen işlemler ve bu işlemlere ait tanım bilgileri farklı tablolarda tutulur. Hepimiz e-ticaret sitelerinden alışveriş yapıyoruz. Örneğin bir telefon kılıfı aldık. Bu telefon kılıfı bir üründür ve tanımı […]

Spark İşini Cep Telefonundan Başlatmak: Apache Livy Server

Başlık çarpıcı geldi değil mi? İnanmazsınız ancak doğru. Spark işlerini genelde client kütüphanelerinin kurulu olduğu makinelerden, yani Spark’ın Hadoop’un nerede olduğundan haberdar ve konfigürasyonları yapılmış makinelerden, başlatırız. Bu durum bizim spark işini başlatma (spark-submit) konusunda client kütüphanelerine bağımlı kılar. İşte bu kısıttan kurtulmak için “Spark işlerini her yerden başlat (Submit Jobs from Anywhere)” sloganıyla bir […]

Apache Spark ile LightGBM Kullanarak Sınıflandırma Yapmak

Merhabalar. LightGBM’in ününü duymuşsunuzdur. Ancak bunu Spark ile kullanmak istediğinizde maalesef bu algoritma Spark ML’de bulunmuyor. Bu yazımızda LightGBM’i Spark içinde nasıl kullanacağımızı PySpark ile uygulamalı olarak göreceğiz. Bildiğimiz gibi Apache Spark büyük veri dünyasında makine öğrenmesi çalışmalarının vazgeçilmez bir aracı. Küçük veri dünyasında scikit-learn ile yaptığımız işleri büyük veri tarafında genelde Spark ile yaparız. […]

Pratik Bilgiler ve Komutlar: Apache Spark

Apache Spark ile zamanla edindiğim ipuçları ve pratik bilgileri diğer pratik bilgiler ve komutlar yazı dizilerinde olduğu gibi sizlerle paylaşacağım. Faydalı olmasını umuyorum. Spark RDD[String] nasıl dataframe yapılır? Rdd’yi Dataframe’e Dönüştürmek Spark Dataframe Vektör tipini Array tipine çevirmek Pyspark ile Excel’e yazmak Spark ile otomatik olarak sütun seçmek (Scala) spark-shell’i başlatırken konfigürasyonları nasıl ayarlarım? PySpark […]

Pandas Dataframe’i Hive Tablosu olarak Hadoop’a Kaydetmek

Sıkı durun uzun bir yazı olacak! Böyle bir macera ilk defa başıma geldiğinde çok zordur bu iş diyordum ancak öyle çok korkulacak bir şey olmadığını işi yaptıktan sonra fark ettim. Şimdi nereden çıktı bu konu? Ben veri temizliği için Pandas’ı çok seviyorum. Büyük veri setlerinin temizlemek istediğim yerlerini koparıp Pandas ile temizleyip tekrar yerine koyuyorum. Peki […]

Python Listesinden Spark RDD ve Dataframe Oluşturmak

Zaman zaman Python listesinden PySpark Dataframe oluşturmamız gerekebiliyor. En azından benim gerekiyor. Bu kısa yazımızda bunu gerçekleştireceğiz. Önce 9 insanın aylık ücretlerini temsil eden Python listemizi oluşturuyoruz. Bu çalışmada Spark 1.6 kullanılmıştır. ucret =[2000.00,3750.00,1000.00,4800.00,4800.00,0.00,4800.00,0.00,14500.00] Python listesinden Spark RDD oluşturalım ucretRDD = sc.parallelize(ucret) Kontrol edelim ucretRDD.take(9) [2000.0, 3750.0, 1000.0, 4800.0, 4800.0, 0.0, 4800.0, 0.0, 14500.0] Şema […]