通过DBeaver使用Spark Distribution SQL Engine

若您需要在DBeaver中开发Spark SQL作业,可以将云原生数据仓库 AnalyticDB MySQL 版的Spark Distribution SQL Engine服务看作数据源,并在DBeaver中新建数据库连接,从而满足您在DBeaver中使用Spark Distribution SQL Engine开发Spark SQL作业的业务需求。

前提条件

  • 集群的产品系列为企业版、基础版或湖仓版

  • 已创建Job型资源组。具体操作,请参见新建资源组

  • 已创建AnalyticDB for MySQL集群的数据库账号。

  • 下载并安装DBeaver。

  • 已将DBeaver的IP地址添加至AnalyticDB for MySQL白名单中。具体操作,请参见白名单

操作步骤

步骤一:启动Spark Distribution SQL Engine

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击作业开发 > Spark Jar开发

  3. 在编辑器窗口上方,选择Job型资源组,作业类型选择SQLEngine

  4. 在编辑器中输入以下作业内容。

    CONF spark.driver.resourceSpec=medium;
    CONF spark.executor.instances=1;
    CONF spark.executor.resourceSpec=small;
    CONF spark.app.name=Spark SQLEngine;
    CONF spark.sql.hive.metastore.version=adb;
    CONF spark.kubernetes.driverEnv.HIVE_SERVER2_USER=AdbSpark14****;
    CONF spark.kubernetes.driverEnv.HIVE_SERVER2_PASSWORD=Spark23****;
    CONF spark.adb.sessionTTLSeconds=604800;

    参数说明:

    参数

    是否必填

    说明

    spark.app.name

    Spark应用名称。

    spark.sql.hive.metastore.version

    指定采用元数据服务版本,支持如下配置:

    • adb:连接AnalyticDB for MySQL中的元数据信息。

    • <hive_version>:指定Hive MetaStore的版本。

    说明

    spark.kubernetes.driverEnv.HIVE_SERVER2_USER

    Spark Distribution SQL Engine服务的用户名。用户名需包含大写字母、小写字母和数字,长度无限制。

    spark.kubernetes.driverEnv.HIVE_SERVER2_PASSWORD

    Spark Distribution SQL Engine服务的密码。密码需包含大写字母、小写字母和数字,长度无限制。

    spark.adb.sessionTTLSeconds

    Spark Distribution SQL Engine销毁时间。单位为秒(s),默认值为1200秒。即最后一个SQL代码块执行完毕,1200秒后Spark Distribution SQL Engine服务会自动销毁。

    重要
    • Spark Distribution SQL Engine销毁后,重启Spark Distribution SQL Engine时,会重新生成一个新的连接地址。

    • 如果您需要在DBeaver中长期使用Spark Distribution SQL Engine,建议将spark.adb.sessionTTLSeconds参数配置为604800,避免Spark Distribution SQL Engine长时间没有执行SQL而自动销毁。

    其他参数,请参见Spark应用配置参数说明

步骤二:获取域名连接地址

  1. 登录云原生数据仓库AnalyticDB MySQL控制台,在左上角选择集群所在地域。在左侧导航栏,单击集群列表,在企业版、基础版或湖仓版页签下,单击目标集群ID。

  2. 在左侧导航栏,单击作业开发 > Spark Jar开发

  3. 应用列表页签中,单击目标Spark应用操作列的详情,获取Spark Distribution SQL Engine的域名地址,即Spark JDBC Public Connect URL对应的地址。

步骤三:在DBeaver中连接并使用Spark Distribution SQL Engine

  1. 打开DBeaver客户端,单击数据库 > 新建数据库连接

  2. 连接到数据库页面,选择Apache Spark,单击下一步

  3. 配置Hadoop/Apache Spark 连接设置,参数说明如下:

    参数

    说明

    连接方式

    连接方式选择为URL

    JDBC URL

    请填写步骤二中启动Spark Distribution SQL Engine后获取的域名连接地址。详情请参见步骤二:获取域名连接地址

    重要

    域名地址中的{database name}需替换为实际的数据库名。

    用户名

    请填写步骤一中启动Spark Distribution SQL Engine时设置的Spark Distribution SQL Engine服务的用户名。详情请参见步骤一:启动Spark Distribution SQL Engine

    密码

    请填写步骤一中启动Spark Distribution SQL Engine时设置的Spark Distribution SQL Engine服务的密码。详情请参见步骤一:启动Spark Distribution SQL Engine

  4. 上述参数配置完成后,单击测试连接

    重要
    • AnalyticDB for MySQL Spark拉起需要一定的时间,请在启动Spark Distribution SQL Engine的作业运行1分钟后再测试连接。

    • 首次测试连接时,DBeaver会自动获取需要下载的驱动信息,获取完成后,请单击下载,下载相关驱动。

  5. 测试连接成功后,单击完成

  6. 数据库导航页签下,展开对应数据源的子目录,单击对应数据库。

  7. 在右侧代码框中输入SQL语句,并单击image按钮运行。

    SHOW TABLES;

    返回结果如下:

    +-----------+-----------+-------------+
    | namespace | tableName | isTemporary |
    +-----------+-----------+-------------+
    |    db     |   test    |     []      |
    +-----------+-----------+-------------+