Tüm Ürünler
Search
Belge Merkezi

E-MapReduce:Manage Kyuubi Gateways

Son Güncelleme:Oct 05, 2026

Kyuubi Gateway, Java Database Connectivity (JDBC) ve Open Database Connectivity (ODBC) arabirimleri sağlar. Bu arabirimler sayesinde Serverless Spark'ı Tableau ve Power BI gibi SQL sorgu araçlarına ve iş zekası (BI) araçlarına bağlayarak verilerinize verimli bir şekilde erişebilir ve analiz edebilirsiniz. Ağ geçidi ayrıca çok kiracılı kaynak yalıtımı özelliğiyle kurumsal uygulamaları destekler.

Kyuubi Ağ Geçidi Oluşturma

  1. Ağ Geçidi sayfasına gidin.

    1. EMR konsolu üzerinden oturum açın.

    2. Sol gezinme bölmesinde EMR Serverless > Spark seçeneklerini seçin.

    3. Spark sayfasında hedef çalışma alanının adını tıklayın.

    4. EMR Serverless Spark sayfasında sol gezinme bölmesinden O&M Center > Gateway yolunu izleyin.

  2. Kyuubi Gateway sayfasında Create Kyuubi Gateway seçeneğini tıklayın.

  3. Kyuubi Ağ Geçidi Oluştur sayfasında parametreleri yapılandırın ve create seçeneğini tıklayın.

    Parametre

    Açıklama

    Name

    Yeni ağ geçidinin adı. Ad en fazla 64 karakter uzunluğunda olabilir ve yalnızca harfler, rakamlar, tire (-), alt çizgi (_) ve boşluk içerebilir. Bir harfle başlamalıdır.

    Kyuubi Gateway Resources

    Varsayılan değer 2 CPU, 8 GB şeklindedir.

    Desteklenen teknik özellikler ve önerilen maksimum eşzamanlılık sayısı aşağıdaki gibidir:

    • 1 CPU, 4 GB: 10

    • 2 CPU, 8 GB: 20

    • 4 CPU, 16 GB: 30

    • 8 CPU, 32 GB: 45

    • 16 CPU, 64 GB: 85

    • 32 CPU, 128 GB: 135

    Not

    Birçok Spark yapılandırma öğesi, Spark görevleri için anlık gönderim eşzamanlılığını azaltabilir.

    Kyuubi Version

    Geçerli ağ geçidi tarafından kullanılan Kyuubi sürümü.

    Not

    Catalogs bölümünde DLF (eski adıyla DLF 2.5) kullanıyorsanız Kyuubi Version ayarını 1.9.2-0.0.1 veya daha yeni bir sürüme ayarlamanız gerekir.

    Engine Version

    Geçerli ağ geçidi tarafından kullanılan altyapı sürümü. Altyapı sürüm numaraları hakkında daha fazla bilgi için bkz. Engine versions.

    Associated Queue

    Oluşturulan ağ geçidi seçili kuyrukta dağıtılır. Ağ geçidi üzerinden bir Spark görevi gönderdiğinizde görev, ağ geçidi oluşturucusunun kimliği kullanılarak gönderilir.

    Authentication Method

    Yalnızca belirteç tabanlı kimlik doğrulama desteklenir.

    Bir ağ geçidi oluşturduktan sonra bu ağ geçidi için benzersiz bir kimlik doğrulama belirteci oluşturmanız gerekir. Bu belirteç, sonraki isteklerde kimlik doğrulama ve erişim kontrolü için kullanılır. Belirteç oluşturma hakkında daha fazla bilgi için bkz. Gateway management.

    Service High Availability

    Hizmet yüksek kullanılabilirliğini (HA) etkinleştirdikten sonra yüksek kullanılabilirliği sağlamak üzere üç veya daha fazla Kyuubi Sunucusu dağıtılır.

    Bu anahtarı açtıktan sonra aşağıdaki parametreleri de yapılandırmanız gerekir:

    • Number of Kyuubi Servers: Kyuubi sunucularının sayısı.

    • Zookeeper cluster address: Yüksek kullanılabilirliğe sahip bir Kyuubi Ağ Geçidi bir Zookeeper kümesine bağlıdır. Zookeeper kümesi uç noktasını girin. Birden çok düğümü virgül (,) ile ayırın. Ağ bağlantısının kurulduğundan emin olun. Örneğin: zk1:2181,zk2:2181,zk3:2181.

    Network Connection

    Bir VPC'deki veri kaynaklarına veya harici hizmetlere erişmek için mevcut bir ağ bağlantısı. Daha fazla bilgi için bkz. Network connectivity between EMR Serverless Spark and other VPCs.

    Endpoint(Public)

    Bu özellik varsayılan olarak devre dışıdır. Bu özelliği etkinleştirirseniz sistem Kyuubi'ye genel bir uç nokta üzerinden erişir. Aksi takdirde Kyuubi'ye varsayılan olarak aynı bölgedeki dahili uç nokta üzerinden erişilir.

    Kyuubi Configuration

    Kyuubi yapılandırma bilgilerini girin. Parametreler varsayılan olarak boşluklarla ayrılır. Örneğin: kyuubi.engine.pool.size 1.

    Yalnızca aşağıdaki Kyuubi yapılandırmaları desteklenir.

    kyuubi.engine.pool.size
    kyuubi.engine.pool.size.threshold
    kyuubi.engine.share.level
    kyuubi.engine.single.spark.session
    kyuubi.session.engine.idle.timeout
    kyuubi.session.engine.initialize.timeout
    kyuubi.engine.security.token.max.lifetime
    kyuubi.session.engine.check.interval
    kyuubi.session.idle.timeout
    kyuubi.session.engine.request.timeout
    kyuubi.session.engine.login.timeout
    kyuubi.backend.engine.exec.pool.shutdown.timeout
    kyuubi.backend.server.exec.pool.shutdown.timeout
    kyuubi.backend.server.exec.pool.keepalive.time
    kyuubi.frontend.thrift.login.timeout
    kyuubi.operation.status.polling.timeout
    kyuubi.engine.pool.selectPolicy
    kyuubi.authentication
    kyuubi.kinit.principal
    kyuubi.kinit.keytab
    kyuubi.authentication.ldap.*
    kyuubi.hadoop.proxyuser.hive.hosts
    kyuubi.hadoop.proxyuser.hive.groups
    kyuubi.hadoop.proxyuser.kyuubi.hosts
    kyuubi.hadoop.proxyuser.kyuubi.groups
    kyuubi.ha.*

    Spark Configuration

    Spark yapılandırma bilgilerini girin. Parametreler varsayılan olarak boşluklarla ayrılır. spark.kubernetes.* türündeki parametreler hariç tüm parametreler desteklenir. Örneğin: spark.sql.catalog.paimon.metastore dlf.

  4. Kyuubi Ağ Geçidi sayfasında oluşturduğunuz ağ geçidini bulun ve İşlemler sütunundaki START seçeneğini tıklayın.

