Todos os produtos
Search
Central de documentação

E-MapReduce:Establish network connectivity between EMR Serverless Spark and other VPCs

Última atualização: Jun 27, 2026

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.

  • Região da China

    Nome da região

    ID da região

    Zonas suportadas

    China (Hangzhou)

    cn-hangzhou

    Zone H, Zone I, Zone J

    China (Shanghai)

    cn-shanghai

    Zone B, Zone L, Zone F, Zone G

    China (Beijing)

    cn-beijing

    Zone F, Zone G, Zone H, Zone K

    China (Shenzhen)

    cn-shenzhen

    Zone E, Zone F

    China (Hong Kong)

    cn-hongkong

    Zone B, Zone C

  • Outros países e regiões

    Nome da região

    ID da região

    Zonas suportadas

    Germany (Frankfurt)

    eu-central-1

    Zone A, Zone B

    Indonesia (Jakarta)

    ap-southeast-5

    Zone A, Zone B

    Singapore

    ap-southeast-1

    Zone B, Zone C

    US (Virginia)

    us-east-1

    Zone A, Zone B

    US (Silicon Valley)

    us-west-1

    Zone A, Zone B

    Japan (Tokyo)

    ap-northeast-1

    Zone B, Zone C

Etapa 1: Adicionar uma conexão de rede

  1. Faça login no console do EMR.

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

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

  4. No painel de navegação à esquerda, clique em Network Connection.

  5. Na página Network Connection, clique em Create Network Connection.

  6. 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.

    image

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.

  1. 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.

    image

  2. Faça login no console do EMR on ECS.

  3. Na página EMR on ECS, clique em ID do cluster.

  4. Na aba Basic Information, dentro da seção Security, clique em link ao lado de Cluster Security Group.

  5. 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.

    Importante

    Nã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.

  1. Use SSH para fazer login no nó mestre do seu cluster EMR. Para mais informações, consulte Fazer login em um cluster.

  2. Acesse a linha de comando do Hive:

    hive
  3. Crie uma tabela:

    CREATE TABLE my_table (id INT, name STRING);
  4. Insira dados de exemplo:

    INSERT INTO my_table VALUES (1, 'John');
    INSERT INTO my_table VALUES (2, 'Jane');
  5. 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.

  1. Crie um projeto Maven na sua máquina local com a seguinte classe:

    O projeto contém o seguinte conteúdo:

    package com.example;
    
    import org.apache.spark.sql.Dataset;
    import org.apache.spark.sql.Row;
    import org.apache.spark.sql.SparkSession;
    
    public class DataFrameExample {
        public static void main(String[] args) {
            // Create a SparkSession with Hive support enabled.
            SparkSession spark = SparkSession.builder()
                    .appName("HMSQueryExample")
                    .enableHiveSupport()
                    .getOrCreate();
    
            // Query the HMS table.
            Dataset<Row> result = spark.sql("SELECT * FROM default.my_table");
    
            // Print the results.
            result.show();
    
            spark.stop();
        }
    }

    O arquivo pom.xml contém o seguinte conteúdo:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>org.example</groupId>
        <artifactId>sparkDataFrame</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <maven.compiler.source>8</maven.compiler.source>
            <maven.compiler.target>8</maven.compiler.target>
            <spark.version>3.3.1</spark.version>
            <scala.binary.version>2.12</scala.binary.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-core_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-sql_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.spark</groupId>
                <artifactId>spark-hive_${scala.binary.version}</artifactId>
                <version>${spark.version}</version>
            </dependency>
        </dependencies>
    </project>
  2. Compile o JAR:

    mvn package

    Isso gera o arquivo sparkDataFrame-1.0-SNAPSHOT.jar no diretório target/.

  3. Envie o JAR para o seu workspace:

    1. Na página do EMR Serverless Spark referente ao seu workspace, clique em Artifacts no painel de navegação à esquerda.

    2. 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

  1. Na página do EMR Serverless Spark, clique em Development no painel de navegação à esquerda.

  2. Clique em New, insira um nome, selecione Application(Batch) > JAR e clique em OK.

  3. 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.DataFrameExample

    Network 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.SessionHiveMetaStoreClientFactory

    Para encontrar o endereço IP privado, acesse a página Nodes do cluster EMR e expanda o grupo de nós emr-master.

  4. Clique em Run.

  5. 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

  1. 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 HMS

      spark.hadoop.hive.metastore.uris thrift://<hms-private-ip>:9083
      spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactory

      Para localizar o endereço IP privado, acesse a página Nodes do cluster EMR e clique em ícone image ao lado do grupo de nós emr-master.

  2. Na página do EMR Serverless Spark, clique em Development no painel de navegação à esquerda.

  3. Clique em ícone image para criar um novo arquivo.

  4. Na caixa de diálogo New, insira um nome (por exemplo, users_task), mantenha o tipo como SparkSQL e clique em OK.

  5. 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_name e selecione o banco de dados padrão no formato catalog_id.default na opção Catalog.
    SELECT * FROM default.my_table;

    Os resultados aparecem na seção Execution Results na parte inferior da página.

    image