tencent cloud

数据加速器 GooseFS

动态与公告
产品动态
产品选型指引
GooseFSx
产品简介
快速入门
购买指南
控制台指南
工具指南
实践教程
Service Level Agreement
词汇表
GooseFS
产品简介
计费概述
快速入门
核心特性
控制台指南
开发者指南
客户端工具
集群配置实践
数据安全
Service Level Agreement
GooseFS-Lite
GooseFS-Lite 工具
实践教程
在 Kubernetes 中使用 GooseFS 加速 Spark 数据访问
使用 GooseFS 以原生 POSIX 语义访问存储桶
GooseFS Distributedload 调优实践
常见问题
文档数据加速器 GooseFSGooseFS集群配置实践大数据场景生产环境配置实践

大数据场景生产环境配置实践

PDF
聚焦模式
字号
最后更新时间: 2025-07-17 17:42:55

简介

数据加速器 GooseFS 提供了多种部署方式,支持 管控面部署、TKE 集群部署、EMR 集群部署等。在大数据场景中,通常使用 EMR 集群模式部署,并且采用高可用架构以满足业务连续性的要求,本文重点介绍基于 Zookeeper 和基于 Raft 的高可用部署配置。

高可用架构指多个 Master 节点的主备多活架构。多个 Master 节点中只有一个会作为主(Leader)节点对外提供服务,其他的备(Standby)节点通过同步共享日志(Journal)来保持与主节点相同的文件系统状态。当主节点故障宕机后,会从当前的备节点中自动选择一个接替主节点继续对外提供服务,这样就消除了系统的单点故障,实现了整体高可用架构。目前 GooseFS 支持基于 Raft 日志和 Zookeeper 两种方式来实现主备节点状态的强一致性。

基于 Zookeeper 的高可用架构部署配置

配置 Zookeeper 服务搭建 GooseFS 的高可用架构需要满足如下条件:
已建立 Zookeeper 集群。GooseFS Master 使用 Zookeeper 进行 Leader 选取,GooseFS 的客户端和 Worker 节点则通过 Zookeeper 查询主 Master 节点。
已准备好高可用强一致的共享存储系统,并且保证所有 GooseFS 的 Master 节点均可以访问到。主 Master 节点会将日志写入到该存储系统上,备(Standby)节点则会不断地从共享存储系统上读取日志,并且重放来保持与主节点的状态一致性。一般情况,该共享存储系统,推荐设置为 HDFS 或 COS。例如,hdfs://10.0.0.1:9000/goosefs/journal 或 cosn://bucket-1250000000/journal。

当您已经完成前置条件后,您可以参考如下推荐配置,并将该配置项复制粘贴到 goosefs-site.properties 文件中,完成您的高可用架构配置:
# GooseFS Master HA 部署配置
goosefs.zookeeper.enabled=true
goosefs.zookeeper.address=<zk_quorum_1>:<zk_client_port>,<zk_quorum_2>:<zk_client_port>,<zk_quorum_3>:<zk_client_port>
goosefs.underfs.hdfs.configuration=${HADOOOP_HOME}/etc/hadoop/core-site.xml:${HADOOP_HOME}/hadoop/etc/hadoop/hdfs-site.xml
goosefs.master.journal.type=UFS
goosefs.master.journal.folder=hdfs://HDFSXXXX/goosefs

# Master 元数据存储方式,推荐使用 Heap + RocksDB 方式,可以支撑上亿规模的元数据
goosefs.master.metastore=ROCKS
goosefs.master.metastore.block=ROCKS
goosefs.master.metastore.block.locations=ROCKS
# GooseFS 的元数据存储目录建议选择高 IOPS 存储介质的目录
goosefs.master.metastore.dir=/data/goosefs/metastore
#元数据交换方式,默认是 RANDOM,如果有明显最近热数据访问的,可设置为考虑 LRU;
# goosefs.master.metastore.cache.type=LRU
# 关闭启动时候校验孤儿 block 的流程,可以降低选主时间
goosefs.master.startup.block.integrity.check.enabled=false
# 同时可以根据实际情况关闭周期性地校验孤儿 block 的逻辑
# goosefs.master.periodic.block.integrity.check.interval=-1
# 如果不使用 TTL 功能,也可以考虑关闭周期性的文件过期检查
goosefs.master.ttl.checker.interval.ms=-1
# 可以考虑关闭数据副本检查,减小 Master 的开销
goosefs.master.replication.check.interval=-1