Belirteçleri yönetme

  1. Kyuubi Gateway sayfasında hedef ağ geçidini bulun ve İşlemler sütunundaki Token Management seçeneğini tıklayın.

  2. Create Token seçeneğini tıklayın.

  3. Create Token iletişim kutusunda parametreleri yapılandırın ve OK seçeneğini tıklayın.

    Parametre

    Açıklama

    Name

    Yeni belirtecin adı.

    Expired At

    Belirteç için yaşam süresini (TTL) ayarlayın. Gün sayısı 1 veya daha büyük olmalıdır. Bu özellik varsayılan olarak etkindir ve belirteç 365 gün sonra sona erer.

    Assign Object

    Not
    • Catalogs sekmesinde varsayılan olarak DLF (eski adıyla DLF 2.5) kullanıyorsanız bu parametreyi yapılandırmanız gerekir.

    • Yapılandırılan Resource Access Management (RAM) kullanıcısının veya RAM rolünün DLF'ye erişim izinlerine sahip olduğundan emin olun. İzinlerin nasıl verileceği hakkında daha fazla bilgi için bkz. Add an authorization.

    • RAM kullanıcısı veya RAM rolü Assign Object açılır listesinde görünmeden önce Spark çalışma alanına eklenmelidir. Daha fazla bilgi için bkz. Manage users and roles.

    Açılır listeden Access Control bölümünde eklediğiniz RAM kullanıcısını veya RAM rolünü seçin.

    Belirtecin atanacağı RAM kullanıcısını veya RAM rolünü belirtin. Bu kullanıcı veya rol, bir Spark görevi göndermek için Kyuubi Ağ Geçidine bağlandığınızda DLF'ye erişmek için kullanılır.

  4. Belirteç bilgilerini kopyalayın.

    Önemli

    Bir belirteç oluşturulduktan sonra belirteç bilgilerini hemen kopyalamanız gerekir çünkü daha sonra bu bilgileri görüntüleyemezsiniz. Bir belirtecin süresi dolarsa veya kaybolursa belirteci yeniden oluşturmanız veya sıfırlamanız gerekir.

