Tüm Ürünler
Search
Belge Merkezi

E-MapReduce:Use Kerberos with Kyuubi Gateway

Son Güncelleme:Oct 05, 2026

Serverless Spark'te Kyuubi Ağ Geçidi için Kerberos'u etkinleştirerek güvenli kimlik doğrulama ve erişim kontrolü uygulayabilirsiniz. Yapılandırma tamamlandığında, istemciler ağ geçidine iş gönderirken Kerberos kullanarak kimlik doğrulaması yapmak zorundadır; bu da iş çalıştırma güvenliğini artırır.

Sınırlamalar

  • KDC ve Serverless Spark çalışma alanı aynı bölgede bulunmalıdır.

Ön Koşullar

  • Kerberos kimlik doğrulaması etkinleştirilmiş bir EMR on ECS kümesi oluşturulmuş olmalıdır. Daha fazla bilgi için bkz. Küme oluşturma.

  • Kerberos kimlik doğrulaması etkinleştirilmiş bir Serverless Spark çalışma alanı oluşturulmuş olmalıdır. Daha fazla bilgi için bkz. Kerberos kimlik doğrulamasını etkinleştirme.

  • Serverless Spark çalışma alanında bir Kyuubi Ağ Geçidi oluşturulmuş olmalıdır. Ağ geçidinin çalışıyor olması gerekmez.

Ağ Bağlantısını Kurma

Kyuubi Ağ Geçidi ile Kerberos kullanmak için Serverless Spark ile Kerberos kümesi arasında ağ bağlantısı kurmak amacıyla PrivateLink yapılandırmanız gerekir. Bu yapılandırma kendi kendine hizmet aracılığıyla kurulamaz. Kurulumu tamamlamak ve uç nokta hizmeti kimliğini (örneğin epsrv-bp10******2j5ms) almak için gerekli bilgilerle birlikte bir destek talebi oluşturun.

Not

Uç nokta hizmeti kimliğini almak için aşağıdaki bilgileri destek sistemi üzerinden gönderin.

  • Serverless Spark çalışma alanı kimliği (örneğin w-f8cfXXXXXX).

  • Kyuubi Ağ Geçidi kimliği (örneğin kb-564e********266f).

  • Kyuubi hizmetine erişmek için kullanılabilecek en az iki alan (örneğin cn-hangzhou-j,cn-hangzhou-k). Her bölgede desteklenen alanlar hakkında daha fazla bilgi için destek talebindeki müşteri hizmetleri personeliyle iletişime geçin.

Uç Nokta Oluşturma

