How-To Guides

Apache Iceberg Kurulumu: Modern Veri Göller İçin Kapsamlı Rehber

Büyük veri dünyasının değişen yapısında, Data Lakehouse mimarisi ölçeklenebilir, performanslı ve açık analitik için altın standart haline gelmiştir. Bu devrimin kalbinde, devasa analitik veri setleri için yüksek performanslı bir tablo formatı olan Apache Iceberg yer alır. Iceberg bir Java kütüphanesi olsa da, onunla etkileşim kurmak genellikle bağımsız bir CLI, Docker konteynerleri veya Spark veya Trino gibi motorlarla entegrasyon yoluyla bir çalışma zamanı ortamı kurmayı gerektirir. Bu rehber, Linux ve Docker kullanarak yerel bir geliştirme ortamında Apache Iceberg'i kurmak ve doğrulamak için pratik adımları size gösterecektir.

Ön Koşullar: Ortamı Anlamak

Kurulum işlemine başlamadan önce, Apache Iceberg'in bir veritabanı gibi basitçe "kurulabilen" bağımsız bir hizmet olmadığını anlamak çok önemlidir. Bir tablo formatı spesifikasyonudur. Bu nedenle, onu kullanmak için Iceberg formatını destekleyen bir çalışma zamanı motoruna ihtiyacınız vardır. Geliştiriciler için en yaygın giriş noktaları şunlardır:

  1. Apache Spark: Iceberg tablolarını yazmak ve okumak için en popüler motor.
  2. Trino (eski adıyla PrestoSQL): Etkileşimli SQL sorguları için idealdir.
  3. Apache Hive: Eski sistemlerle uyumluluk için.

Bu rehberde, tam bir Hadoop kümesi yönetmeden hızlıca başlamanızı sağlayan Iceberg CLI (Komut Satırı Arayüzü) ve Docker tabanlı Spark kurulumu üzerine odaklanacağız.

Yöntem 1: Homebrew Üzerinden Iceberg CLI Kurulumu

Iceberg CLI, katalog meta verilerini yönetmek, tabloları incelemek ve temel işlemleri gerçekleştirmek için güçlü bir araç sağlar. macOS veya Homebrew yüklü Linux kullanıyorsanız, bu en hızlı yöntemdir.

Öncelikle Homebrew'un yüklü olduğundan emin olun. Ardından, Iceberg'in en son sürümünü yüklemek için aşağıdaki komutları çalıştırın:

# Paket listenizi güncelleyin
brew update

# Apache Iceberg CLI'yi yükleyin
brew install apache-iceberg

Kurulum tamamlandıktan sonra, sürümü kontrol ederek kurulumu doğrulayabilirsiniz:

iceberg --version

Bu komut, sisteminizin yolunda CLI'nin mevcut olduğunu onaylayan mevcut sürüm numarasını döndürmelidir. Artık ev dizininizdeki veya mevcut çalışma dizinindeki uygun yapılandırma dosyalarını ayarlayarak yerel bir Hadoop katalog başlatabilirsiniz.

Yöntem 2: Docker ve Spark ile Iceberg Çalıştırma

Daha sağlam bir test ortamı için veya Homebrew olmayan bir sistem kullanıyorsanız, Docker Iceberg'i izole ve tekrarlanabilir bir şekilde çalıştırmak için bir seçenek sunar. Resmi Apache Iceberg Docker görüntüleri, Iceberg bağımlılıkları önceden yapılandırılmış Spark örneklerini içerir.

Resmi Iceberg görüntüsünü çekerek başlayın. Belirli bir Spark sürümünü seçebilirsiniz; burada Spark 3.3 kullanıyoruz:

docker pull apache/iceberg:spark-3.3

Görüntü indirildikten sonra, yerel Hadoop dosya sistemine veya S3 uyumlu depolamaya bağlanan bir Spark konteyneri başlatabilirsiniz. Aşağıda, Iceberg etkinleştirilmiş bir Spark kabuğu çalıştırmak için bir örnek komut bulunmaktadır:

docker run -it \
  --name iceberg-spark \
  -v ${PWD}:/home/iceberg/data \
  -e AWS_REGION=us-east-1 \
  -e AWS_ACCESS_KEY_ID=ERISIM_ANAHTARINIZ \
  -e AWS_SECRET_ACCESS_KEY=GIZLI_ANAHTARINIZ \
  apache/iceberg:spark-3.3 \
  spark-sql \
  --conf spark.sql.extensions=org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions \
  --conf spark.sql.catalog.spark_catalog=org.apache.iceberg.spark.SparkSessionCatalog \
  --conf spark.sql.catalog.spark_catalog.catalog-impl=org.apache.iceberg.hive.HiveCatalog

Not: Gerçek bir senaryoda, genellikle yerel veri dizininizi konteynere bağlarsınız ve katalogyı Hive Metastore veya basit bir Hadoop dosya sistemi gibi bir meta veri deposuna işaret edecek şekilde yapılandırırsınız.

Kurulumun Doğrulanması

Kurulumdan sonra doğrulama çok önemlidir. CLI'yi kullandıysanız, basit bir namespace oluşturmayı deneyin:

iceberg catalog create --uri file:///tmp/hive_catalog

Eğer Spark kullanıyorsanız, Spark Kabuğu içinde basit bir SQL komutu çalıştırın:

CREATE NAMESPACE my_database;
SHOW NAMESPACES;

Eğer namespace'inizi listede görüyorsanız, Iceberg kurulumunuz başarılıdır ve kullanıma hazırdır.

Sonuç

Apache Iceberg kurulumu, bir ikili dosya indirmekten ziyade, onu destekleyen çalışma zamanı ortamını yapılandırmakla ilgilidir. Hızlı yerel testler için Homebrew CLI'yi veya konteynerli geliştirme için Docker'i kullanarak geliştiriciler, Iceberg'i veri mühendisliği iş akışlarına kolayca entegre edebilir. AWS, GCP veya Azure üzerinde modern bir veri göl evi oluşturuyor olun, Iceberg'in kurulumu ve yapılandırmasını öğrenmek, ölçeklenebilir ve ACID uyumlu veri analitiğinin kilidini açmak için atılacak ilk kritik adımdır.

Share: