You need to enable JavaScript to run this app.
导航
新建 HiveMetaStore 集群并运行 SparkSQL 作业
最近更新时间:2024.06.24 14:43:08首次发布时间:2024.06.24 14:43:08

概述

本示例将展示如何创建 HiveMetaStore 集群,并已有 Spark 集群与新集群关联以便执行 SparkSQL 作业,查询 Tos 中的数据。

资源准备

  1. 您已创建一个 EMR On VKE Spark 集群;
  2. 一个 TOS 桶,并创建一个空目录用于存储数据(或您已存储数据,希望使用 SparkSQL 查询的数据);
  3. 一个 RDS 实例及对应表,用于存储 HMS Schema 元数据。注意检查该实例是否有白名单限制(白名单需要对您的 vke 集群放开)。

创建 HMS 集群

进入火山引擎 EMR 控制台 -> on VKE -> 创建虚拟集群:

  1. 选择产品版本及服务,服务选择 Hive;
  2. 填写集群信息,配置专属节点及对应的名称等信息;
  3. 选择 TOS bucket 对应的下属目录作为 SparkSQL 数据存储地址(请记录该值,在后续配置 spark 中使用)。之后填写具有该 bucket 读写权限的 AK、SK;
  4. 选择 RDS 实例及库作为 HMS schema 存储表

注意

如果您无历史数据,为避免发生数据覆盖,请选择新库作为 hms schema 的初始化库。hms 部署时将创建并更新对应库内的表及数据以满足 hms 运行时需要

  1. 点击确定完成集群创建。

配置 Spark 集群配置

此处假设您已创建对应的 spark 集群,您需要将上述创建的 hive 相关配置配置到 spark 集群中以便使用。

  1. 配置 hive.metasotore.uris 参数:
    • 确定 hms 的 thrift 地址。该参数为 hms 的 thrift 地址,拼接规则为:

thrift://hive-metastore.{hive 集群所在 namespace}:9083/TCP
其中 namespace 可以在服务列表中查看:

  • 在 spark 控制台配置 spark-defaults.conf 中对应配置项为上述值

之后点击右上角保存按钮。

  1. 添加配置项 spark.sql.warehouse.dir:
    • 确定对应值:该值为您创建 hms 指定的 tos bucket及文件目录值。该值您也可以在 hms 集群中的配置项中找到:
  • 在服务列表中添加该配置项

之后点击确定,然后保存。

  1. 点击重启按钮,生效配置:

等待重启完成。

提交 SparkSQL 作业

目前 sparkSQL 作业需要进入 Spark-Operator 镜像中以进行执行。

  1. 进入 VKE 集群,选择“无状态负载”,找到对应的 sparkOperator 镜像,并点击“控制台”进入:
  1. 执行 spark sql 交互式命令:
/opt/spark/bin/spark-sql
  1. 执行 spark SQL 命令。
CREATE Table demo1 (key1 int, key2 int);
INSERT INTO demo1 (key1, key2) VALUES (1, 2);
SELECT * from demo1;