更新时间:2024-11-29 GMT+08:00

开启状态后端冷热分级存储

在宽表关联计算场景中,每张表字段较多,导致状态后端数据量较大,严重影响状态后端性能时,可开启状态后端冷热分级存储功能。

前提条件

  • 集群已安装,包括HDFS、Yarn、Flink和HBase。
  • 包含Flink、HBase等服务的客户端已安装,安装路径如:/opt/hadoopclient。

开启状态后端冷热分级存储功能步骤

  1. 以客户端安装用户登录安装客户端的节点,拷贝HBase的“/opt/client/HBase/hbase/conf/”目录下的所有配置文件至部署FlinkServer的所有节点的一个空目录,如“/tmp/client/HBase/hbase/conf/”。

    修改FlinkServer节点上面配置文件目录及其上层目录属主为omm。

    chown omm: /tmp/client/HBase/ -R

    • FlinkServer节点:

      登录Manager,选择“集群 > 服务 > Flink > 实例”,查看FlinkServer所在的“业务IP”。

    • 若FlinkServer实例所在节点与包含HBase服务客户端的安装节点相同,则该节点不执行此步骤。

  2. 登录Manager,选择“集群 > 服务 > Flink > 配置 > 全部配置”,搜索“HBASE_CONF_DIR”参数,在该参数的“值”中填写1中拷贝了HBase配置文件的FlinkServer的目录,如“/tmp/client/HBase/hbase/conf/”。
  3. 填写完成后单击“保存”,确认修改配置后单击“确定”。
  4. 单击“实例”,勾选所有FlinkServer实例,选择“更多 > 重启实例”,输入密码,单击“确定”重启实例。
  5. 使用具有FlinkServer管理员权限的用户登录FusionInsight Manager。
  6. 选择“集群 > 服务 > Flink”,在“Flink WebUI”右侧,单击链接,访问Flink的WebUI。
  7. 单击“作业管理”进入作业管理页面。
  8. 找到待调优的并处于非运行中的作业,在“操作”列单击“开发”进入作业开发界面。
  9. 在作业开发界面的“自定义参数”项中,根据实际需求添加如下参数并保存,热数据(常用及使用中数据)可参考表1,冷数据(不常用、较长时间未使用的数据)可参考表2

    表1 RocksDB状态后端存储

    参数名称

    参数说明

    取值示例

    table.exec.state.cold.enabled

    是否开启冷热分离的RocksDB。

    • false(默认值):关闭。
    • true:开启。

    false

    state.backend.rocksdb.cold.localdir

    冷数据的存储目录。

    -

    state.backend.rocksdb.cold.predefined-options

    冷数据 RocksDB的预定义配置:

    • DEFAULT(默认值):不强制RocksDB写磁盘,建议配置为当前值。
    • SPINNING_DISK_OPTIMIZED_HIGH_MEM:预置优化RocksDB写磁盘参数,由于Flink不依赖RocksDB数据恢复作业,所以不建议使用当前配置。

    DEFAULT

    state.backend

    状态后端存储介质,建议“rocksdb”。

    rocksdb

    表2 HBase作为冷数据二级状态后端存储

    参数名称

    参数说明

    取值示例

    table.exec.state.cold.enabled

    是否开启冷热分级存储。

    • false(默认值):关闭。
    • true:开启。

    false

    state.backend.cold

    指定冷数据状态后端存储,当前仅支持“hbase”。

    hbase

    table.exec.state.ttl

    数据状态变化的超时时间。

    • table.exec.state.cold.enabled为true时:表示热数据的超期时间,超过该值热数据将成为冷数据。
    • table.exec.state.cold.enabled为false时:表示所有数据的超期时间,超过该值数据将被清理。
    • 默认值:0,表示数据永不过期。

    0

    state.backend.hbase.zookeeper.quorum

    访问HBase使用的ZooKeeper的连接地址,格式:ZooKeeper的quorumpeer实例业务IP:ZooKeeper客户端端口号,ZooKeeper的quorumpeer实例业务IP:ZooKeeper客户端端口号,ZooKeeper的quorumpeer实例业务IP:ZooKeeper客户端端口号

    192.168.10.10:24002,192.168.10.11:24002,192.168.10.12:24002

    state.backend

    状态后端存储介质,建议“rocksdb”。

    rocksdb

    • ZooKeeper的quorumpeer实例业务IP:

      ZooKeeper服务所有quorumpeer实例业务IP。登录FusionInsight Manager,选择“集群 > 服务 > ZooKeeper > 实例”,可查看所有quorumpeer实例所在主机业务IP地址。

    • ZooKeeper客户端端口号:

      登录FusionInsight Manager,选择“集群 > 服务 > ZooKeeper”,在“配置”页签查看“clientPort”的值。