更新时间:2025-06-11 GMT+08:00

CarbonData首查优化工具

工具介绍

CarbonData的首次查询较慢,对于实时性要求较高的节点可能会造成一定的时延。

本工具主要提供以下功能:

  • 对查询时延要求较高的表进行首次查询预热。

工具使用

  1. 安装Spark客户端。

    详细操作请参考安装MRS客户端

  2. 使用客户端安装用户,登录Spark客户端节点。
  3. 进入目录“{客户端安装目录}/Spark2x/spark/bin”,执行:

    start-prequery.sh

    参考表1,配置prequeryParams.properties。

    表1 参数列表

    参数

    参数说明

    取值示例

    spark.prequery.period.max.minute

    预热的最大时长,单位分钟。

    60

    spark.prequery.tables

    表名配置database.table:int,表名支持通配符*,int代表预热多长时间内有更新的表,单位为天。

    default.test*:10

    spark.prequery.maxThreads

    预热时并发的最大线程数。

    50

    spark.prequery.sslEnable

    集群安全模式为true,非安全模式为false。

    true

    spark.prequery.driver

    JDBCServer的地址ip:port,如需要预热多个Server则需填写多个Server的IP,多个IP:port用逗号隔开。

    192.168.0.2:22550

    spark.prequery.sql

    预热的sql语句,不同语句冒号隔开。

    spark.prequery.sql配置的语句在每个所预热的表中都会执行,表名用%s代替。

    SELECT COUNT(*) FROM %s;SELECT * FROM %s LIMIT 1

    spark.security.url

    安全模式下jdbc所需url。

    ;saslQop=auth-conf;auth=KERBEROS;principal=spark2x/hadoop.hadoop.com@HADOOP.COM;

    脚本使用

    命令形式:sh start-prequery.sh

    执行此条命令需要:将user.keytab或jaas.conf(二选一),krb5.conf(必须)放入conf目录中。

    • 此工具暂时只支持Carbon表。
    • 此工具会初始化Carbon环境和预读取表的元数据到JDBCServer,所以更适合在多主实例、静态分配模式下使用。