Kyuubi Ağ Geçidine Bağlanma

Kyuubi Ağ Geçidine bağlanırken JDBC URL'sindeki yer tutucuları gerçek bilgilerinizle değiştirin:

  • <endpoint>: Overview sekmesinden elde edebileceğiniz uç nokta.

  • <port>: Bağlantı noktası numarası. Genel uç nokta erişimi için 443 bağlantı noktasını, aynı bölgedeki dahili uç nokta erişimi için 80 bağlantı noktasını kullanın.

  • <token>: Token Management sekmesinden kopyaladığınız belirteç.

  • <tokenname>: Belirteç adı. Adı Token Management sekmesinden elde edebilirsiniz.

  • <UserName/RoleName>: Access Control bölümünde eklediğiniz RAM kullanıcısı veya RAM rolü.

Beeline kullanarak bağlanma

Kyuubi Ağ Geçidine bağlanırken Beeline sürümünüzün Kyuubi sunucu tarafı sürümüyle uyumlu olduğundan emin olun. Beeline yüklü değilse bkz. Getting Started - Apache Kyuubi.

Catalogs sayfasında kullanılan varsayılan kataloga bağlı olarak aşağıdaki işlemlerden birini gerçekleştirin.

DLF Kullanma (eski adıyla DLF 2.5)

beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;user=<UserName/RoleName>;httpPath=cliservice/token/<token>"

Diğer katalogları kullanma

beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>"

Beeline kullanarak bağlanırken oturum parametrelerini değiştirebilirsiniz. Örneğin: beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;#spark.sql.shuffle.partitions=100;spark.executor.instances=2;".

Java kullanarak bağlanma

  • pom.xml dosyasını güncelleyin.

    hadoop-common ve hive-jdbc bağımlılıklarını uygun sürümlerle değiştirin.

    <dependencies>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>3.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hive</groupId>
                <artifactId>hive-jdbc</artifactId>
                <version>2.3.9</version>
            </dependency>
        </dependencies>
  • Kyuubi Ağ Geçidine bağlanmak için Java kodu yazın.

    Catalogs sayfasında kullanılan varsayılan kataloga bağlı olarak aşağıdaki işlemlerden birini gerçekleştirin.

    DLF Kullanma (eski adıyla DLF 2.5)

    import org.apache.hive.jdbc.HiveStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            String url = "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;user=<UserName/RoleName>";
            Class.forName("org.apache.hive.jdbc.HiveDriver");
            Connection conn = DriverManager.getConnection(url);
            HiveStatement stmt = (HiveStatement) conn.createStatement();
    
            String sql = "select * from students;";
            System.out.println("Running " + sql);
            ResultSet res = stmt.executeQuery(sql);
    
            ResultSetMetaData md = res.getMetaData();
            String[] columns = new String[md.getColumnCount()];
            for (int i = 0; i < columns.length; i++) {
                columns[i] = md.getColumnName(i + 1);
            }
            while (res.next()) {
                System.out.print("Row " + res.getRow() + "=[");
                for (int i = 0; i < columns.length; i++) {
                    if (i != 0) {
                        System.out.print(", ");
                    }
                    System.out.print(columns[i] + "='" + res.getObject(i + 1) + "'");
                }
                System.out.println(")]");
            }
    
            conn.close();
        }
    }

    Diğer katalogları kullanma

    import org.apache.hive.jdbc.HiveStatement;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    
    public class Main {
        public static void main(String[] args) throws Exception {
            String url = "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>";
            Class.forName("org.apache.hive.jdbc.HiveDriver");
            Connection conn = DriverManager.getConnection(url);
            HiveStatement stmt = (HiveStatement) conn.createStatement();
    
            String sql = "select * from students;";
            System.out.println("Running " + sql);
            ResultSet res = stmt.executeQuery(sql);
    
            ResultSetMetaData md = res.getMetaData();
            String[] columns = new String[md.getColumnCount()];
            for (int i = 0; i < columns.length; i++) {
                columns[i] = md.getColumnName(i + 1);
            }
            while (res.next()) {
                System.out.print("Row " + res.getRow() + "=[");
                for (int i = 0; i < columns.length; i++) {
                    if (i != 0) {
                        System.out.print(", ");
                    }
                    System.out.print(columns[i] + "='" + res.getObject(i + 1) + "'");
                }
                System.out.println(")]");
            }
    
            conn.close();
        }
    }

