Todos os produtos
Search
Central de documentação

E-MapReduce:Gerenciar Kyuubi Gateways

Última atualização: Jul 10, 2026

O Kyuubi Gateway oferece interfaces Java Database Connectivity (JDBC) e Open Database Connectivity (ODBC). Essas interfaces permitem conectar o Serverless Spark a ferramentas de consulta SQL e de business intelligence (BI), como Tableau e Power BI, para acesso e análise eficiente de dados. O gateway também suporta aplicações empresariais por meio do recurso de isolamento de recursos multilocatário.

Criar um Kyuubi Gateway

  1. Acesse a página Gateway.

    1. Faça login no console EMR.

    2. No painel de navegação à esquerda, escolha EMR Serverless > Spark.

    3. Na página Spark, clique em nome do workspace desejado.

    4. Na página EMR Serverless Spark, clique em O&M Center > Gateway no painel de navegação à esquerda.

  2. Na página Kyuubi Gateway, clique em Create Kyuubi Gateway.

  3. Na página Crie Kyuubi Gateway, configure os parâmetros e clique em create.

    Parâmetro

    Descrição

    Name

    Nome do novo gateway. O nome pode conter apenas letras minúsculas, dígitos e hifens (-). Deve começar e terminar com uma letra ou dígito.

    Kyuubi Gateway Resources

    O valor padrão é 2 CPU, 8 GB.

    As especificações suportadas e suas respectivas concorrências máximas recomendadas são:

    • 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

    Nota

    Diversos itens de configuração do Spark podem reduzir a concorrência instantânea de envio de tarefas Spark.

    Kyuubi Version

    Versão do Kyuubi usada pelo gateway atual.

    Nota

    Se você usar o DLF (anteriormente DLF 2.5) nos Catalogs, defina a Kyuubi Version como 1.9.2-0.0.1 ou superior.

    Engine Version

    Versão do mecanismo usada pelo gateway atual. Para mais informações sobre os números de versão do mecanismo, consulte Versões do mecanismo.

    Associated Queue

    O gateway criado será implantado na fila selecionada. Ao enviar uma tarefa Spark pelo gateway, a tarefa usa a identidade do criador do gateway.

    Authentication Method

    Há suporte apenas para autenticação baseada em token.

    Após criar um gateway, gere um token de autenticação exclusivo para ele. Esse token serve para verificação de identidade e controle de acesso nas requisições subsequentes. Para mais detalhes sobre como criar um token, consulte Gerenciamento de gateway.

    High Service Availability

    Ao ativar a alta disponibilidade (HA) do serviço, três ou mais Kyuubi Servers são implantados para garantir a HA.

    Ao ativar essa opção, configure também os seguintes parâmetros:

    • Number of Kyuubi Servers: Quantidade de servidores Kyuubi.

    • Zookeeper cluster address: Um Kyuubi Gateway de alta disponibilidade depende de um cluster Zookeeper. Insira o endpoint do cluster Zookeeper. Separe vários nós por vírgulas (,). Certifique-se de que haja conectividade de rede. Exemplo: zk1:2181,zk2:2181,zk3:2181.

    Normal Network Connection

    Selecione uma conexão de rede existente para acessar fontes de dados em uma VPC ou serviços externos. Para mais informações sobre como criar uma conexão de rede, consulte Conectividade de rede entre o EMR Serverless Spark e outras VPCs.

    Endpoint(Public)

    Este recurso está desativado por padrão. Se ativado, o sistema acessa o Kyuubi por meio de um endpoint público. Caso contrário, o acesso ao Kyuubi ocorre via endpoint interno da mesma região.

    Kyuubi Configuration

    Insira as informações de configuração do Kyuubi. Por padrão, os parâmetros são separados por espaços. Exemplo: kyuubi.engine.pool.size 1.

    Há suporte apenas para as seguintes configurações do Kyuubi.

    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

    Insira as informações de configuração do Spark. Por padrão, os parâmetros são separados por espaços. Há suporte para todos os parâmetros, exceto os do tipo spark.kubernetes.*. Exemplo: spark.sql.catalog.paimon.metastore dlf.

  4. Na página Kyuubi Gateway, localize o gateway criado e clique em START na coluna Actions.