Uç nokta, hizmet tüketici tarafından oluşturulur ve yönetilir; harici hizmetlere PrivateLink aracılığıyla erişmek üzere özel bir ağ bağlantısı kurmak için bir uç nokta hizmetiyle ilişkilendirilebilir. Daha fazla bilgi için bkz. Uç Noktalar.

  1. Uç Nokta konsolu üzerinde oturum açın.

  2. Create Endpoint sayfasında uç noktayı aşağıdaki parametrelerle yapılandırın ve ardından Create öğesini tıklayın.


    Parameter


    Description


    Region


    Uç nokta için bölgeyi seçin. Bölgenin, Kerberos kümesinin ve Serverless Spark çalışma alanının bulunduğu bölgeyle aynı olduğundan emin olun.


    Endpoint Name


    Uç nokta için özel bir ad girin.


    Endpoint Type


    Interface Endpoint seçeneğini belirleyin.


    Endpoint Service


    Select Service öğesini tıklayın ve ardından hedef uç nokta hizmetinin kimliğini seçin veya girin. Bu kimlik, önceki adımda elde edilen epsrv-bp10******2j5ms değeridir.


    VPC


    Kyuubi Ağ Geçidine erişen düğümün bulunduğu VPC'yi seçin.


    Zone and vSwitch


    Daha önce belirttiğiniz alanları ve vSwitch'leri seçin. En az iki alan seçmeniz önerilir.


    Security Group


    Uç noktanın ağ arayüzüyle ilişkilendirilecek güvenlik grubunu seçin. Kyuubi Ağ Geçidine erişen düğümün bulunduğu kümenin güvenlik grubunu seçerek bağlantı isteklerinin güvenlik grubu tarafından engellenmesini önlemeniz önerilir.


    IP Version


    Desteklenen ağ türü. Varsayılan olarak IPv4 kullanılır.


    Resource Group


    (İsteğe bağlı) Uç noktanın ait olduğu kaynak grubunu seçin.


    Tags


    (İsteğe bağlı) Bir Tag Key ve bir Tag Value yapılandırın.

  3. Uç noktanın Basic Information sayfasında Status durumu Available ise uç nokta oluşturulmuştur. Uç nokta hizmeti alan adı ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com şeklindedir.

  4. Kerberos kümesinde oturum açın ve ağ bağlantısını test edin.

    Bir Kerberos küme düğümünden ping komutunu kullanarak uç noktanın özel ağ bağlantısını doğrulayın. Normal bir yanıt, ağın bağlı olduğunu gösterir:

    [root@master-1-1(xxx) ~]# ping ep-bp1ixxx.cn-hangzhou.privatelink.aliyuncs.com
    PING ep-bp1xxx              xxx.cn-hangzhou.privatelink.aliyuncs.com (xxx) 56(84) bytes of data.
    64 bytes from xxx (xxx): icmp_seq=1 ttl=102 time=0.989 ms

DNS Çözümlemesini Yapılandırma (İsteğe Bağlı)

Varsayılan uç nokta hizmeti alan adı uzundur. Kullanımı basitleştirmek için özel bir dahili yetkili alan adı yapılandırabilirsiniz. Daha fazla bilgi için bkz. Dahili yetkili alan adları.

  1. üzerinde oturum açın. Authoritative Zone sayfasında User-defined Zones sekmesini tıklayın ve ardından Add Zone öğesini tıklayın.

  2. Bir Authoritative Zone alan adı girin, alan adının etkili olacağı VPC'yi seçin ve ardından OK öğesini tıklayın. Bu örnekte kyuubi-kerberos.abc kullanılmıştır.

    Not

    Domain Type seçeneği mevcutsa Acceleration Zone seçeneğini belirleyin. Domain Type seçeneği mevcut değilse seçim yapmanıza gerek yoktur; varsayılan olarak bir Acceleration Zone alan adı oluşturulur.

  3. User-defined Zones sekmesinde hedef alan adını bulun ve Settings öğesini Actions sütununda tıklayın. Ardından Add Record öğesini tıklayın ve iletişim kutusunda Form Editor Mode seçeneğini belirleyin.

  4. Record Type değerini CNAME olarak ayarlayın. Hostname için iş gereksinimlerinize göre bir değer girin. Bu örnekte test kullanılmıştır. Record Value için uç nokta hizmeti alan adını ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com olarak girin. OK öğesini tıkladıktan sonra uç nokta hizmeti alan adı test.kyuubi-kerberos.abc adresine eşlenir.

  5. Kerberos kümesinde oturum açma işlemiyle Kerberos kümesine bağlanın ve ağ bağlantısını test edin.

    ping test.kyuubi-kerberos.abc

keytab Dosyası Oluşturma

