A conectividade de rede permite vincular um workspace do EMR Serverless Spark à sua Virtual Private Cloud (VPC), concedendo aos jobs do Spark acesso a fontes de dados e serviços dentro dessa VPC. Este guia detalha como conectar jobs Spark SQL e JAR a um Hive Metastore (HMS) por meio da configuração de uma conexão de rede.
Ao conectar um workspace a uma VPC, os jobs do Spark roteiam o tráfego através dessa VPC. Caso seus jobs também precisem acessar endpoints públicos (por exemplo, o OSS pela rede pública), implante um gateway NAT da Internet na VPC e configure o SNAT. Sem essa configuração, os endpoints públicos ficam inacessíveis. Para mais informações, consulte Usar o recurso SNAT de um gateway NAT da Internet para acessar a internet .
Pré-requisitos
Antes de começar, verifique se você possui:
Um cluster DataLake na página EMR on ECS que inclua o serviço Hive e utilize Built-in MySQL para Metadata. Para mais informações, consulte Criar um cluster.
Zonas suportadas
Os vSwitches estão disponíveis apenas em zonas específicas.
Etapa 1: Adicionar uma conexão de rede
Faça login no console do EMR.
No painel de navegação à esquerda, escolha EMR Serverless > Spark.
Na página Spark, clique em nome do workspace.
No painel de navegação à esquerda, clique em Network Connection.
Na página Network Connection, clique em Create Network Connection.
-
Na caixa de diálogo Create Network Connection, configure os parâmetros abaixo e clique em OK. A conexão estará pronta quando seu Status mudar para Succeeded.
Parâmetro
Descrição
Name
Insira um nome para a conexão.
VPC
Selecione a mesma VPC do seu cluster EMR. Se não houver nenhuma VPC disponível, clique em Create VPC para criar uma no console de VPC. Para mais informações, consulte VPCs e vSwitches.
vSwitch
Selecione um vSwitch na mesma VPC do seu cluster EMR. O vSwitch deve estar em uma zona suportada (consulte Zonas suportadas). Caso não exista um vSwitch disponível na zona necessária, crie um no console de VPC. Para mais informações, consulte Criar e gerenciar vSwitches.

Etapa 2: Adicionar uma regra de grupo de segurança ao cluster EMR
Quando um job do Spark é executado, o tráfego flui do bloco CIDR do vSwitch para sua VPC. Para permitir que esse tráfego alcance o serviço HMS, adicione uma regra de entrada ao grupo de segurança do cluster EMR.
-
Obtenha o bloco CIDR do vSwitch selecionado na Etapa 1. Faça login no console de VPC e acesse a página vSwitches para localizar o bloco CIDR.

Faça login no console do EMR on ECS.
Na página EMR on ECS, clique em ID do cluster.
Na aba Basic Information, dentro da seção Security, clique em link ao lado de Cluster Security Group.
-
Na página Security Group Details, vá até a seção Rules e clique em Add Rule. Configure os parâmetros a seguir e clique em OK.
ImportanteNão defina o Authorization Object como
0.0.0.0/0. Uma regra excessivamente permissiva expõe seu cluster a ataques vindos da internet pública.Parâmetro
Valor
Protocol
TCP (padrão). Para autenticação Kerberos, selecione UDP e abra a porta 88. Para mais informações, consulte Ativar autenticação Kerberos.
Source
O bloco CIDR do vSwitch da etapa 1.
Destination (Current Instance)
Especifique a porta de destino para permitir o acesso. Por exemplo,
9083.
(Opcional) Etapa 3: Configurar uma tabela Hive
Ignore esta etapa se você já possuir uma tabela Hive para consulta.
Use SSH para fazer login no nó mestre do seu cluster EMR. Para mais informações, consulte Fazer login em um cluster.
-
Acesse a linha de comando do Hive:
hive -
Crie uma tabela:
CREATE TABLE my_table (id INT, name STRING); -
Insira dados de exemplo:
INSERT INTO my_table VALUES (1, 'John'); INSERT INTO my_table VALUES (2, 'Jane'); -
Verifique os dados:
SELECT * FROM my_table;
(Opcional) Etapa 4: Compilar e enviar um artefato JAR
Pule esta etapa se planejar usar um job Spark SQL.
-
Crie um projeto Maven na sua máquina local com a seguinte classe:
-
Compile o JAR:
mvn packageIsso gera o arquivo
sparkDataFrame-1.0-SNAPSHOT.jarno diretóriotarget/. -
Envie o JAR para o seu workspace:
Na página do EMR Serverless Spark referente ao seu workspace, clique em Artifacts no painel de navegação à esquerda.
Na página Artifacts, clique em Upload File e envie o arquivo
sparkDataFrame-1.0-SNAPSHOT.jar.
Etapa 5: Criar e executar um job
Job JAR
Na página do EMR Serverless Spark, clique em Development no painel de navegação à esquerda.
Clique em New, insira um nome, selecione Application(Batch) > JAR e clique em OK.
-
No editor de jobs, configure os parâmetros listados abaixo. Mantenha todos os outros parâmetros com seus valores padrão. Em Spark Configuration, insira o seguinte, substituindo
<hms-private-ip>pelo endereço IP privado do nó mestre do HMS:Parâmetro
Valor
Main JAR Resource
Selecione
sparkDataFrame-1.0-SNAPSHOT.jar.Main Class
com.example.DataFrameExampleNetwork Connection
Selecione a conexão de rede criada na Etapa 1.
Spark Configuration
Veja abaixo.
spark.hadoop.hive.metastore.uris thrift://<hms-private-ip>:9083 spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactoryPara encontrar o endereço IP privado, acesse a página Nodes do cluster EMR e expanda o grupo de nós emr-master.
Clique em Run.
Após a conclusão do job, vá para Execution Records na parte inferior da página e clique em Logs para visualizar a saída na aba Log Exploration.
Job Spark SQL
-
Crie e inicie uma sessão Spark SQL. Para mais informações, consulte Gerenciar sessões SQL. Ao configurar a sessão, defina o seguinte:
Network Connection: Selecione a conexão de rede criada na Etapa 1.
-
Spark Configuration: Insira o seguinte, substituindo
<hms-private-ip>pelo endereço IP privado do nó mestre do HMSspark.hadoop.hive.metastore.uris thrift://<hms-private-ip>:9083 spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactoryPara localizar o endereço IP privado, acesse a página Nodes do cluster EMR e clique em ícone
ao lado do grupo de nós emr-master.
Na página do EMR Serverless Spark, clique em Development no painel de navegação à esquerda.
Clique em ícone
para criar um novo arquivo.Na caixa de diálogo New, insira um nome (por exemplo,
users_task), mantenha o tipo como SparkSQL e clique em OK.-
Selecione o catálogo, o banco de dados e a instância da sessão SQL. Digite a consulta abaixo e clique em Run:
Ao implantar código SQL que utiliza um metastore externo em um workflow, especifique a tabela no formato
db.table_namee selecione o banco de dados padrão no formatocatalog_id.defaultna opção Catalog.SELECT * FROM default.my_table;Os resultados aparecem na seção Execution Results na parte inferior da página.