Gerenciar tokens

  1. Na página Kyuubi Gateway, localize o gateway desejado e clique em Token Management na coluna Actions.

  2. Clique em Create Token.

  3. Na caixa de diálogo Create Token, configure os parâmetros e clique em OK.

    Parâmetro

    Descrição

    Name

    Nome do novo token.

    Expired At

    Defina o tempo de vida (TTL) do token. O número de dias deve ser maior ou igual a 1. Por padrão, este recurso está ativado e o token expira após 365 dias.

    Assign Object

    Nota
    • Se você usar o DLF (anteriormente DLF 2.5) por padrão na aba Catalogs, configure este parâmetro.

    • Certifique-se de que o usuário ou função do Resource Access Management (RAM) configurado tenha permissões para acessar o DLF. Para mais informações sobre como conceder permissões, consulte Adicionar uma autorização.

    • O usuário ou função RAM deve ser adicionado ao workspace Spark antes de aparecer na lista suspensa Assign Object. Para mais informações, consulte Gerenciar usuários e funções.

    Na lista suspensa, selecione o usuário ou função RAM adicionado em Access Control.

    Especifique o usuário ou função RAM ao qual o token será atribuído. Esse usuário ou função é usado para acessar o DLF quando você se conecta ao Kyuubi Gateway para enviar uma tarefa Spark.

  4. Copie as informações do token.

    Importante

    Após a criação de um token, copie as informações imediatamente, pois não será possível visualizá-las novamente. Se um token expirar ou for perdido, crie ou redefina o token.

Conectar-se a um Kyuubi Gateway

Ao se conectar a um Kyuubi Gateway, substitua os placeholders na URL JDBC pelas suas informações reais:

  • <endpoint>: O endpoint obtido na aba Overview.

  • <port>: O número da porta. Use a porta 443 para acesso via endpoint público e a porta 80 para acesso via endpoint interno da mesma região.

  • <token>: O token copiado na aba Token Management.

  • <tokenname>: O nome do token. Obtenha o nome na aba Token Management.

  • <UserName/RoleName>: O usuário ou função RAM adicionado em Access Control.

Conectar usando Beeline

Ao se conectar a um Kyuubi Gateway, certifique-se de que sua versão do Beeline seja compatível com a versão do servidor Kyuubi. Se ainda não instalou o Beeline, consulte Getting Started - Apache Kyuubi.

Execute uma das seguintes operações com base no catálogo padrão usado na página Catalogs.

Usar DLF (anteriormente DLF 2.5)

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

Usar outros catálogos

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

Durante a conexão via Beeline, modifique os parâmetros de sessão. Por exemplo, beeline -u "jdbc:hive2://<endpoint>:<port>/;transportMode=http;httpPath=cliservice/token/<token>;#spark.sql.shuffle.partitions=100;spark.executor.instances=2;".

Conectar usando Java

  • Atualize o arquivo pom.xml.

    Substitua hadoop-common e hive-jdbc pelas versões de dependência apropriadas.

    <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>
  • Escreva o código Java para conectar-se ao Kyuubi Gateway.

    Execute uma das seguintes operações com base no catálogo padrão usado na página Catalogs.

    Usar DLF (anteriormente 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();
        }
    }

    Usar outros catálogos

    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();
        }
    }

