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.
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.
Uç Nokta konsolu üzerinde oturum açın.
-
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 edilenepsrv-bp10******2j5msdeğ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. 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.-
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ı.
üzerinde oturum açın. Authoritative Zone sayfasında User-defined Zones sekmesini tıklayın ve ardından Add Zone öğesini tıklayın.
-
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.abckullanılmıştır.NotDomain 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.
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.
Record Type değerini CNAME olarak ayarlayın. Hostname için iş gereksinimlerinize göre bir değer girin. Bu örnekte
testkullanılmıştır. Record Value için uç nokta hizmeti alan adınıep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.comolarak girin. OK öğesini tıkladıktan sonra uç nokta hizmeti alan adı test.kyuubi-kerberos.abc adresine eşlenir.-
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.
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.
-
Kerberos için kadmin.local aracını başlatmak üzere aşağıdaki komutu çalıştırın.
kadmin.localMevcut asıl kullanıcıları (principals) görüntülemek için aşağıdaki komutu çalıştırın:
listprincs -
kyuubi/<fqdn>@<REALM>biçiminde bir asıl kullanıcı oluşturun.fqdnkısmı için uç nokta alan adınıep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.comkullanmanı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.abcolarak 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 -
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.COMquit -
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
(İ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
|
|
|
|
|
|
|
|
|
Yüksek kullanılabilirlik (HA) kümesinde
metastore.urisiç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.urisiçin yalnızca bir Thrift adresi belirtirseniz bir IP adresi kullanabilirsiniz. Ancakmetastore.kerberos.principaldeğerihive/<hostname of HMS>@<REALM>biçiminde olmalıdır.metastore.urisbir ana bilgisayar adı kullandığında yalnızcametastore.kerberos.principaldeğerinihive/_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.
-
(İ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.
Kerberos kümesinde oturum açma işlemiyle Kerberos kümesine bağlanın.
-
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
-
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.
NotTest 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 -
Mevcut Kerberos biletlerini görüntüleyin.
klist -
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'Notep-xxxxxxxxxxx.epsrv-xxxxxxxxxxx.cn-hangzhou.privatelink.aliyuncs.comdeğ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ı_HOSTolarak basitleştirilebilir; yanikyuubi/_HOST@EMR.C-DFD43*****7C204.COM.
-
Bağlantı kurulduktan sonra
show databaseskomutunu ç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
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
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
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|