Este tópico explica como configurar uma aplicação Spark no AnalyticDB for MySQL para acessar recursos públicos, como um banco de dados autogerenciado ou serviços de dados de outros provedores de nuvem.
Contexto
O Internet NAT Gateway fornece tradução de endereços de rede (NAT). Crie um Internet NAT Gateway para uma Virtual Private Cloud (VPC) a fim de permitir que as instâncias na VPC acessem a internet. Para mais informações, consulte O que é um Internet NAT gateway?.
Observações de uso
Se sua fonte de dados externa utilizar controles de segurança de rede, como firewall ou lista de permissões de IP, adicione o endereço IP público da entrada SNAT ou o bloco CIDR de IP do vSwitch a esses controles. Caso contrário, a aplicação Spark não conseguirá acessar a fonte de dados.
Procedimento
-
O Internet NAT Gateway deve estar na mesma região da instância do AnalyticDB for MySQL.
-
Recomendamos criar uma entrada SNAT em Select vSwitch. Selecione qualquer vSwitch para a entrada.
-
Na aplicação Spark, configure os seguintes parâmetros principais conforme o exemplo abaixo.
NotaEssa configuração não é necessária se você desenvolver jobs Spark em um 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****" } }A tabela a seguir descreve os parâmetros principais.
Parâmetro
Descrição
spark.adb.eni.enabled
Define se uma interface de rede elástica (ENI) será usada para acessar fontes de dados externas por meio de tabelas externas. Defina este parâmetro como
true.spark.adb.eni.vswitchId
ID do vSwitch da interface de rede elástica. Defina este parâmetro com o vSwitch ID especificado na SNAT entry.
spark.adb.eni.securityGroupId
ID do grupo de segurança da interface de rede elástica. Defina este parâmetro com o ID de um grupo de segurança na VPC onde reside o Internet NAT gateway.
Para mais informações sobre aplicações Spark, consulte Visão geral do desenvolvimento de aplicações Spark.
-- 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;