Conectar usando Python

  1. Execute o comando a seguir para instalar os pacotes PyHive e Thrift.

    pip3 install pyhive thrift
  2. Escreva um script Python para conectar-se ao Kyuubi Gateway.

    O exemplo a seguir mostra um script Python que se conecta a um Kyuubi Gateway e exibe uma lista de bancos de dados.

    Execute uma das seguintes operações com base no catálogo padrão usado na página Catalogs.

    Usar DLF (anteriormente 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()

    Usar outros catálogos

    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()

Conectar usando a REST API

O Kyuubi Gateway fornece REST APIs compatíveis com open source que permitem interagir com o serviço Kyuubi via HTTP. Atualmente, há suporte apenas para os seguintes caminhos de API:

  • /api/v1/sessions/*

  • /api/v1/operations/*

  • /api/v1/batches/*

Os exemplos a seguir mostram como usar a REST API para conectar-se a um Kyuubi Gateway.

  • Exemplo 1: Iniciar uma sessão e executar uma consulta SQL.

    1. Crie uma sessão e especifique as configurações do Spark.

      Execute uma das seguintes operações com base no catálogo padrão usado na página Catalogs.

      Nota
      • spark.emr.serverless.kyuubi.engine.queue especifica a fila usada pela tarefa Spark durante a execução. Substitua <dev_queue> pelo nome real da fila.

      • Substitua <UserName/Rolename> pelo nome de usuário ou função real.

      • <password> é um placeholder. Insira qualquer valor.

      Usar DLF (anteriormente 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>"
        }
      }'

      Usar outros catálogos

      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>"
        }
      }'

      Uma mensagem semelhante à seguinte é retornada. Nela, identifier é o identificador de sessão do Kyuubi, que identifica exclusivamente uma sessão. Neste tópico, esse valor é referido como <sessionHandle>.

      {"identifier":"619e6ded-xxxx-xxxx-xxxx-c2a43f6fac46","kyuubiInstance":"0.0.0.0:10099"}
    2. Crie uma instrução.

      Usar DLF (anteriormente 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"
        }
      }'

      Usar outros catálogos

      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"
        }
      }'

      Uma mensagem semelhante à seguinte é retornada. Nela, identifier é o identificador de operação do Kyuubi, que identifica exclusivamente uma operação específica. Neste tópico, esse valor é referido como <operationHandle>.

      {"identifier":"a743e8ff-xxxx-xxxx-xxxx-a66fec66cfa4"}
    3. Recupere o status da instrução.

      Usar DLF (anteriormente 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>'

      Usar outros catálogos

      curl --location -X 'GET' \
        'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/event/token/<token>' \
        -H 'accept: application/json'
    4. Recupere o resultado da instrução.

      Usar DLF (anteriormente 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>'

      Usar outros catálogos

      curl --location -X 'GET' \
        'http://<endpoint>:<port>/api/v1/operations/<operationHandle>/rowset/token/<token>/?maxrows=100&fetchorientation=FETCH_NEXT' \
        -H 'accept: application/json'
  • Exemplo 2: Usar a batches API para enviar um job em lote.

    Envie um job de processamento em lote do Spark para o Kyuubi Gateway usando a REST API. O Kyuubi Gateway inicia uma aplicação Spark e executa a tarefa especificada com base nos parâmetros da requisição.

    Neste exemplo, além de substituir informações como <endpoint>, <port> e <token>, clique em spark-examples_2.12-3.3.1.jar para baixar o pacote JAR de teste.

    Nota

    Este pacote JAR é um exemplo simples fornecido com o Spark e serve para calcular o valor de Pi (π).

    Usar DLF (anteriormente 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'

    Usar outros catálogos

    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'

Conectar usando Apache Superset

O Apache Superset é uma plataforma moderna de exploração e visualização de dados com uma rica variedade de gráficos. Para mais informações sobre o Superset, consulte a documentação do Superset.

Nota

Antes de se conectar a um Kyuubi Gateway usando o Superset, certifique-se de ter instalado o Thrift 0.20.0 ou superior. Caso contrário, execute o seguinte comando para instalá-lo:

pip install thrift==0.20.0
  1. Inicie o Superset e acesse a interface do Superset. Para mais informações sobre como iniciar o Superset, consulte a documentação do Superset.

  2. No canto superior direito da página, clique em DATABASE para acessar a página Connect a database.

  3. Na página Connect a database, selecione Apache Spark SQL.

  4. No campo SQLAlchemy URI, insira a string de conexão correspondente ao método de acesso.

    Acesso via rede pública

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

    Acesso via rede VPC

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

    A tabela a seguir descreve os parâmetros.

    Parâmetro

    Descrição

    username

    Nome de usuário. Insira qualquer valor.

    Token

    Token de acesso.

    Endpoint

    Endpoint de acesso do Kyuubi Gateway. Diferencie entre o endpoint público e o endpoint interno.

    db_name

    Nome do banco de dados.

  5. Clique em Connect para concluir a configuração da conexão.

Conectar usando HUE

Nota

Antes de se conectar a um Kyuubi Gateway usando o HUE, certifique-se de ter instalado o Thrift 0.20.0. Caso contrário, execute o seguinte comando para instalá-lo:

pip install thrift==0.20.0
  1. Edite o arquivo de configuração do HUE /etc/hue/hue.conf e adicione a configuração correspondente ao seu método de acesso.

    Acesso via rede pública

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

    Acesso via rede VPC

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

    Os parâmetros estão descritos na tabela a seguir.

    Parâmetro

    Descrição

    username

    Nome de usuário. Insira qualquer valor.

    Token

    Token de acesso.

    Endpoint

    Endpoint de acesso do Kyuubi Gateway.

  2. Reinicie o serviço HUE.

    sudo service hue restart
  3. Faça login na interface web do HUE. No painel de navegação à esquerda, escolha Query > Editor > SparkSql para verificar a conexão.

Conectar usando DataGrip

Nota

Antes de se conectar a um Kyuubi Gateway usando o DataGrip, certifique-se de ter baixado o Apache Spark JDBC Driver (versão 1.2.2, para compatibilidade com Spark 3.x).

  1. Abra o DataGrip e crie um novo projeto.

  2. No painel Database Explorer à direita, clique em ícone + e escolha Data Source > Other > Apache Spark.

  3. Na caixa de diálogo Data Sources and Drivers, configure os seguintes parâmetros.

    Parâmetro

    Descrição

    Name

    Nome personalizado da conexão.

    Authentication

    Selecione No auth ou User & Password. Insira qualquer nome de usuário.

    Driver

    Selecione Apache Spark ver. 1.2.2.

    URL

    Acesso via rede pública

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

    Acesso via rede VPC

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

    Onde <endpoint> é o endpoint de acesso do Kyuubi Gateway e <token> é o token de acesso.

  4. Clique em Test Connection para verificar a conexão.image.png

  5. Clique em OK para salvar a configuração.

Configurar e conectar-se a um Kyuubi Gateway de alta disponibilidade

  1. Estabeleça uma conexão de rede.

    Para estabelecer uma conexão de rede, consulte Estabelecer conectividade de rede entre o EMR Serverless Spark e outras VPCs. Certifique-se de que seu cliente possa acessar o cluster Zookeeper na VPC de destino. Por exemplo, use o componente Zookeeper do Alibaba Cloud MSE ou EMR on ECS.

  2. Ative a alta disponibilidade para o Kyuubi Gateway.

    Ao criar ou editar um Kyuubi Gateway, ative High Service Availability, configure os parâmetros relacionados e selecione a conexão de rede estabelecida para Normal Network Connection.

  3. Conecte-se ao Kyuubi Gateway de alta disponibilidade.

    Após concluir as configurações anteriores, o Kyuubi Gateway alcança alta disponibilidade usando o Zookeeper. Verifique sua disponibilidade usando uma REST API ou conexão JDBC.

    Ao se conectar a um Kyuubi Gateway, substitua os placeholders na URL JDBC pelas suas informações reais:

    • <endpoint>: O endpoint obtido na aba Overview.

    • <port>: O número da porta. Use a porta 443 para acesso via endpoint público e a porta 80 para acesso via endpoint interno da mesma região.

    • <token>: O token copiado na aba Token Management.

    • <tokenname>: O nome do token. Obtenha o nome na aba Token Management.

    • <UserName/RoleName>: O usuário ou função RAM adicionado em Access Control.

    Os exemplos a seguir mostram como conectar-se a um Kyuubi Gateway de alta disponibilidade.

    Conectar usando Beeline

    1. Clique em kyuubi-hive-jdbc-1.9.2.jar para baixar o arquivo JAR do JDBC Driver.

    2. Substitua o arquivo JAR do JDBC Driver.

      1. Faça backup e mova o arquivo JAR original do JDBC Driver.

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

        Se estiver usando EMR on ECS, o caminho padrão para o Kyuubi é /opt/apps/KYUUBI/kyuubi-1.9.2-1.0.0/beeline-jars. Se não tiver certeza do caminho de instalação do Kyuubi, execute o comando env | grep KYUUBI_HOME para encontrá-lo.

      2. Substitua-o pelo novo arquivo JAR do JDBC Driver.

        cp /download/serverless-spark-kyuubi-hive-jdbc-1.9.2.jar /your_path/apache-kyuubi-1.9.2-bin/beeline-jars
    3. Conecte-se usando o Beeline.

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

    Conectar usando Java

    1. Clique em serverless-spark-kyuubi-hive-jdbc-shaded-1.9.2.jar para baixar o pacote shaded.

    2. Instale o JDBC Driver no repositório Maven.

      Execute o comando a seguir para instalar o JDBC Driver fornecido pelo Serverless Spark no seu repositório Maven local.

      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. Modifique o arquivo pom.xml.

      Adicione as seguintes dependências ao arquivo pom.xml do seu projeto.

      <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. Escreva o código Java de exemplo.

      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();
          }
      }

Visualizar a lista de tarefas Spark enviadas pelo Kyuubi

Visualize os detalhes das tarefas Spark enviadas através do Kyuubi na aba Kyuubi Application da página Job History. Os detalhes incluem ID, Name, Application Status e Started At. Essas informações ajudam a entender e gerenciar rapidamente as tarefas Spark enviadas pelo Kyuubi.

  1. Na página Kyuubi Gateway, clique em nome do Kyuubi Gateway desejado.

  2. No canto superior direito, clique em Applications.

    image

    Nesta página, visualize os detalhes de todas as tarefas Spark enviadas através desta instância do Kyuubi. O ID (spark-xxxx) é gerado pelo mecanismo Spark e é idêntico ao Application ID exibido quando você se conecta ao cliente Kyuubi. Ele identifica exclusivamente uma instância de tarefa.

    image