Python kullanarak bağlanma

  1. PyHive ve Thrift paketlerini yüklemek için aşağıdaki komutu çalıştırın.

    pip3 install pyhive thrift
  2. Kyuubi Ağ Geçidine bağlanmak için bir Python betiği yazın.

    Aşağıdaki örnekte bir Kyuubi Ağ Geçidine bağlanan ve veritabanı listesini gösteren bir Python betiği gösterilmektedir.

    Catalogs sayfasında kullanılan varsayılan kataloga bağlı olarak aşağıdaki işlemlerden birini gerçekleştirin.

    DLF Kullanma (eski adıyla DLF 2.5)

    from pyhive import hive
    
    if __name__ == '__main__':
        cursor = hive.connect('<endpoint>',
                              port="<port>",
                              scheme='http',
                              username='<UserName/RoleName>',
                              password='<token>').cursor()
        cursor.execute('show databases')
        print(cursor.fetchall())
        cursor.close()

    Diğer katalogları kullanma

    from pyhive import hive
    
    if __name__ == '__main__':
        cursor = hive.connect('<endpoint>',
                              port="<port>",
                              scheme='http',
                              username='<tokenname>',
                              password='<token>').cursor()
        cursor.execute('show databases')
        print(cursor.fetchall())
        cursor.close()

REST API kullanarak bağlanma