# Worker 相关的配置
goosefs.worker.tieredstore.levels=1
goosefs.worker.tieredstore.level0.alias=SSD
goosefs.worker.tieredstore.level0.dirs.path=/data1/goosefsWorker,/data2/goosefsWorker
# 以下 Quota 值根据实际情况设置
# goosefs.worker.tieredstore.level0.dirs.quota=2000G,2000G
goosefs.worker.block.heartbeat.interval.ms=10sec
goosefs.worker.tieredstore.free.ahead.bytes=134217728
goosefs.user.block.worker.client.pool.max=512

# 安全认证和用户模拟相关
goosefs.security.authorization.permission.enabled=true
goosefs.security.authentication.type=SIMPLE
# goosefs.security.login.username=hadoop
# goosefs.master.security.impersonation.hadoop.users=*
# goosefs.security.login.impersonation.username=_HDFS_USER_

# Client 相关的配置
goosefs.user.client.transparent_acceleration.scope=GFS_UFS
goosefs.user.client.transparent_acceleration.enabled=true
goosefs.user.file.readtype.default=CACHE
goosefs.user.file.writetype.default=CACHE_THROUGH

goosefs.user.metrics.collection.enabled=true

基于 Raft 的高可用架构部署配置

基于 Raft 嵌入式日志的部署方案依赖于 copycat 的 Leader 选举机制。因此,Raft 的高可用部署架构不可与 Zookeeper 相互混用。如果您计划基于 Raft 嵌入式日志搭建高可用架构,您可以参考如下推荐配置,并将该配置项复制粘贴到 goosefs-site.properties 文件中,完成您的高可用架构配置:
# GooseFS Master Raft 部署配置
goosefs.master.rpc.addresses=<master1>:9200,<master2>:9200,<master3>:9200
goosefs.master.embedded.journal.addresses=<master1>:9202,<master2>:9202,<master3>:9202
#元数据 checkpoint 间隔,默认为2000000,实际速率可根据实际生产环境元数据生产速度设置
goosefs.master.journal.checkpoint.period.entries=xxxx
# GooseFS 的 Journal 数据存储位置
goosefs.master.journal.folder=/data/goosefs/journal

# Master 元数据存储方式,推荐使用 Heap + RocksDB 方式,可以支撑上亿规模的元数据
goosefs.master.metastore=ROCKS
goosefs.master.metastore.block=ROCKS
goosefs.master.metastore.block.locations=ROCKS
# GooseFS 的元数据存储目录建议选择高 IOPS 存储介质的目录
goosefs.master.metastore.dir=/data/goosefs/metastore
#元数据交换方式,默认是 RANDOM,如果有明显最近热数据访问的,可设置为考虑 LRU;
# goosefs.master.metastore.cache.type=LRU
# 关闭启动时候校验孤儿 block 的流程,可以降低选主时间
goosefs.master.startup.block.integrity.check.enabled=false
# 同时可以根据实际情况关闭周期性地校验孤儿 block 的逻辑
# goosefs.master.periodic.block.integrity.check.interval=-1
# 如果不使用 TTL 功能,也可以考虑关闭周期性的文件过期检查
goosefs.master.ttl.checker.interval.ms=-1
# 可以考虑关闭数据副本检查,减小 Master 的开销
goosefs.master.replication.check.interval=-1

# Worker 相关的配置
goosefs.worker.tieredstore.levels=1
goosefs.worker.tieredstore.level0.alias=SSD
goosefs.worker.tieredstore.level0.dirs.path=/data1/goosefsWorker,/data2/goosefsWorker
# 以下 Quota 值根据实际情况设置
# goosefs.worker.tieredstore.level0.dirs.quota=2000G,2000G
goosefs.worker.block.heartbeat.interval.ms=10sec
goosefs.worker.tieredstore.free.ahead.bytes=134217728
goosefs.user.block.worker.client.pool.max=512

# 安全认证和用户模拟相关
goosefs.security.authorization.permission.enabled=true
goosefs.security.authentication.type=SIMPLE
# goosefs.security.login.username=hadoop
# goosefs.master.security.impersonation.hadoop.users=*
# goosefs.security.login.impersonation.username=_HDFS_USER_

# Client 相关的配置
goosefs.user.client.transparent_acceleration.scope=GFS_UFS
goosefs.user.client.transparent_acceleration.enabled=true
goosefs.user.file.readtype.default=CACHE
goosefs.user.file.writetype.default=CACHE_THROUGH
goosefs.user.metrics.collection.enabled=true


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