You need to enable JavaScript to run this app.
导航

创建 StarRocks 存算分离集群

最近更新时间2023.12.06 10:53:55

首次发布时间2023.12.06 10:53:55

创建火山引擎 E-MapReduce(EMR)StarRocks 存算分离集群,需要在创建 StarRocks 集群时开启自定义集群配置,增加 StarRocks 存算分离配置项,您需要配置 TOS 路径做为数据存储路径,因此需要提前在 TOS 上创建好相应的 bucket 与路径。
您在创建存算分离集群前可以预先配置好访问 TOS 的 AK、SK 等账号信息,当然也可以在创建后指定 AK、SK,不同情况可参考下文创建集群的方案一和方案二。

注意

仅 StarRocks 3.1.4 以上版本支持存算分离,创建集群时需选择 EMR 3.7.0 以上版本。

1 创建集群

1.1 方案一:创建 StarRocks 集群时不指定AK、SK(推荐)

  1. 登录 EMR 控制台

  2. 选择项目和地域信息后,在总览界面,单击创建集群按钮,进入集群创建流程界面。

  3. 软件配置界面,依次选择交互式查询 > StarRocks > EMR 3.7.0 及以上版本,StarRocks 服务需选择StarRocks 3.1.4 及以上版本服务。

    alt

  4. 在软件配置界面,下方展开高级设置,并开启自定义配置,配置以下参数:

    [
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "run_mode",
            "value": "shared_data"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "enable_load_volume_from_conf",
            "value": "false"
        }
    ]
    
    1. 参数说明:

      说明

      • serviceName 需要设置为 STARROCKS3

      • fileName 需要设置为 fe.conf

      配置项
      配置值
      说明

      run_mode

      shared_data

      StarRocks 集群的运行模式。有效值:shared_datashared_nothing (默认)。

      • shared_data :表示在存算分离模式下运行 StarRocks。

      • shared_nothing :表示在存算一体模式下运行 StarRocks。

      注意

      StarRocks 集群不支持存算分离和存算一体模式混合部署。请勿在集群部署完成后更改 run_mode,这将会导致集群无法再次启动。
      不支持从存算一体集群转换为存算分离集群,反之亦然。

      enable_load_volume_from_conf

      false

      是否允许 StarRocks 使用 FE 配置文件中指定的存储相关属性来创建默认存储卷。有效值:true(默认)和 false。自 StarRocks V3.1.0 版本起支持。

      • 如果您在创建新的存算分离集群时指定此项为 true,则 StarRocks 将使用 FE 配置文件中存储相关属性来创建内置存储卷 builtin_storage_volume,并将其设置为默认存储卷。但如果您没有指定存储相关的属性,StarRocks 将无法启动。

      • 如果您在创建新的存算分离集群时指定此项为 false,StarRocks 将直接启动,不会创建内置存储卷。在 StarRocks 中创建任何对象之前,您必须手动创建一个存储卷并将其设置为默认存储卷。详细信息请参见创建默认存储卷

      注意

      该模式下必须设置为false,创建集群成功后再配置TOS认证相关信息。

  5. 高级设置中参数设置完成后,单击下一步按钮,完成后续的集群设置。其余集群设置详见创建集群

1.1.1 设置默认存储卷

集群创建完成后,您可登录集群,并执行以下语句来创建默认存储卷:

CREATE STORAGE VOLUME def_volume
TYPE = S3
LOCATIONS = ("s3://bucket_name/warehouse_path/")
PROPERTIES
(
    "enabled" = "true",
    "aws.s3.region" = "cn-beijing",
    "aws.s3.endpoint" = "https://tos-s3-cn-beijing.ivolces.com",
    "aws.s3.use_aws_sdk_default_behavior" = "false",
    "aws.s3.use_instance_profile" = "false",
    "aws.s3.access_key" = "xxxxxxxxxx",
    "aws.s3.secret_key" = "yyyyyyyyyy"
);

SET def_volume AS DEFAULT STORAGE VOLUME;