Bir kyuubi.keytab dosyası oluşturun. Bu keytab dosyası yalnızca Serverless Spark'in Kyuubi Ağ Geçidi kimlik doğrulama hizmeti tarafından kullanılır.

  1. Kerberos kümesinde oturum açma işlemiyle Kerberos kümesine bağlanın ve Kadmin düğümüne (örneğin bir EMR on ECS kümesinin master-1-1 düğümü) erişin.

  2. Kerberos için kadmin.local aracını başlatmak üzere aşağıdaki komutu çalıştırın.

    kadmin.local

    Mevcut asıl kullanıcıları (principals) görüntülemek için aşağıdaki komutu çalıştırın:

    listprincs
  3. kyuubi/<fqdn>@<REALM> biçiminde bir asıl kullanıcı oluşturun. fqdn kısmı için uç nokta alan adını ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com kullanmanız önerilir. Özel bir alan adını çözümlemek için bir CNAME kaydı yapılandırdıysanız özel alan adını test.kyuubi-kerberos.abc olarak kullanın. <REALM> kısmı mevcut küme yapılandırmasıyla tutarlı olmalıdır. Diğer mevcut asıl kullanıcılara bakarak referans alabilirsiniz.

    addprinc -randkey kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COM
  4. keytab dosyasını dışa aktarın ve dışa aktarma tamamlandıktan sonra kadmin.local aracından çıkın.

    xst -kt /root/kyuubi.keytab kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD4*****C204.COM
    quit
  5. Oluşturulan keytab dosyasını bir Object Storage Service (OSS) paketinde yükleyin.

    hadoop fs -put /root/kyuubi.keytab oss://<bucket_name>.oss-<region-id>-internal.aliyuncs.com/<path>/

Kyuubi Ağ Geçidini Yapılandırma

Kyuubi Ağ Geçidi ile Kerberos kullanmak için KDC kümesine erişebilen bir network connection seçin ve aşağıdaki Kyuubi Configuration ayarlarını ekleyin.

kyuubi.authentication              KERBEROS
kyuubi.kinit.principal             kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD43******7C204.COM
kyuubi.files                       oss://<bucket_name>/<path>/kyuubi.keytab
kyuubi.kinit.keytab                /opt/kyuubi/work-dir/kyuubi.keytab


Parameter


Description


kyuubi.authentication


Kyuubi Ağ Geçidi tarafından kullanılan kimlik doğrulama modunu belirtir. Bu parametreyi KERBEROS olarak ayarlayın.


kyuubi.kinit.principal


Kyuubi Ağ Geçidi'nin Kerberos kimlik doğrulaması için kullandığı asıl kullanıcıyı belirtir. Biçim <user>/<host>@<realm> şeklindedir.


kyuubi.files


Bu parametre, belirtilen dosyayı /opt/kyuubi/work-dir/ dizinine indirir. Önceki adımlarda yüklediğiniz keytab dosyasının OSS yolunu girin. Yol, oss-<region-id>-internal.aliyuncs.com alan adını içermek zorunda değildir.


kyuubi.kinit.keytab


Kyuubi Ağ Geçidi'nin kullandığı keytab dosyasını belirtir. Not: Yol sabit olarak /opt/kyuubi/work-dir/ dizinidir. Dosya adını ihtiyaçlarınıza göre değiştirin.

Kerberos özellikli Hive Metastore (HMS) hizmetine bağlanmanız gerekiyorsa ve çalışma alanı veri kataloğu zaten HMS veri kataloğu ile yapılandırılmışsa aşağıdaki Spark Configuration ayarlarını ekleyin.

spark.hive.metastore.kerberos.principal             hive/_HOST@EMR.C-DFD4*****C204.COM
spark.hive.metastore.sasl.enabled                   true


Parameter


Description


spark.hive.metastore.kerberos.principal


Kerberos ortamındaki HMS asıl kullanıcısı. Önceki adımlarda listprincs komutunu çalıştırarak elde ettiğiniz hive asıl kullanıcısını girin. <fqdn> kısmı _HOST olarak basitleştirilebilir; yani hive/_HOST@<REALM>.


spark.hive.metastore.sasl.enabled


Kerberos kimlik doğrulamasının etkinleştirilip etkinleştirilmeyeceğini belirtir. Bu parametreyi true olarak ayarlayın.

(İsteğe bağlı) Kerberos özellikli bir HMS hizmetine bağlanmanız gerekiyorsa ve çalışma alanı veri kataloğu HMS veri kataloğu ile not yapılandırılmamışsa aşağıdaki Spark yapılandırmalarını da add etmeniz gerekir.

