La conectividad de red permite que Serverless Spark acceda a las fuentes de datos, los servidores y los servicios de su VPC (Virtual Private Cloud). Esta guía explica cómo configurar una conexión de red mediante la vinculación de trabajos de Spark SQL y JAR con un Hive Metastore (HMS) en su VPC.
Requisitos previos
Prepare una fuente de datos. Este ejemplo utiliza un clúster de data lake creado en la página EMR on ECS. El clúster incluye el servicio Hive y sus Metadata se almacenan en Built-in MySQL. Para obtener más información, consulte Create a cluster.
Paso 1: Crear una conexión de red
-
Vaya a la página Network Connection.
Inicie sesión en la consola de EMR.
En el panel de navegación izquierdo, elija EMR Serverless > Spark.
En la página Spark, haga clic en el nombre del espacio de trabajo de destino.
En la página EMR Serverless Spark, haga clic en Normal Network Connection en el panel de navegación izquierdo.
En la página Normal Network Connection, haga clic en Create Network Connection.
-
En el cuadro de diálogo Create Network Connection, configure los siguientes parámetros y haga clic en OK.
Parámetro
Descripción
Name
Introduzca un nombre para la conexión.
VPC
Seleccione la misma VPC que utiliza el clúster de EMR.
Si no hay ninguna VPC disponible, haga clic en Create VPC para crear una en la consola de VPC. Para obtener más información, consulte VPCs and vSwitches.
NotaSi su aplicación de Serverless Spark requiere acceso a Internet, asegúrese de que la conexión de red lo proporcione. Por ejemplo, puede desplegar una puerta de enlace NAT pública en la VPC para habilitar el acceso a Internet en las instancias de Serverless Spark. Para obtener más información, consulte Public NAT Gateway.
vSwitch
Seleccione un vSwitch que esté en la misma VPC que el clúster de EMR.
Si no hay ningún vSwitch disponible en la zona actual, haga clic en vSwitch para crear uno en la consola de VPC. Para obtener más información, consulte Create and manage vSwitches.
ImportanteSolo es posible seleccionar vSwitches en zonas específicas. Para obtener más información, consulte Usage limits.
La conexión de red se crea cuando su Status cambia a Succeeded.
Paso 2: Agregar una regla de security group
-
Obtenga el bloque CIDR del vSwitch que utiliza la conexión de red.
Inicie sesión en la consola de VPC y vaya a la página vSwitch para localizar el bloque CIDR del vSwitch.
-
Agregue una regla de security group.
Inicie sesión en la consola de EMR on ECS.
En la página EMR on ECS, haga clic en el ID del clúster de destino.
En la página Basic Information, dentro de la sección Security, haga clic en el vínculo junto a Cluster Security Group.
-
En la página Security Group Details, dentro de la sección Rules, haga clic en Add Rule, configure los siguientes parámetros y luego haga clic en OK.
Parámetro
Descripción
Protocol
El protocolo de red permitido. Valor predeterminado: TCP.
NotaSi su conexión de red utiliza autenticación Kerberos, se recomienda seleccionar UDP y abrir el puerto 88. Para obtener más información sobre la autenticación Kerberos, consulte Enable Kerberos authentication.
Source
Introduzca el bloque CIDR del vSwitch obtenido en el paso anterior.
ImportantePara evitar riesgos de seguridad, no establezca Authorization Object en 0.0.0.0/0.
Destination (Current Instance)
El puerto de destino que se va a abrir. Por ejemplo, 9083.
(Opcional) Paso 3: Conectarse a Hive y consultar datos
Omita este paso si ya cuenta con una tabla de Hive.
Inicie sesión en el nodo maestro de su clúster mediante SSH. Para obtener más información, consulte Log on to a cluster.
-
Inicie la línea de comandos de Hive.
hive -
Cree una tabla.
CREATE TABLE my_table (id INT,name STRING); -
Inserte datos en la tabla.
INSERT INTO my_table VALUES (1, 'John'); INSERT INTO my_table VALUES (2, 'Jane'); -
Consulte los datos.
SELECT * FROM my_table;
(Opcional) Paso 4: Compilar y cargar el artefacto JAR
Para ejecutar un trabajo JAR, primero debe preparar un artefacto. Omita este paso en los trabajos de Spark SQL.
-
Cree un proyecto de Maven en su computadora local.
Ejecute el comando
mvn packagepara empaquetar el proyecto. Este comando genera el archivo sparkDataFrame-1.0-SNAPSHOT.jar.En la página de EMR Serverless Spark de su espacio de trabajo, haga clic en Artifacts en el panel de navegación izquierdo.
En la página Artifacts, haga clic en Upload File.
Cargue el archivo
sparkDataFrame-1.0-SNAPSHOT.jardesde su computadora local.
Paso 5: Crear y ejecutar un trabajo
Trabajo JAR
En la página de EMR Serverless Spark, haga clic en Development en el panel de navegación izquierdo.
Haga clic en Create.
Introduzca un nombre, seleccione como tipo y luego haga clic en OK.
-
En el editor de trabajos, configure los siguientes parámetros. Deje los demás parámetros con sus valores predeterminados. Luego, haga clic en Run.
Parámetro
Descripción
Main JAR Resource
Seleccione el artefacto que cargó en el paso anterior. Por ejemplo, sparkDataFrame-1.0-SNAPSHOT.jar.
Main Class
Introduzca la clase principal del trabajo. En este ejemplo, utilice com.example.DataFrameExample.
Normal Network Connection
Seleccione la conexión de red que creó en el paso 1.
Spark Configuration
Configure las siguientes propiedades.
spark.hadoop.hive.metastore.uris thrift://*.*.*.*:9083 spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactoryReemplace
...por la dirección IP privada del HMS (Hive Metastore Service). En este ejemplo, el HMS se encuentra en el nodo maestro de su clúster de EMR. Puede encontrar esta dirección en la página Nodes del clúster de EMR al hacer clic en el ícono
junto al grupo de nodos emr-master. Después de ejecutar el trabajo, vaya a la sección Execution Records en la parte inferior de la página y haga clic en Log Exploration en la columna Actions del trabajo.
En la pestaña Log Exploration, puede consultar los registros del trabajo.
Trabajo de Spark SQL
-
Cree e inicie una sesión de SQL. Para obtener más información, consulte Manage SQL sessions.
Normal Network Connection: Seleccione la conexión de red que creó en el paso 1.
-
Spark Configuration: Configure las siguientes propiedades.
spark.hadoop.hive.metastore.uris thrift://*.*.*.*:9083 spark.hadoop.hive.imetastoreclient.factory.class org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClientFactoryReemplace
*.*.*.*por la dirección IP privada del HMS (Hive Metastore Service). En este ejemplo, el HMS se encuentra en el nodo maestro de su clúster de EMR. Puede encontrar esta dirección en la página Nodes del clúster de EMR al hacer clic en el ícono
junto al grupo de nodos emr-master.
En la página de EMR Serverless Spark, haga clic en Development en el panel de navegación izquierdo.
En la pestaña Development, haga clic en el ícono
.En el cuadro de diálogo Create, introduzca un nombre como users_task, deje Type con el valor predeterminado SparkSQL y luego haga clic en OK.
-
En el nuevo editor de trabajos, seleccione el catalog, la base de datos y su sesión de SQL en ejecución. Introduzca la siguiente consulta y haga clic en Run.
SELECT * FROM default.my_table;NotaAl desplegar código SQL que utiliza un Metastore externo en un flujo de trabajo, asegúrese de que sus instrucciones SQL especifiquen los nombres de las tablas con el formato
db.table_namey de que seleccione una base de datos predeterminada con el formatocatalog_id.defaulten la opción Catalog de la esquina superior derecha de la interfaz.Los resultados de la consulta aparecen en la sección Execution Results en la parte inferior de la página.