Spark应用访问公网配置说明

云原生数据仓库 AnalyticDB MySQL 版Spark应用需要访问自建数据库、其他云厂商数据服务等公网环境时,您可以参考本文进行配置。

背景信息

公网NAT网关可以提供公网地址转换功能,您可以为专有网络VPC创建公网NAT网关服务,使VPC(Virtual Private Cloud)内的实例能够访问互联网和提供互联网访问服务,更多信息请参见什么是公网NAT网关

注意事项

若自建数据库或其他云厂商数据服务存在网络安全设置(例如防火墙、IP白名单等),您需要手动将SNAT条目的公网IP地址添加到网络安全设置中,或者将交换机IP网段添加至网络安全设置中,Spark应用才能成功访问数据源。

操作步骤

  1. 创建公网NAT网关,具体操作请参见创建公网NAT网关

    公网NAT网关需要与AnalyticDB for MySQL实例为同一个地域。

  2. 绑定弹性公网IP(EIP),具体操作请参见绑定EIP

  3. 创建SNAT条目,具体操作请参见创建SNAT条目

    推荐按交换机粒度创建SNAT条目,指定任意交换机即可。

  4. 在Spark应用中,配置下述关键参数,示例如下。

    {
        "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****"	
        }
    }

    关键参数说明:

    关键参数

    说明

    spark.adb.eni.enabled

    通过外表访问其他外部数据源,开启ENI访问开关,需配置为true

    spark.adb.eni.vswitchId

    弹性网卡的交换机ID,需配置为SNAT条目中指定的交换机ID

    spark.adb.eni.securityGroupId

    弹性网卡的安全组ID,需配置公网NAT网关所属VPC中的安全组ID。

    更多关于Spark应用的信息,请参见Spark应用开发介绍