Google Cloud Storage'a bağlanma
Bu makalede, Google Cloud Storage'da (GCS) depolanan tables ve verileri okumak ve yazmak için Azure Databricks'ten bağlantı yapılandırma işlemi açıklanmaktadır.
GCS demetinden okumak veya yazmak için ekli bir hizmet hesabı oluşturmanız ve demeti hizmet hesabıyla ilişkilendirmeniz gerekir. Doğrudan bir anahtarla hizmet hesabı için generate olan bucket'a bağlanırsınız.
Google Cloud hizmet hesabı anahtarıyla gcs demetine doğrudan erişme
Doğrudan bir demeti okumak ve yazmak için Spark yapılandırmanızda tanımlanan bir anahtarı yapılandırırsınız.
1. Adım: Google Cloud Console kullanarak Google Cloud hizmet hesabını Set
Azure Databricks kümesi için bir hizmet hesabı oluşturmanız gerekir. Databricks, bu hizmet hesabına görevlerini gerçekleştirmek için gereken en düşük ayrıcalıkların verilmesini önerir.
Sol gezinti bölmesinde IAM ve Yönetici'ye tıklayın.
Hizmet Hesapları'nı tıklatın.
+ HİzMET HESABI OLUŞTUR'a tıklayın.
Hizmet hesabı adını ve açıklamasını girin.
OLUŞTUR'a tıklayın.
DEVAM'a tıklayın.
YİNE'ye tıklayın.
2. Adım: GCS demetine doğrudan erişmek için anahtar oluşturma
Uyarı
Hizmet hesabı için generate JSON anahtarı, Google Cloud hesabınızdaki veri kümelerine ve kaynaklara erişimi denetlediğinden yalnızca yetkili kullanıcılarla paylaşılması gereken özel bir anahtardır.
- Google Cloud konsolunda, listhizmet hesaplarında yeni oluşturulan hesaba tıklayın.
- Anahtarlar bölümünde ANAHTAR EKLE > Yeni anahtar oluştur'a tıklayın.
- JSON anahtar türünü kabul edin.
- OLUŞTUR'a tıklayın. Anahtar dosyası bilgisayarınıza indirilir.
3. Adım: GCS demetini yapılandırma
Demet oluşturma
Henüz bir demetiniz yoksa bir demet oluşturun:
Sol gezinti bölmesinde Depolama'ya tıklayın.
DEMET OLUŞTUR'a tıklayın.
OLUŞTUR'a tıklayın.
Demeti yapılandırma
Demet ayrıntılarını yapılandırın.
İzinler sekmesine tıklayın.
İzinler etiketinin yanındaki EKLE'ye tıklayın.
Bulut Depolama rollerinden demetteki hizmet hesabına Depolama Yöneticisi izni verin.
KAYDET'e tıklayın.
4. Adım: Hizmet hesabı anahtarını Databricks gizli dizilerine yerleştirme
Databricks, tüm credentialsdepolamak için gizli dizi kapsamlarının kullanılmasını önerir. Özel anahtar ve özel anahtar kimliğini anahtar JSON dosyanızdan Databricks gizli dizi kapsamlarına yerleştirebilirsiniz. Çalışma alanınızdaki kullanıcılara, hizmet sorumlularına ve gruplara gizli dizi kapsamlarını okumak için grant erişimi verebilirsiniz. Bu, kullanıcıların GCS'ye erişmesine izin verirken hizmet hesabı anahtarını korur. Gizli dizi kapsamı oluşturmak için bkz . Gizli dizileri yönetme.
5. Adım: Azure Databricks kümesini yapılandırma
Spark Yapılandırması sekmesinde genel yapılandırma veya demet başına yapılandırma yapılandırın. Aşağıdaki örnekler, Databricks gizli dizileri olarak depolanan values'i kullanarak set işlemini gerçekleştirir.
Not
GCS demetindeki hizmet hesabına ve verilere erişimi korumak için küme erişim denetimini ve not defteri erişim denetimini birlikte kullanın. Bkz . İşlem izinleri ve Databricks not defterlerini kullanarak işbirliği yapma.
Genel yapılandırma
Sağlanan credentials tüm demetlere erişmek için kullanılması gerekiyorsa bu yapılandırmayı kullanın.
spark.hadoop.google.cloud.auth.service.account.enable true
spark.hadoop.fs.gs.auth.service.account.email <client-email>
spark.hadoop.fs.gs.project.id <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id {{secrets/scope/gsa_private_key_id}}
<client-email>
<project-id>
değerini anahtar JSON dosyanızdaki tam alan adlarının values ile değiştirin.
Demet başına yapılandırma
belirli demetler için credentials yapılandırmanız gerekiyorsa bu yapılandırmayı kullanın. Demet başına yapılandırma söz dizimi, aşağıdaki örnekte olduğu gibi demet adını her yapılandırmanın sonuna ekler.
Önemli
Demet başına yapılandırmalar, genel yapılandırmalara ek olarak kullanılabilir. Belirtildiğinde, demet başına yapılandırmalar genel yapılandırmaların yerini alır.
spark.hadoop.google.cloud.auth.service.account.enable.<bucket-name> true
spark.hadoop.fs.gs.auth.service.account.email.<bucket-name> <client-email>
spark.hadoop.fs.gs.project.id.<bucket-name> <project-id>
spark.hadoop.fs.gs.auth.service.account.private.key.<bucket-name> {{secrets/scope/gsa_private_key}}
spark.hadoop.fs.gs.auth.service.account.private.key.id.<bucket-name> {{secrets/scope/gsa_private_key_id}}
<client-email>
<project-id>
değerini anahtar JSON dosyanızdaki tam alan adlarının values ile değiştirin.
6. Adım: GCS'den okuma
GCS demetinden okumak için desteklenen herhangi bir biçimde spark okuma komutu kullanın, örneğin:
df = spark.read.format("parquet").load("gs://<bucket-name>/<path>")
GCS demetine yazmak için desteklenen herhangi bir biçimde spark yazma komutu kullanın, örneğin:
df.write.mode("<mode>").save("gs://<bucket-name>/<path>")
değerini 3. Adım: GCS demetini yapılandırma bölümünde <bucket-name>
adıyla değiştirin.