spark.hadoop.hive.metastore.uris                    thrift://master-1-1.c-1d36*****e840c.cn-hangzhou.emr.aliyuncs.com:9083
spark.hadoop.hive.imetastoreclient.factory.class    org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory


Parameter


Description


spark.hadoop.hive.metastore.uris


Hive Metastore (HMS) adresi.


spark.hadoop.hive.imetastoreclient.factory.class


Sabit bir değer.

Not
  • Yüksek kullanılabilirlik (HA) kümesinde metastore.uris için birden fazla Thrift adresi yapılandırabilirsiniz. Adresler virgülle ayrılmalı ve IP adresleri yerine ana bilgisayar adları kullanılmalıdır.

  • metastore.uris için yalnızca bir Thrift adresi belirtirseniz bir IP adresi kullanabilirsiniz. Ancak metastore.kerberos.principal değeri hive/<hostname of HMS>@<REALM> biçiminde olmalıdır.

  • metastore.uris bir ana bilgisayar adı kullandığında yalnızca metastore.kerberos.principal değerini hive/_HOST@<REALM> biçimine basitleştirebilirsiniz.

Yapılandırmaları kaydedin ve Kyuubi Ağ Geçidini başlatın.

İş Gönderme

Kerberos kümesinin Kyuubi Ağ Geçidine bağlanabildiğini doğrulayın ve bir Spark işi başlatın.

  1. (İsteğe bağlı) Gerekli izinlere sahip bir Kerberos kullanıcısı hazırlayın ve kullanıcının keytab dosyasını dışa aktarın.

    1. Kerberos kümesinde oturum açma işlemiyle Kerberos kümesine bağlanın.

    2. keytab dosyasını dışa aktarmak için aşağıdaki komutları çalıştırın.

      kadmin.local
      addprinc -randkey emr-user@EMR.C-DFD4*****C204.COM
      xst -kt /root/emr-user.keytab emr-user@EMR.C-DFD4*****C204.COM
      quit
  2. keytab dosyasını kullanarak Kerberos ile kimlik doğrulaması yapın.

    kinit -kt /root/emr-user.keytab emr-user

    Önceki adımda bir keytab dosyası oluşturmadıysanız mevcut bir hizmet keytab dosyasını (örneğin EMR on ECS'te varsayılan olarak bulunan hive.keytab dosyasını) de kullanabilirsiniz.

    Not

    Test amaçlarıyla kümedeki mevcut bir keytab dosyasını doğrudan kullanabilirsiniz. Ancak mevcut hizmet keytab dosyalarını değiştirmeyin veya yeniden dışa aktarmayın. Aksi takdirde orijinal hizmetler kullanılamaz hale gelebilir.

    klist -kt /etc/taihao-apps/hive-conf/keytab/hive.keytab
    kinit -kt /etc/taihao-apps/hive-conf/keytab/hive.keytab hive/master-1-1.c-596f1842f3ed8ad0.cn-hangzhou.emr.aliyuncs.com@EMR.C-596F1842F3ED8AD0.COM
  3. Mevcut Kerberos biletlerini görüntüleyin.

    klist
  4. Kyuubi Ağ Geçidine bağlanmak ve bir Spark işi başlatmak için kyuubi-beeline veya spark-beeline kullanın.

    kyuubi-beeline -u 'jdbc:hive2://ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com:10009/;principal=kyuubi/_HOST@EMR.C-DFD43*****7C204.COM'
    Not
    • ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com değeri, "Uç Nokta Oluşturma" bölümünde elde edilen hizmet alan adıdır.

    • Varsayılan bağlantı noktası numarası 10009'dur.

    • principal, Kyuubi hizmetinin asıl kullanıcısıdır. <fqdn> kısmı _HOST olarak basitleştirilebilir; yani kyuubi/_HOST@EMR.C-DFD43*****7C204.COM.

  5. Bağlantı kurulduktan sonra show databases komutunu çalıştırın.

    2025-08-21 14:55:18.392 INFO KyuubiSessionManager-exec-pool: Thread-83 org.apache.kyuubi.operation.ExecuteState STATE -> FINISHED_STATE, time taken: 0.301 seconds
    2025-08-21 14:55:18.393 INFO nioEventLoopGroup-3-1 org.apache.kyuubi.websocket.MessageSender: [KyuubiSqlStateme success!
    2025-08-21 14:55:18.418 INFO nioEventLoopGroup-3-1 org.apache.kyuubi.websocket.MessageSender: channel listener
    2025-08-21 14:55:18.420 INFO nioEventLoopGroup-3-1 org.apache.kyuubi.websocket.WebSocketClientHandler: channel: !
    +------------+
    | namespace  |
    +------------+
    | default    |
    +------------+
    1 row selected (0.539 seconds)

SSS

  1. Kerberos özellikli HDFS hizmetine nasıl bağlanırım?

HDFS hizmetinin bulunduğu kümedeki HADOOP-COMMON veya HDFS bileşeninin core-site.xml yapılandırma dosyasını değiştirmeniz gerekir. kyuubi kullanıcısının HDFS/HMS hizmetlerine erişirken diğer kullanıcıların kimliğine bürünmesine (impersonate) izin vermek için dosyaya aşağıdaki özellikleri ekleyin. Aksi takdirde bağlantı başarısız olabilir. Özellikleri ekledikten sonra HDFS/HMS hizmetini yeniden başlatın. EMR DataLake kümelerinin daha yeni sürümleri bu özellikleri zaten varsayılan olarak içerir.

hadoop.proxyuser.kyuubi.hosts = *
hadoop.proxyuser.kyuubi.groups = *

Ayrıca aşağıdaki Spark configurations ayarlarını da eklemeniz gerekir.

spark.kerberos.access.hadoopFileSystems hdfs://hdfs-cluster
  1. Kyuubi'ye Kerberos kimlik doğrulaması olmadan iş göndermek ve yalnızca Spark işleri HMS'e erişirken Kerberos kimlik doğrulaması yapmak için ne yapmalıyım?

Kyuubi yapılandırmalarını aşağıdaki gibi değiştirin. Bu durumda Kyuubi'ye bağlanırken bir asıl kullanıcı belirtmenize gerek kalmaz.

kyuubi.authentication              KERBEROS,NONE
  1. Kerberos etkinleştirildikten sonra Ranger hizmetine nasıl bağlanırım?

Aşağıdaki Spark yapılandırmalarını ekleyin.

spark.ranger.plugin.enabled                      true
spark.emr.serverless.user.defined.jars           /opt/ranger/ranger-spark.jar
ranger.plugin.spark.policy.rest.url              http://master-1-1.c-xxxx.cn-hangzhou.emr.aliyuncs.com:6080
spark.files                                      oss://<bucket_name>/<path>/kyuubi.keytab
ranger.plugin.spark.policy.download.loginKeytab  true
ranger.plugin.spark.policy.download.keytab       /opt/spark/work-dir/kyuubi.keytab
ranger.plugin.spark.policy.download.principal    kyuubi/ep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.com@EMR.C-DFD43******7C204.COM


Parameter


Description


spark.files


Bu parametre, belirtilen dosyayı /opt/spark/work-dir/ dizinine indirir. Önceki adımlarda yüklediğiniz keytab dosyasının OSS yolunu girin. Yol, oss-<region-id>-internal.aliyuncs.com alan adını içermek zorunda değildir.


ranger.plugin.spark.policy.download.loginKeytab


Sabit bir değer.


ranger.plugin.spark.policy.download.keytab


Geçerli herhangi bir keytab dosyası.


ranger.plugin.spark.policy.download.principal


keytab dosyasında saklanan asıl kullanıcı. Kimlik doğrulama hatalarını önlemek için Ranger ilkelerini indirmek amacıyla bu asıl kullanıcı kullanılır.