Kyuubi Gateway, HTTP üzerinden Kyuubi hizmetiyle etkileşimi destekleyen açık kaynak uyumlu REST API'leri sağlar. Şu anda yalnızca aşağıdaki API yolları desteklenmektedir:

  • /api/v1/sessions/*

  • /api/v1/operations/*

  • /api/v1/batches/*

Aşağıdaki örneklerde REST API kullanılarak bir Kyuubi Ağ Geçidine nasıl bağlanılacağı gösterilmektedir.

  • Örnek 1: Oturum başlatma ve SQL sorgusu gerçekleştirme.

    1. Bir oturum oluşturun ve Spark yapılandırmalarını belirtin.

      Catalogs sayfasında kullanılan varsayılan kataloga bağlı olarak aşağıdaki işlemlerden birini gerçekleştirin.

      Not
      • spark.emr.serverless.kyuubi.engine.queue parametresi Spark görevinin çalışma zamanında kullandığı kuyruğu belirtir. <dev_queue> yer tutucusunu gerçek kuyruk adıyla değiştirin.

      • <UserName/Rolename> yer tutucusunu gerçek kullanıcı adı veya rol adıyla değiştirin.

      • <password> bir yer tutucudur. Herhangi bir değer girebilirsiniz.

      DLF Kullanma (eski adıyla DLF 2.5)

      curl -X 'POST' \
        'http://<endpoint>:<port>/api/v1/sessions/token/<token>' \
        -H 'accept: application/json' \
        -H 'Content-Type: application/json' \
        -u '<UserName/Rolename>:<password>' \
        -d '{
        "configs": {
          "set:hivevar:spark.emr.serverless.kyuubi.engine.queue": "<dev_queue>"
        }
      }'

      Diğer katalogları kullanma

      curl -X 'POST' \
        'http://<endpoint>:<port>/api/v1/sessions/token/<token>' \
        -H 'accept: application/json' \
        -H 'Content-Type: application/json' \
        -d '{
        "configs": {
          "set:hivevar:spark.emr.serverless.kyuubi.engine.queue": "<dev_queue>"
        }
      }'

      Aşağıdakine benzer bir ileti döndürülür. İletideki identifier değeri, bir oturumu benzersiz şekilde tanımlayan Kyuubi oturum tanıtıcısıdır. Bu konuda bu değer <sessionHandle> olarak adlandırılır.

      {"identifier":"619e6ded-xxxx-xxxx-xxxx-c2a43f6fac46","kyuubiInstance":"0.0.0.0:10099"}
    2. Bir ifade oluşturun.

      DLF Kullanma (eski adıyla DLF 2.5)

      curl -X 'POST' \
        'http://<endpoint>:<port>/api/v1/sessions/<sessionHandle>/operations/statement/token/<token>' \
        -H 'accept: application/json' \
        -H 'Content-Type: application/json' \
        -u '<UserName/RoleName>:<password>' \
        -d '{
        "statement": "select * from test;",
        "runAsync": true,
        "queryTimeout": 0,
        "confOverlay": {
          "additionalProp1": "string",
          "additionalProp2": "string"
        }
      }'

      Diğer katalogları kullanma

      curl -X 'POST' \
        'http://<endpoint>:<port>/api/v1/sessions/<sessionHandle>/operations/statement/token/<token>' \
        -H 'accept: application/json' \
        -H 'Content-Type: application/json' \
        -d '{
        "statement": "select * from test;",
        "runAsync": true,
        "queryTimeout": 0,
        "confOverlay": {
          "additionalProp1": "string",
          "additionalProp2": "string"
        }
      }'

      Aşağıdakine benzer bir ileti döndürülür. İletideki identifier değeri, belirli bir işlemi benzersiz şekilde tanımlayan Kyuubi işlem tanıtıcısıdır. Bu konuda bu değer <operationHandle> olarak adlandırılır.

      {"identifier":"a743e8ff-xxxx-xxxx-xxxx-a66fec66cfa4"}
    3. İfade durumunu alın.

      DLF Kullanma (eski adıyla DLF 2.5)

      curl --location -X 'GET' \
        'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/event/token/<token>' \
        -H 'accept: application/json' \
        -u '<UserName/RoleName>:<password>'

      Diğer katalogları kullanma

      curl --location -X 'GET' \
        'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/event/token/<token>' \
        -H 'accept: application/json'
    4. İfade sonucunu alın.

      DLF Kullanma (eski adıyla DLF 2.5)

      curl --location -X 'GET' \
        'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/rowset/token/<token>/?maxrows=100&fetchorientation=FETCH_NEXT' \
        -H 'accept: application/json'  \
        -u '<UserName/RoleName>:<password>'

      Diğer katalogları kullanma

      curl --location -X 'GET' \
        'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/rowset/token/<token>/?maxrows=100&fetchorientation=FETCH_NEXT' \
        -H 'accept: application/json'
  • Örnek 2: Toplu iş API'sini kullanarak toplu iş gönderme.

    REST API kullanarak bir Spark toplu işleme görevini Kyuubi Ağ Geçidine gönderin. Kyuubi Ağ Geçidi, istekteki parametrelere dayalı olarak bir Spark uygulaması başlatır ve belirtilen görevi yürütür.

    Bu örnekte <endpoint>, <port> ve <token> gibi bilgileri değiştirmenin yanı sıra test JAR paketini indirmek için spark-examples_2.12-3.3.1.jar bağlantısını tıklamanız gerekir.

    Not

    Bu JAR paketi, Pi (π) değerini hesaplamak için kullanılan ve Spark ile birlikte sağlanan basit bir örnektir.

    DLF Kullanma (eski adıyla DLF 2.5)

    curl --location \
      --request POST 'http://<endpoint>:<port>/api/v1/batches/token/<token>' \
      --user '<UserName/RoleName>:<password>' \
      --form 'batchRequest="{
        \"batchType\": \"SPARK\",
        \"className\": \"org.apache.spark.examples.SparkPi\",
        \"name\": \"kyuubi-spark-pi\",
        \"resource\": \"oss://bucket/path/to/spark-examples_2.12-3.3.1.jar\"
      }";type=application/json'

    Diğer katalogları kullanma

    curl --location \
      --request POST 'http://<endpoint>:<port>/api/v1/batches/token/<token>' \
      --form 'batchRequest="{
        \"batchType\": \"SPARK\",
        \"className\": \"org.apache.spark.examples.SparkPi\",
        \"name\": \"kyuubi-spark-pi\",
        \"resource\": \"oss://bucket/path/to/spark-examples_2.12-3.3.1.jar\"
      }";type=application/json'

Apache Superset kullanarak bağlanma

Apache Superset, zengin grafik çeşitliliğine sahip modern bir veri keşfi ve görselleştirme platformudur. Superset hakkında daha fazla bilgi için Superset belgelerine bakın.

Not

Superset kullanarak bir Kyuubi Ağ Geçidine bağlanmadan önce Thrift 0.20.0 veya daha yeni bir sürümü yüklediğinizden emin olun. Yüklemediyseniz aşağıdaki komutu çalıştırarak yükleyin:

pip install thrift==0.20.0
  1. Superset'i başlatın ve Superset arayüzüne gidin. Superset'in nasıl başlatılacağı hakkında daha fazla bilgi için bkz. Superset documentation.

  2. Sayfanın sağ üst köşesinde veritabanına bağlanma sayfasına gitmek için DATABASE seçeneğini tıklayın.

  3. Veritabanına bağlanma sayfasında Apache Spark SQL seçeneğini seçin.

  4. SQLAlchemy URI alanında erişim yöntemine karşılık gelen bağlantı dizesini girin.

    Genel ağ erişimi

    hive+https://<username>:<token>@<endpoint>:443/<db_name>

    VPC ağ erişimi

    hive+http://<username>:<token>@<endpoint>:80/<db_name>

    Parametreler aşağıdaki tabloda açıklanmıştır.


    Parametre


    Açıklama


    username


    Kullanıcı adı. Herhangi bir değer girebilirsiniz.


    Token


    Erişim belirteci.


    Endpoint


    Kyuubi Ağ Geçidinin erişim uç noktası. Genel uç nokta ile dahili uç nokta arasında ayrım yapmanız gerekir.


    db_name


    Veritabanı adı.

  5. Bağlantı yapılandırmasını tamamlamak için Connect seçeneğini tıklayın.

HUE kullanarak bağlanma

Not

HUE kullanarak bir Kyuubi Ağ Geçidine bağlanmadan önce Thrift 0.20.0 sürümünü yüklediğinizden emin olun. Yüklemediyseniz aşağıdaki komutu çalıştırarak yükleyin:

pip install thrift==0.20.0
  1. HUE yapılandırma dosyasını /etc/hue/hue.conf düzenleyin ve erişim yönteminize karşılık gelen yapılandırmayı ekleyin.

    Genel ağ erişimi

    [[[sparksql]]]
         name = Spark Sql
         interface=sqlalchemy
         options='{"url": "hive+https://<username>:<token>@<endpoint>:443/"}'

    VPC ağ erişimi

    [[[sparksql]]]
         name = Spark Sql
         interface=sqlalchemy
         options='{"url": "hive+http://<username>:<token>@<endpoint>:80/"}'

    Parametreler aşağıdaki tabloda açıklanmıştır.


    Parametre


    Açıklama


    username


    Kullanıcı adı. Herhangi bir değer girebilirsiniz.


    Token


    Erişim belirteci.


    Endpoint


    Kyuubi Ağ Geçidinin erişim uç noktası.

  2. HUE hizmetini yeniden başlatın.

    sudo service hue restart
  3. HUE web kullanıcı arayüzünde oturum açın. Sol gezinme bölmesinde bağlantıyı doğrulamak için Query > Editor > SparkSql yolunu izleyin.

DataGrip kullanarak bağlanma

Not

DataGrip kullanarak bir Kyuubi Ağ Geçidine bağlanmadan önce Apache Spark JDBC Driver'ı (Spark 3.x uyumluluğu için sürüm 1.2.2) indirdiğinizden emin olun.

  1. DataGrip'i açın ve yeni bir proje oluşturun.

  2. Sağ taraftaki Database Explorer panelinde + simgesini tıklayın ve Data Source > Other > Apache Spark seçeneklerini seçin.

  3. Data Sources and Drivers iletişim kutusunda aşağıdaki parametreleri yapılandırın.

    Parametre

    Açıklama

    Name

    Özel bir bağlantı adı.

    Authentication

    No auth veya User & Password seçeneğini seçin. Herhangi bir kullanıcı adı girebilirsiniz.

    Driver

    Apache Spark ver. 1.2.2 seçeneğini seçin.

    URL

    Genel ağ erişimi

    jdbc:hive2://<endpoint>:443/;transportMode=http;httpPath=cliservice/token/<token>

    VPC ağ erişimi

    jdbc:hive2://<endpoint>:80/;transportMode=http;httpPath=cliservice/token/<token>

    Burada <endpoint> Kyuubi Ağ Geçidinin erişim uç noktasıdır ve <token> erişim belirtecidir.

  4. Bağlantıyı doğrulamak için Test Connection seçeneğini tıklayın. Succeeded mesajı görüntülenirse bağlantı testi başarılı olmuştur.

  5. Yapılandırmayı kaydetmek için OK seçeneğini tıklayın.

Yüksek kullanılabilirliğe sahip bir Kyuubi Ağ Geçidini yapılandırma ve bağlanma

  1. Bir ağ bağlantısı kurun.

    Ağ bağlantısı kurmak için bkz. Establish network connectivity between EMR Serverless Spark and other VPCs. İstemcinizin hedef VPC'deki Zookeeper kümesine erişebildiğinden emin olun. Örneğin Alibaba Cloud MSE veya EMR on ECS üzerindeki Zookeeper bileşenini kullanabilirsiniz.

  2. Kyuubi Ağ Geçidi için yüksek kullanılabilirliği etkinleştirin.

    Bir Kyuubi Ağ Geçidi oluştururken veya düzenlerken Service High Availability seçeneğini etkinleştirin, ilgili parametreleri yapılandırın ve Network Connection için kurulan ağ bağlantısını seçin.

  3. Yüksek kullanılabilirliğe sahip Kyuubi Ağ Geçidine bağlanın.

    Önceki yapılandırmaları tamamladıktan sonra Kyuubi Ağ Geçidi Zookeeper kullanarak yüksek kullanılabilirlik sağlar. Kullanılabilirliği bir REST API veya JDBC bağlantısı kullanarak doğrulayabilirsiniz.

    Kyuubi Ağ Geçidine bağlanırken JDBC URL'sindeki yer tutucuları gerçek bilgilerinizle değiştirin:

    • <endpoint>: Overview sekmesinden elde edebileceğiniz uç nokta.

    • <port>: Bağlantı noktası numarası. Genel uç nokta erişimi için 443 bağlantı noktasını, aynı bölgedeki dahili uç nokta erişimi için 80 bağlantı noktasını kullanın.

    • <token>: Token Management sekmesinden kopyaladığınız belirteç.

    • <tokenname>: Belirteç adı. Adı Token Management sekmesinden elde edebilirsiniz.

    • <UserName/RoleName>: Access Control bölümünde eklediğiniz RAM kullanıcısı veya RAM rolü.

    Aşağıdaki örneklerde yüksek kullanılabilirliğe sahip bir Kyuubi Ağ Geçidine nasıl bağlanılacağı gösterilmektedir.

    Beeline kullanarak bağlanma

    1. JDBC Sürücü JAR dosyasını indirmek için kyuubi-hive-jdbc-1.9.2.jar bağlantısını tıklayın.

    2. JDBC Sürücü JAR dosyasını değiştirin.

      1. Orijinal JDBC Sürücü JAR dosyasını yedekleyin ve taşıyın.

        mv /your_path/apache-kyuubi-1.9.2-bin/beeline-jars /bak_path
        Not

        EMR on ECS kullanıyorsanız Kyuubi için varsayılan yol /opt/apps/KYUUBI/kyuubi-1.9.2-1.0.0/beeline-jars şeklindedir. Kyuubi yükleme yolundan emin değilseniz env | grep KYUUBI_HOME komutunu çalıştırarak yolu bulabilirsiniz.

      2. Yeni JDBC Sürücü JAR dosyasıyla değiştirin.

        cp /download/serverless-spark-kyuubi-hive-jdbc-1.9.2.jar /your_path/apache-kyuubi-1.9.2-bin/beeline-jars
    3. Beeline kullanarak bağlanın.

      /your_path/apache-kyuubi-1.9.2-bin/bin/beeline -u 'jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>'

    Java kullanarak bağlanma

    1. Gölge paketi indirmek için serverless-spark-kyuubi-hive-jdbc-shaded-1.9.2.jar bağlantısını tıklayın.

    2. JDBC Sürücüsünü Maven deposuna yükleyin.

      Serverless Spark tarafından sağlanan JDBC Sürücüsünü yerel Maven deponuza yüklemek için aşağıdaki komutu çalıştırın.

      mvn install:install-file \
        -Dfile=/download/serverless-spark-kyuubi-hive-jdbc-shaded-1.9.2.jar \
        -DgroupId=org.apache.kyuubi \
        -DartifactId=kyuubi-hive-jdbc-shaded \
        -Dversion=1.9.2-ss \
        -Dpackaging=jar
    3. pom.xml dosyasını değiştirin.

      Projenizin pom.xml dosyasına aşağıdaki bağımlılıkları ekleyin.

      <dependencies>
          <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-common</artifactId>
            <version>3.0.0</version>
          </dependency>
          <dependency>
            <groupId>org.apache.kyuubi</groupId>
            <artifactId>kyuubi-hive-jdbc-shaded</artifactId>
            <version>1.9.2-ss</version>
          </dependency>
      </dependencies>
    4. Örnek Java kodunu yazın.

      import org.apache.kyuubi.jdbc.hive.KyuubiStatement;
      
      import java.sql.Connection;
      import java.sql.DriverManager;
      import java.sql.ResultSet;
      import java.sql.ResultSetMetaData;
      
      public class Main {
          public static void main(String[] args) throws Exception {
              String url = "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>";
              Class.forName("org.apache.kyuubi.jdbc.KyuubiHiveDriver");
              Connection conn = DriverManager.getConnection(url);
              KyuubiStatement stmt = (KyuubiStatement) conn.createStatement();
      
              String sql = "select * from test;";
              ResultSet res = stmt.executeQuery(sql);
      
              ResultSetMetaData md = res.getMetaData();
              String[] columns = new String[md.getColumnCount()];
              for (int i = 0; i < columns.length; i++) {
                  columns[i] = md.getColumnName(i + 1);
              }
              while (res.next()) {
                  System.out.print("Row " + res.getRow() + "=[");
                  for (int i = 0; i < columns.length; i++) {
                      if (i != 0) {
                          System.out.print(", ");
                      }
                      System.out.print(columns[i] + "='" + res.getObject(i + 1) + "'");
                  }
                  System.out.println(")]");
              }
      
              conn.close();
          }
      }

Kyuubi tarafından gönderilen Spark görevlerinin listesini görüntüleme

Kyuubi üzerinden gönderilen Spark görevlerinin ayrıntılarını Job History sayfasının Kyuubi Application sekmesinde görüntüleyebilirsiniz. Ayrıntılar arasında ID, Name, Application Status ve Started At bilgileri yer alır. Bu bilgiler, Kyuubi tarafından gönderilen Spark görevlerini hızlı bir şekilde anlamanıza ve yönetmenize yardımcı olur.

  1. Kyuubi Gateway sayfasında hedef Kyuubi Ağ Geçidinin adını tıklayın.

  2. Sağ üst köşede Applications seçeneğini tıklayın.

    Sayfada uygulama adı, uygulama durumu, başlangıç zamanı, süre, bitiş zamanı ve kaynak kuyruğu görüntülenir. İşlemler sütununda Stop, Details ve Spark UI bağlantıları bulunur.

    Bu sayfada bu Kyuubi örneği üzerinden gönderilen tüm Spark görevlerinin ayrıntılarını görüntüleyebilirsiniz. ID (spark-xxxx) Spark altyapısı tarafından oluşturulur ve Kyuubi istemcisine bağlandığınızda görüntülenen Uygulama Kimliği ile aynıdır. Bir görev örneğini benzersiz şekilde tanımlar.

    show tables komutunu çalıştırdıktan sonra Kyuubi Beeline istemcisi tarafından çıktılanan Spark uygulama bilgileri aşağıdaki gibidir. Uygulama kimliği ilgili uygulama kimliğidir:

    Beeline version 1.9.2 by Apache Kyuubi
    0: jdbc:hive2://emr-spark-kyuubi-gateway-cn-s> show tables;
    2025-03-12 15:54:52.110 INFO KyuubiSessionManager-exec-pool: Thread-13802 org.apache.kyuubi.operation.ExecuteStatemen
    -> RUNNING_STATE, statement:
    show tables
    2025-03-12 15:54:52 INFO  [SparkSQLSessionManager-exec-pool: Thread-93] ExecuteStatement:64 - Processing anonymous's t:
    show tables
    2025-03-12 15:54:52 INFO  [SparkSQLSessionManager-exec-pool: Thread-93] ExecuteStatement:64 -
        Spark application name: kyuubi_USER_SPARK_SQL_anonymous_default_1750bae2-axxx
        application ID: spark-1c2d1a31xxx
        application web UI: http://21.13xxx
        master: k8s://https://kubernetes.default:6443
        deploy mode: cluster
        version: 3.5.2-emr
        Start time: 2025-03-12T15:53:54.727
        User: anonymous