Este tema explica cómo configurar una aplicación Spark en AnalyticDB for MySQL para acceder a recursos públicos, como una base de datos autogestionada o servicios de datos de otros proveedores de nube.
Contexto
Un Internet NAT Gateway proporciona traducción de direcciones de red (NAT). Puede crear un Internet NAT Gateway para una Virtual Private Cloud (VPC) con el fin de permitir que las instancias dentro de la VPC accedan a internet. Para obtener más información, consulte What is an Internet NAT gateway?.
Notas de uso
Si su origen de datos externo utiliza controles de seguridad de red, como un firewall o una lista de permitidos de IP, debe agregar la dirección IP pública de la entrada SNAT o el bloque CIDR de IP del vSwitch a dichos controles. De lo contrario, la aplicación Spark no podrá acceder al origen de datos.
Procedimiento
-
Create an Internet NAT Gateway.
El Internet NAT Gateway debe estar en la misma región que su instancia de AnalyticDB for MySQL.
-
Se recomienda crear una entrada SNAT en Select vSwitch. Puede seleccionar cualquier vSwitch para la entrada.
-
En su aplicación Spark, configure los siguientes parámetros clave como se muestra en el ejemplo a continuación.
NotaEsta configuración no es obligatoria si desarrolla trabajos de Spark en un Notebook.
{ "comments": ["-- Here is just an example of SparkPi. Modify the content and run your spark program."], "args": ["1000"], "file": "local:///tmp/spark-examples.jar", "name": "SparkPi", "className": "org.apache.spark.examples.SparkPi", "conf": { "spark.driver.resourceSpec": "small", "spark.executor.instances": 1, "spark.executor.resourceSpec": "small", "spark.adb.eni.enabled": "true", "spark.adb.eni.vswitchId": "vsw-bp1ghmwrkeaw3xvnd****", "spark.adb.eni.securityGroupId": "sg-bp1airvjxl5vpr2****" } }La siguiente tabla describe los parámetros clave.
Parámetro
Descripción
spark.adb.eni.enabled
Especifica si se utiliza una interfaz de red elástica (ENI) para acceder a orígenes de datos externos mediante tablas externas. Establezca este parámetro en
true.spark.adb.eni.vswitchId
El ID del vSwitch para la interfaz de red elástica. Establezca este parámetro en el vSwitch ID especificado en la SNAT entry.
spark.adb.eni.securityGroupId
El ID del security group para la interfaz de red elástica. Establezca este parámetro en el ID de un security group en la VPC donde reside el Internet NAT gateway.
Para obtener más información sobre las aplicaciones Spark, consulte Overview of Spark application development.
-- For test methods, see https://www.alibabacloud.com/help/document_detail/2539754.html
-- The url parameter specifies the public connection address.
-- For information about ENI configuration, see the preceding sections.
set spark.adb.eni.enabled=true;
set spark.adb.eni.vswitchId=<vsw-bp1sxxsodv28ey5dl****>;
set spark.adb.eni.securityGroupId=<sg-bp19mr685pmg4ihc****>;
CREATE TEMPORARY VIEW table_tmp
USING org.apache.spark.sql.jdbc
OPTIONS (
url '<jdbc:mysql://rm-bp1k87323a7ia****.mysql.rds.aliyuncs.com:3306>',
dbtable '<db_1.table_11>',
user '<user>',
password '<password>'
);
select * from table_tmp;