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
-
Acesse a página Gateway.
Faça login no console EMR.
No painel de navegação à esquerda, escolha EMR Serverless > Spark.
Na página Spark, clique em nome do workspace desejado.
Na página EMR Serverless Spark, clique em no painel de navegação à esquerda.
Na página Kyuubi Gateway, clique em Create Kyuubi Gateway.
-
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
NotaDiversos 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.
NotaSe 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. -
Na página Kyuubi Gateway, localize o gateway criado e clique em START na coluna Actions.
Gerenciar tokens
Na página Kyuubi Gateway, localize o gateway desejado e clique em Token Management na coluna Actions.
Clique em Create Token.
-
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.
-
-
Copie as informações do token.
ImportanteApó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-commonehive-jdbcpelas 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
-
Execute o comando a seguir para instalar os pacotes PyHive e Thrift.
pip3 install pyhive thrift -
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.
-
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.
Notaspark.emr.serverless.kyuubi.engine.queueespecifica 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"} -
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"} -
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' -
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.NotaEste 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.
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
Inicie o Superset e acesse a interface do Superset. Para mais informações sobre como iniciar o Superset, consulte a documentação do Superset.
No canto superior direito da página, clique em DATABASE para acessar a página Connect a database.
Na página Connect a database, selecione Apache Spark SQL.
-
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.
Clique em Connect para concluir a configuração da conexão.
Conectar usando HUE
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
-
Edite o arquivo de configuração do HUE
/etc/hue/hue.confe 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.
-
Reinicie o serviço HUE.
sudo service hue restart 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
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).
Abra o DataGrip e crie um novo projeto.
No painel Database Explorer à direita, clique em ícone + e escolha Data Source > Other > Apache Spark.
-
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. Clique em Test Connection para verificar a conexão.

Clique em OK para salvar a configuração.
Configurar e conectar-se a um Kyuubi Gateway de alta disponibilidade
-
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.
-
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.
-
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
Clique em kyuubi-hive-jdbc-1.9.2.jar para baixar o arquivo JAR do JDBC Driver.
-
Substitua o arquivo JAR do JDBC Driver.
-
Faça backup e mova o arquivo JAR original do JDBC Driver.
mv /your_path/apache-kyuubi-1.9.2-bin/beeline-jars /bak_pathNotaSe 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 comandoenv | grep KYUUBI_HOMEpara encontrá-lo. -
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
-
-
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
Clique em serverless-spark-kyuubi-hive-jdbc-shaded-1.9.2.jar para baixar o pacote shaded.
-
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 -
Modifique o arquivo
pom.xml.Adicione as seguintes dependências ao arquivo
pom.xmldo 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> -
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.
Na página Kyuubi Gateway, clique em nome do Kyuubi Gateway desejado.
-
No canto superior direito, clique em Applications.

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.