1.2 方案二:创建 StarRocks 集群时指定 AK、SK

  1. 登录 EMR 控制台

  2. 选择项目和地域信息后,在总览界面,单击创建集群按钮,进入集群创建流程界面。

  3. 软件配置界面,依次选择交互式查询 > StarRocks > EMR 3.7.0 及以上版本,StarRocks 服务需选择StarRocks 3.1.4 及以上版本服务。

    alt

  4. 在软件配置界面,下方展开高级设置,并开启自定义配置,配置以下参数:

    [
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "run_mode",
            "value": "shared_data"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "cloud_native_storage_type",
            "value": "S3"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "aws_s3_endpoint",
            "value": "https://tos-s3-cn-beijing.ivolces.com"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "aws_s3_region",
            "value": "cn-beijing"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "aws_s3_path",
            "value": "bucket_name/warehouse_path"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "aws_s3_access_key",
            "value": "xxx"
        },
        {
            "serviceName": "STARROCKS3",
            "fileName": "fe.conf",
            "key": "aws_s3_secret_key",
            "value": "xxx"
        }
    ]
    
    1. 参数说明:

      说明

      • serviceName 需要设置为 STARROCKS3

      • fileName 需要设置为 fe.conf

      配置项配置值说明

      run_mode

      shared_data

      StarRocks 集群的运行模式。有效值:shared_datashared_nothing (默认)。

      • shared_data :表示在存算分离模式下运行 StarRocks。

      • shared_nothing :表示在存算一体模式下运行 StarRocks。

      注意

      StarRocks 集群不支持存算分离和存算一体模式混合部署。请勿在集群部署完成后更改 run_mode,这将会导致集群无法再次启动。
      不支持从存算一体集群转换为存算分离集群,反之亦然。

      cloud_native_storage_typeS3存算分离表的存储空间类型。使用 TOS 时配置为 S3。

      aws_s3_endpoint

      访问 S3 存储空间的连接地址,如https://tos-s3-cn-beijing.ivolces.com
      具体连接地址请参考TOS 地域和访问域名(Endpoint)

      注意

      需使用S3 Endpoint 内网地址。

      aws_s3_region

      cn-beijing

      需访问的 S3 存储空间的地区,如 cn-beijing。请根据集群及 TOS 路径所在的 Region 配置对应的值。
      Region 信息请参考 TOS 地域和访问域名(Endpoint)

      aws_s3_pathbucket/warehouse_path用于存储数据的 S3 存储空间路径,由 S3 存储桶的名称及其下的子路径(如有)组成,如 bucket_name/warehouse_path

      aws_s3_access_key

      xxx

      输入有权限访问 S3 存储空间的 Access Key。
      您可进入火山引擎,访问控制台的密钥管理界面,复制 Access key ID 填写到此处。如果为子用户,请联系主账号获取密钥。

      aws_s3_secret_keyxxx输入有权限访问 S3 存储空间的 Secret Key,与 Access Key ID 配套使用。
  5. 参数设置完成后,单击下一步按钮,完成后续的集群设置。其余集群设置详见创建集群

2 创建存算分离表

2.1 登录集群

集群创建完成后,您可登录集群,并执行以下命令,使用 MySQL 客户端连接 StarRocks。

mysql -h127.0.0.1 -uroot -P9030

2.2 创建数据库与数据表

执行以下命令,在 StarRocks 环境中创建数据库与数据表信息,并插入测试数据进行校验。

create database demo;
use demo;
CREATE TABLE IF NOT EXISTS tb_demo (
    c1  DATE        NOT NULL COMMENT "YYYY-MM-DD",
    c2  TINYINT     COMMENT "range [-128, 127]",
    c3  SMALLINT    COMMENT "range [-32768, 32767] ",
    c4  INT         COMMENT "range [-2147483648, 2147483647]",
    c5  BIGINT      COMMENT "range [-2^63 + 1 ~ 2^63 - 1]",
    c6  LARGEINT    COMMENT "range [-2^127 + 1 ~ 2^127 - 1]"
)
DUPLICATE KEY(c1, c2)
DISTRIBUTED BY HASH(c1, c2)
PROPERTIES (
    "in_memory" = "false"
);

insert into tb_demo values('2023-10-01', 2, 3, 4, 5, 6);

select * from tb_demo;

2.3 查看 TOS 上数据

上述语句执行完成后,您便可登录 TOS 控制台,前往指定路径下查看数据。