
存储分布式文件系统缓存大数据【免费下载链接】alluxioAlluxio, data orchestration for analytics and machine learning in the cloud项目地址https://gitcode.com/gh_mirrors/al/alluxio点击查看免费下载本文基于 Alluxio 官方中文文档 docs/cn/deploy/Running-Alluxio-on-a-Cluster.md面向需要将 Alluxio 部署到真实多节点集群的运维与开发人员完整讲解从先决条件、基本配置、启动验证到日常运维停止、重启、动态扩缩 worker、更新配置的全流程操作并结合当前仓库的启动脚本与配置源码深入剖析每个命令背后的实现机制帮助你快速搭建一套可运行、可维护的独立 Alluxio 集群。为什么需要单 Master部署以及它的边界在集群上部署 Alluxio 最简单的方式是使用单个 master一台节点运行 master 进程其余节点运行 worker 进程worker 向 master 注册并报告自身状态。这种模式配置最少、启动最快适合开发测试、小规模集群或对可用性要求不高的场景。但必须明确其代价单个 master 是整个集群的单点故障SPOF。如果 master 所在机器宕机或进程不可用即便所有 worker 和底层存储都健康整个 Alluxio 集群也无法对外提供服务。因此官方文档明确建议生产环境强烈推荐使用高可用模式运行多个 master具体方案可参考仓库中的 Running-Alluxio-On-a-HA-Cluster.mdHA 模式通过嵌入式日志或 Zookeeper 选举主 masterconf/masters文件中的说明对此有详细注释。先决条件在动手部署之前需要依次完成以下准备工作下载并解压 Alluxio 二进制包从 Alluxio 官网下载预编译的二进制 tarball版本号对应仓库的ALLUXIO_VERSION_STRING解压后把整个目录复制到所有节点包括运行 master 和 worker 的每一台机器$ tar -xvzpf alluxio-VERSION-bin.tar.gz配置免密 SSH 登录由于后续的集群管理命令启动、停止、同步配置需要从 master 节点通过 SSH 操作所有 worker 节点需要配置从 master 到 worker 节点的免密 SSH 登录。常见做法是把 master 主机的公钥追加到 worker 上对应用户的~/.ssh/authorized_keys中。同时建议在~/.ssh/config中为所有节点设置StrictHostKeyChecking no之类的参数避免首次连接交互确认导致自动化脚本卡住bin/alluxio中的copyDir函数即使用-o StrictHostKeyCheckingno选项。开放节点间 TCP 通信所有节点之间必须开放 RPC 端口。对于基本功能确保每个节点上的RPC 端口默认值19998是打开的。该默认值来自源码 core/common/src/main/java/alluxio/conf/PropertyKey.java由属性alluxio.master.rpc.port控制其历史别名是alluxio.master.port。sudo 权限可选仅当期望 Alluxio 自动在 worker 节点上挂载 RAMFS内存文件系统时才需要给运行 Alluxio 的操作系统用户授予 sudo 特权。如果已经手工挂载好内存盘或者改用NoMount模式则无需 sudo。基本配置两份核心属性 一键同步创建站点配置文件在 master 节点上参照模板创建conf/alluxio-site.properties配置文件$ cp conf/alluxio-site.properties.template conf/alluxio-site.properties模板文件位于 conf/alluxio-site.properties.template其中已经注释列出了常见属性分组通用属性、安全属性、worker 属性和用户属性可作为扩展配置的起点。配置两个核心属性在conf/alluxio-site.properties中最少需要配置如下两行alluxio.master.hostnameMASTER_HOSTNAME alluxio.master.mount.table.root.ufsSTORAGE_URIalluxio.master.hostname设置单个 master 节点的主机名。示例alluxio.master.hostname1.2.3.4或alluxio.master.hostnamenode1.a.com。该属性同时被 job master 等组件引用源码 PropertyKey.java。alluxio.master.mount.table.root.ufs设置挂载到 Alluxio 根目录的底层存储UFSURI。必须保证 master 节点和所有 worker 节点都能访问这个共享存储。示例alluxio.master.mount.table.root.ufshdfs://1.2.3.4:9000/alluxio/root/或alluxio.master.mount.table.root.ufss3://bucket/dir/。从源码看该属性的全名是alluxio.master.mount.table.root.ufs历史别名是alluxio.underfs.address如果未显式配置默认值为${alluxio.work.dir}/underFSStorage即本地文件系统目录仅适合单机体验集群部署必须显式指向共享存储见 PropertyKey.java。将配置同步到所有节点接下来把配置文件复制到所有其他 Alluxio 节点。将所有 worker 节点的 IP 地址或主机名逐行添加到conf/workers文件每行一个#开头的行为注释参考 conf/workers然后利用内置工具一键同步$ ./bin/alluxio copyDir conf/该命令会把conf/目录通过rsync复制到conf/workers文件中指定的所有 worker 节点同时也会同步到conf/masters中列出的 master 节点实现位于 bin/alluxio。成功执行后所有 Alluxio 节点都拥有了相同的配置。这是启动 Alluxio 的最低配置之后可按需追加其他配置项如 RAMFS 大小、分层存储、安全认证等模板文件中已给出示例。启动一个 Alluxio 集群第一步格式化 Alluxio首次启动前必须先格式化日志journal$ ./bin/alluxio formatMaster注意格式化日志会删除 Alluxio 中的所有元数据但不会触及底层存储UFS中的数据因此格式化后可以基于原有 UFS 数据重新建立文件系统视图。值得一提的兼容性细节formatMaster在当前版本中已被标记为废弃命令执行时会提示 formatMaster is deprecated - use formatJournal or formatMasters instead其内部实际转发到formatJournal见 bin/alluxio。更推荐使用语义更明确的./bin/alluxio formatMasters或formatJournal。formatMasters会先通过getConf读取alluxio.master.journal.type若日志类型为EMBEDDED嵌入式日志则通过alluxio-masters.sh在每个 master 节点上分别执行格式化否则只需在本地执行一次formatJournal见 bin/alluxio。第二步启动集群启动前请确认conf/workers文件中所有 worker 的主机名都是正确的。在 master 节点上运行$ ./bin/alluxio-start.sh all SudoMount这条命令会在当前节点启动 master在conf/workers文件中指定的所有节点上启动全部 worker。SudoMount参数使 worker 尝试在 RAMFS 尚未挂载时用sudo特权挂载它。关于挂载模式的进一步说明来自 bin/alluxio-start.sh挂载模式行为Mount挂载配置的 RAMFS若尚未挂载SudoMount使用sudo特权挂载配置的 RAMFS若尚未挂载NoMount不挂载 RAMFS若顶层存储别名为MEM且对应路径未挂载为 tmpfs/ramfs 会报错如果未指定挂载模式all动作默认假定为NoMount。脚本还提示在 Linux 上为避免 sudo 需求可将每个 worker 的ALLUXIO_RAM_FOLDER设为/dev/shm并使用NoMount脚本会检查顶层存储别名是否为MEM以及 RAMFS 是否已挂载见 bin/alluxio-start.sh。alluxio-start.sh支持的 ACTION 非常丰富见 bin/alluxio-start.sh除all外还有master/masters、worker/workers、proxy/proxies、job_master/job_worker等可按需单独启停某一类进程-f表示在启动前格式化日志与 UFS/worker 数据-i backup可从指定 journal 备份恢复-N表示启动前不终止旧进程-c cache可在启动 worker 时用指定目录预填充缓存。第三步验证集群运行状态要验证 Alluxio 是否正常运行可访问http://alluxio_master_hostname:19999查看 Alluxio master 的状态页面Web UI 端口 19999RPC 端口 19998。Alluxio 附带一个简单的端到端示例程序可在集群中读写示例文件运行$ ./bin/alluxio runTests该命令对应 bin/alluxio 中runTests动作内部启动alluxio.cli.TestRunner类源码位于 shell/src/main/java/alluxio/cli/TestRunner.java。若输出显示读写测试成功说明 master 与 worker 协作正常集群已经就绪。常用操作集群日常运维手册以下操作覆盖 Alluxio 集群生命周期中最常见的运维场景。停止 Alluxio停止整个集群$ ./bin/alluxio-stop.sh all这会停止conf/workers和conf/masters中列出的所有节点上的所有进程master、worker、proxy、job 服务等。也可以只停止某一类进程$ ./bin/alluxio-stop.sh masters # 停止所有 conf/masters 中的 master $ ./bin/alluxio-stop.sh workers # 停止所有 conf/workers 中的 worker如果不想通过 SSH 登录所有节点来停止进程可以在每个节点上本地执行$ ./bin/alluxio-stop.sh master # 停止本地 master $ ./bin/alluxio-stop.sh worker # 停止本地 worker重新启动 Alluxio与首次启动类似。只要conf/workers和conf/masters已配置好重新启动整个集群$ ./bin/alluxio-start.sh all注意alluxio-start.sh在启动前默认会先终止本类旧进程除非加-N因此重启时通常无需先手动停止。单独启动 masters 或 workers$ ./bin/alluxio-start.sh masters # 启动 conf/masters 中全部的 master $ ./bin/alluxio-start.sh workers # 启动 conf/workers 中全部的 worker逐节点本地启动$ ./bin/alluxio-start.sh master # 启动本地 master $ ./bin/alluxio-start.sh worker # 启动本地 worker格式化日志在任何 master 节点上运行$ ./bin/alluxio formatMaster再次强调格式化日志会删除 Alluxio 中的全部元数据但不会触及底层存储中的数据。执行前务必确认这是预期操作例如初始化全新的 Alluxio 命名空间、或需要彻底重建元数据时。动态添加 / 减少 worker添加 worker动态扩容就像以适当配置启动一个新的 worker 进程一样简单。多数情况下新 worker 的配置应与其他 worker 完全一致通过bin/alluxio copyDir conf/同步。在新 worker 节点上运行$ ./bin/alluxio-start.sh worker SudoMount # 启动本地 workerworker 启动后会向 master 注册随即成为 Alluxio 集群的一部分无需重启 master。减少 worker只需停止该 worker 进程$ ./bin/alluxio-stop.sh worker # 停止本地 workerworker 停止后master 会在预定的超时时间后将此 worker 标记为缺失。该超时由 master 参数alluxio.master.worker.timeout控制——源码 PropertyKey.java 中该属性的默认值为5min别名alluxio.master.worker.timeout.ms含义是master 与 worker 之间判定 worker 丢失的超时时间。超时后 master 视该 worker 为丢失不再将其纳入集群若后续该 worker 恢复可再次通过worker动作启动并重新注册。更新 master 配置要修改 master 相关配置例如根 UFS 地址、HA 相关参数等必须按顺序操作停止服务./bin/alluxio-stop.sh all或按需停止 masters/workers在 master 节点上更新conf/alluxio-site.properties将文件复制到所有节点例如./bin/alluxio copyDir conf/重新启动服务参考上文重新启动 Alluxio。更新 worker 配置如果只是为某个 worker 更新局部配置例如调整分配给该 worker 的存储容量、修改存储路径或 tiered storage 层级无需停止和重启 master 节点只停止本地 worker./bin/alluxio-stop.sh worker更新该 worker 上的conf/alluxio-site.properties重新启动该 worker./bin/alluxio-start.sh worker。worker 重启后即携带新配置重新注册到 master。常用配置参数速查结合 conf/alluxio-site.properties.template 与 core/common/src/main/java/alluxio/conf/PropertyKey.java 源码梳理集群部署中最常涉及的参数如下属性默认值说明alluxio.master.hostname未设置由 job master 等引用master 主机名单 master 部署必须显式配置alluxio.master.mount.table.root.ufs${alluxio.work.dir}/underFSStorage根挂载点对应的底层存储 URI集群部署应指向共享存储alluxio.master.rpc.port19998master RPC 服务端口需在各节点防火墙放行alluxio.master.worker.timeout5minmaster 判定 worker 丢失的超时时间alluxio.worker.ramdisk.size物理内存的 2/3至少 1GB顶层内存盘MEM tier大小alluxio.worker.tieredstore.level0.aliasMEM顶层存储别名alluxio.worker.tieredstore.level0.dirs.path/mnt/ramdisk与 RAMFS 大小联动顶层存储目录路径alluxio.user.file.readtype.defaultCACHE默认读类型示例alluxio.user.file.writetype.defaultASYNC_THROUGH默认写类型示例其中alluxio.worker.ramdisk.size的默认值由源码动态计算优先取操作系统总物理内存的 2/3若无法获取非标准平台则回退为1GB见 PropertyKey.java。小结单 master 模式是理解 Alluxio 集群部署的最佳起点它只用两个核心配置项master 主机名 根 UFS 地址、一条同步命令copyDir和一条启动命令alluxio-start.sh all就能拉起一套可用的分布式缓存集群并通过runTests快速验证读写链路。日常运维中alluxio-stop.sh与alluxio-start.sh支持按all/masters/workers/ 单节点粒度精细控制worker 支持不重启 master 的动态扩缩master 配置变更则需停止—修改—同步—重启的完整流程。需要再次强调单 master 存在单点故障投入生产前务必阅读仓库中的 Running-Alluxio-On-a-HA-Cluster.md并参考 conf/masters 文件中对 HA 模式嵌入式日志或 Zookeeper 选举的注释说明将集群切换到高可用架构。赞分享存储分布式文件系统缓存大数据【免费下载链接】alluxioAlluxio, data orchestration for analytics and machine learning in the cloud项目地址https://gitcode.com/gh_mirrors/al/alluxio点击查看免费下载相关推荐Alluxio集群部署指南单Master模式详解Alluxio集群部署指南单Master模式详解 概述 Alluxio作为数据编排层在云原生数据分析与机器学习场景中发挥着关键作用。单Master模式是Al存储分布式文件系统缓存大数据Django安全最佳实践The Django Book项目Web应用安全防护完全手册Django安全最佳实践The Django Book项目Web应用安全防护完全手册 构建安全的Web应用是每个Django开发者必须掌握的核心技能 D文档/教程Apache DolphinScheduler 伪集群部署完整指南单机运行 Master、Worker 与 API ServerApache DolphinScheduler 伪集群部署完整指南单机运行 Master、Worker 与 API Server Apache Dolphin任务调度数据编排工作流自动化后端大数据上一篇Hy-MT2-7B量化实战指南使用AngelSlim实现1.25-bit极端压缩下一篇Genkit 官方 evals 测试应用实战CLI 与代码两种评估方式及官方评估器插件原理创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考