开启状态后端冷热分级存储
在宽表关联计算场景中,每张表字段较多,导致状态后端数据量较大,严重影响状态后端性能时,可开启状态后端冷热分级存储功能。
前提条件
- 集群已安装,包括HDFS、Yarn、Flink和HBase。
- 包含Flink、HBase等服务的客户端已安装,安装路径如:/opt/hadoopclient。
开启状态后端冷热分级存储功能步骤
- 以客户端安装用户登录安装客户端的节点,拷贝HBase的“/opt/client/HBase/hbase/conf/”目录下的所有配置文件至部署FlinkServer的所有节点的一个空目录,如“/tmp/client/HBase/hbase/conf/”。
修改FlinkServer节点上面配置文件目录及其上层目录属主为omm。
chown omm: /tmp/client/HBase/ -R
- 登录Manager,选择“集群 > 服务 > Flink > 配置 > 全部配置”,搜索“HBASE_CONF_DIR”参数,在该参数的“值”中填写1中拷贝了HBase配置文件的FlinkServer的目录,如“/tmp/client/HBase/hbase/conf/”。
- 填写完成后单击“保存”,确认修改配置后单击“确定”。
- 单击“实例”,勾选所有FlinkServer实例,选择“更多 > 重启实例”,输入密码,单击“确定”重启实例。
- 使用具有FlinkServer管理员权限的用户登录FusionInsight Manager。
- 选择“集群 > 服务 > Flink”,在“Flink WebUI”右侧,单击链接,访问Flink的WebUI。
- 单击“作业管理”进入作业管理页面。
- 找到待调优的并处于非运行中的作业,在“操作”列单击“开发”进入作业开发界面。
- 在作业开发界面的“自定义参数”项中,根据实际需求添加如下参数并保存,热数据(常用及使用中数据)可参考表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