《分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践》顾荣 刘嘉承 毛宝龙 著 | PDF下载|ePub下载
分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践 版权信息
- 出版社:机械工业出版社
- 出版时间:2023-08-01
- ISBN:9787111732587
- 条形码:9787111732587 ; 978-7-111-73258-7
分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践 本书特色
Alluxio是一款重要的现代开源分布式虚拟文件系统,是目前大数据生态系统中发展*快的开源社区之一,Alluxio已在全球数千个企事业单位部署应用,并在超过5000个节点的集群上运行。自2013年开源以来,社区贡献者数和用户数不断增多。本书的三位作者均为Alluxio项目的PMC成员和Maintainer,熟知Alluxio大数据文件系统的架构原理,并对Alluxio开源社区的发展产生了深远的影响。本书能够帮助读者全面和透彻地理解现代分布式文件系统的基本原理与Alluxio的核心框架及其实际案例。 本书在介绍分布式文件系统相关技术原理的同时,还讲解了Alluxio技术在国内外旗舰科技和数字化公司的使用案例,并在附录部分介绍了如何向标准化开源社区贡献源码,具有较高的技术前沿性和较强的国际视野。 *全面解读Alluxio核心框架、技术原理和应用场景 *Alluxio创始人、开源技术专家、领域知名学者和教育专家联合力荐 *国内外一线科技和数字化公司的使用案例 *3位作者均为Alluxio项目的PMC成员和Maintainer,具备较高的技术前沿水平和国际视野
分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践 内容简介
本书分为基础篇、进阶篇、实战篇,共15章内容,主要内容包括 Alluxio 总体介绍与快速入门、 Alluxio 核心功能服务、Alluxio 与底层存储系统的集成、Alluxio 与上层计算框架的集成、 Alluxio 基本使用与运维操作、Alluxio主节点原理与元数据管理、Alluxio工作节点原理与文件数据管理、Alluxio客户端原理与高级接口、Alluxio底层存储管理与拓展、Alluxio Job Service的工作原理、Alluxio的系统配置优化、Alluxio与云原生环境的集成、Alluxio Hub 系统运维管理平台、Alluxio的应用案例与生产实践、Alluxio的开源社区开发者指南。
分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践 目录
第1章 Alluxio总体介绍与快速入门1
1.1 Alluxio的发展背景与系统概览1
1.1.1 Alluxio Master组件4
1.1.2 Alluxio Worker组件6
1.1.3 Alluxio Job Service组件7
1.1.4 数据读写流程7
1.2 Alluxio配置部署与程序运行11
1.2.1 获取/编译Alluxio系统11
1.2.2 单机模式安装部署13
1.2.3 集群模式安装部署14
1.2.4 Alluxio服务启停操作15
第2章 Alluxio的核心功能服务18
2.1 文件系统统一命名空间18
2.1.1 统一命名空间概览18
2.1.2 挂载底层存储系统19
2.1.3 与底层存储系统元数据同步20
2.1.4 使用示例21
2.2 层级存储与数据缓存22
2.2.1 存储结构概览22
2.2.2 Alluxio层级存储23
2.2.3 Alluxio的数据副本管理机制24
2.2.4 使用示例25
2.3 Alluxio与HDFS/POSIX接口存
储系统的集成26
2.3.1 HDFS底层存储连接器的基本
原理26
2.3.2 配置HDFS作为Alluxio的
底层存储27
2.3.3 配置CephFS作为Alluxio的
底层存储30
2.3.4 配置NFS作为Alluxio的底层
存储32
2.4 Alluxio与对象存储系统的集成32
2.4.1 对象类型底层存储连接器的
基本原理32
2.4.2 配置AWS S3作为Alluxio的
底层存储34
2.4.3 配置阿里云OSS作为Alluxio
的底层存储35
2.4.4 配置Apache Ozone作为Alluxio
的底层存储37
2.4.5 配置Swift作为Alluxio的底层
存储38
2.5 新增底层存储连接模块的集成
方法39
2.5.1 客户端常见操作与底层存储
连接器的交互39
2.5.2 底层存储连接器的加载机制41
2.5.3 底层存储连接器的管理方式42
2.5.4 新增底层存储连接器的示例43
2.6 Alluxio与大数据计算框架的集成45
2.6.1 与Apache Spark并行计算
框架集成45
2.6.2 与Kubernetes中的Spark并
行计算框架集成48
2.6.3 与Apache Flink并行计算
框架集成51
2.7 Alluxio与大数据查询系统的集成52
2.7.1 与Hive数据仓库集成52
2.7.2 与Presto数据仓库集成59
2.8 Alluxio与深度学习框架的集成63
第3章 Alluxio的基本使用与
运维操作67
3.1 Alluxio的重要操作命令67
3.1.1 管理员操作命令67
3.1.2 用户操作命令72
3.1.3 常用的编程API86
3.1.4 Web界面展示与操作88
3.2 Alluxio的挂载点运维94
3.3 Alluxio的元数据同步和备份运维95
3.3.1 元数据同步的配置95
3.3.2 自动/手动生成备份和从备份
恢复集群96
3.4 Journal日志和高可用运维98
3.4.1 UFS Journal模式配置方式99
3.4.2 Embedded Journal模式配置
方式100
3.4.3 自动/手动生成Checkpoint102
3.4.4 高可用集群的部署与配置
更改103
3.4.5 Master节点的添加/移除和
Primary Master的切换104
3.4.6 客户端配置连接高可用
Master106
3.5 Alluxio的不同配置方式108
3.5.1 Alluxio的配置方式和生效
优先级108
3.5.2 Alluxio客户端配置方式111
3.5.3 Alluxio集群配置方式112
3.5.4 查看配置项112
3.6 Alluxio的Log日志运维113
3.6.1 Log日志位置113
3.6.2 改变Log日志等级114
3.6.3 Alluxio的集群指标116
3.7 Job Service使用和查询运维118
3.7.1 用命令行查询作业状态118
3.7.2 作业执行Log 日志跟踪119
3.8 Alluxio的安全认证与权限控制119
3.8.1 安全认证模式120
3.8.2 访问权限控制120
3.8.3 用户模拟功能123
3.8.4 审计日志功能124
第4章 Alluxio元数据管理与主
节点原理126
4.1 Alluxio Master核心功能概览126
4.2 Master组件的元数据管理128
4.2.1 Master对元数据的管理128
4.2.2 文件/数据块元数据示例130
4.2.3 元数据存储在堆上—HEAP
模式134
4.2.4 元数据存储在堆外—ROCKS
模式135
4.3 Alluxio的统一命名空间和底层存
储管理137
4.3.1 Alluxio的数据挂载功能137
4.3.2 Alluxio的文件生命周期139
4.3.3 Alluxio的一致性模型140
4.3.4 Alluxio与底层存储的元数据/
数据同步145
4.4 Journal日志和高可用152
4.4.1 Alluxio的元数据状态和重要
性质152
4.4.2 Alluxio的Journal日志内容155
4.4.3 Journal日志的Checkpoint操作156
4.4.4 基于底层存储的UFS Journal
模式156
4.4.5 基于Raft协议的Embedded
Journal模式162
4.4.6 UFS Journal和Embedded
Journal之间的切换与选择166
4.5 元数据备份功能168
4.5.1 元数据备份原理168
4.5.2 元数据备份解决的兼容问题168
4.5.3 在高可用集群中的代理备份
功能169
4.5.4 备份操作和Journal日志的
Checkpoint操作的区别170
4.6 Alluxio Master的Worker管理
机制171
4.6.1 Alluxio Worker的注册与心跳171
4.6.2 在集群中加入和移除Alluxio
Worker172
4.6.3 Alluxio Master的可用Worker
列表管理173
4.7 主节点的元数据并发机制173
4.7.1 文件路径并发控制173
4.7.2 Journal日志并发控制176
4.7.3 Worker相关元数据并发控制176
第5章 Alluxio数据存储的核心特
性与原理178
5.1 Alluxio Worker组件概览178
5.1.1 Alluxio Worker数据管理简介178
5.1.2 Worker的发展方向179
5.1.3 Worker对外开放的服务接口179
5.2 Alluxio系统中的数据I/O180
5.2.1 Alluxio的数据读模式详解180
5.2.2 Alluxio的数据写模式详解182
5.2.3 本地读写的优化184
5.3 Alluxio系统中数据块的生命周期
和管理186
5.3.1 数据块的加载和删除187
5.3.2 数据块的写入和持久化187
5.3.3 数据块的锁定和解锁188
5.3.4 数据块的副本控制188
5.3.5 数据块的TTL控制189
5.4 Alluxio Worker的分层缓存190
5.4.1 分层缓存的设计190
5.4.2 使用单层缓存191
5.4.3 使用多层缓存192
5.4.4 缓存分配机制192
5.4.5 缓存驱逐机制193
5.4.6 多层缓存的管理机制195
5.5 Alluxio Worker的并发和流量
控制机制197
5.5.1 数据块锁197
5.5.2 数据块的原子提交197
5.5.3 数据读写的流量控制197
5.6 代码实战—自定义缓存分配
策略198
第6章 Alluxio客户端与Job
Service的原理200
6.1 Alluxio的原生客户端201
6.1.1 Alluxio原生客户端的总体
原理201
6.1.2 客户端与主节点的通信方式203
6.1.3 客户端侧的块位置选取策略204
6.2 Alluxio的Hadoop兼容客户端205
6.2.1 Hadoop兼容文件系统的
Alluxio实现206
6.2.2 大数据生态应用Alluxio206
6.3 Alluxio的POSIX客户端207
6.3.1 JNI-FUSE模块208
6.3.2 启动流程209
6.3.3 FUSE Shell209
6.3.4 适用场景210
6.4 Alluxio Proxy服务210
6.4.1 S3 API210
6.4.2 REST API211
6.5 Alluxio系统的Shell命令行211
6.6 Alluxio Job Service概览和整体
架构212
6.6.1 Job Service组件功能介绍212
6.6.2 Job Service的发展方向212
6.6.3 Job Service对外开放的接口213
6.7 Alluxio Job Service的异步作业
分类213
6.8 Alluxio Job Service的优化功能216
6.9 Alluxio Job Master管理的元数据217
6.10 Alluxio Job Service高可用和Job
Worker管理217
6.10.1 Job Master的高可用217
6.10.2 Job Master对Job Worker的
管理218
6.11 代码实战219
6.11.1 Alluxio Shell拓展实现219
6.11.2 块位置选择策略拓展实现219
6.11.3 Job Service自定义作业拓展
实现220
第7章 Alluxio系统性能深度调优222
7.1 Alluxio的推荐系统配置及测算
方法222
7.1.1 Alluxio文件系统规模观测222
7.1.2 Alluxio Master进程推荐配置225
7.1.3 Alluxio Worker进程推荐配置228
7.1.4 Alluxio Job Master进程推荐
配置230
7.1.5 Alluxio Job Worker进程推荐
配置230
7.2 Alluxio常见的性能问题及解决
方案231
7.2.1 读性能差231
7.2.2 写性能差234
7.2.3 服务资源占用高235
7.2.4 请求超时236
7.3 Alluxio Master调优238
7.3.1 元数据调优238
7.3.2 Journal日志性能调优239
7.3.3 UFS元数据缓存240
7.3.4 元数据同步调优240
7.3.5 Alluxio Master的Worker管理
调优241
7.3.6 RPC并发调优244
7.3.7 心跳线程调优245
7.4 Alluxio Worker调优245
7.4.1 异步缓存调优245
7.4.2 RPC并发调优246
7.4.3 UFS数据流缓存246
7.5 Job Service调优247
7.5.1 Job Service吞吐量调优247
7.5.2 Job Service并发调优247
7.6 客户端调优248
7.6.1 Alluxio Worker选取策略调优248
7.6.2 被动缓存策略调优249
7.6.3 Commit操作优化249
7.6.4 重试操作调优251
7.6.5 Keepalive调优252
7.6.6 其他客户端配置调优252
7.7 性能压力测试252
7.7.1 压力测试的目的和工具252
7.7.2 Alluxio的压力测试框架
StressBench253
7.7.3 StressBench提供的测试内容254
第8章 Alluxio与云原生环境的
集成256
8.1 Kubernetes中的Alluxio集群架构256
8.2 Alluxio集群的部署258
8.2.1 部署的准备工作258
8.2.2 Alluxio集群的基础配置261
8.2.3 集群的部署和验证263
8.3 Alluxio集群的进阶配置266
8.3.1 Master节点的Journal日志266
8.3.2 Master节点的高可用配置267
8.3.3 使用RocksDB作为元数据
存储267
8.3.4 配置Alluxio Worker多层缓存268
8.3.5 配置底层文件系统270
8.4 配置Alluxio使用Kubernetes高级
功能271
8.5 Alluxio的其他Kubernetes部署
架构274
8.5.1 在Kubernetes中部署使用
Alluxio FUSE274
8.5.2 通过Kubernetes CSI使用
Alluxio FUSE276
8.6 Kubernetes环境下的读写性能
优化278
8.6.1 读写本地性优化278
8.6.2 使用宿主机资源优化性能280
8.6.3 Alluxio和不同生命周期的应
用集成281
第9章 Alluxio在混合云场景中
的应用282
9.1 混合云业务场景和常见挑战282
9.2 Alluxio与传统方案对比分析283
9.2.1 方案一:将数据从本地复制
到云存储以运行分析283
9.2.2 方案二:使用NetApp ONTAP
或AWS DataSync等托管服务284
9.2.3 方案三:使用Alluxio数据编
排技术的解决方案284
9.3 混合云上的Alluxio解决方案
架构285
9.3.1 Alluxio架构原理回顾285
9.3.2 云上计算集群搭配部署Alluxio
的架构286
9.3.3 节点的生命周期选择287
9.3.4 数据中心链路287
9.3.5 安全288
9.3.6 迁移到混合云架构的几大步骤288
9.4 基准测试288
9.4.1 测试集群架构289
9.4.2 测试方案和配置290
9.4.3 测试结果291
9.4.4 测试结果分析293
9.5 案例294
9.5.1 混合云案例1:华尔街大型
量化基金公司294
9.5.2 混合云案例2:某知名电信
公司295
9.6 Alluxio在某科技巨头的应用296
9.6.1 案例概览296
9.6.2 云化之路和挑战297
9.6.3 解决方案:赋能混合云和多云
架构,实现应用灵活可移植298
9.6.4 成效:显著的商业价值和技术
优势299
9.6.5 展望未来:下一代数据平台301
9.7 结论301
第10章 Alluxio在大数据分析场
景中的应用303
10.1 Presto和Alluxio结合的架构及
原理303
10.2 Presto与Alluxio搭配部署的架
构优势305
10.2.1 Alluxio帮助企业将数据平台
升级为混合云数据湖305
10.2.2 Alluxio支持跨多个数据源的
统一数据访问305
10.2.3 Alluxio使用通用缓存解决方
案加速整个数据工作流306
10.3 常见应用场景和案例研究307
10.3.1 单一云上的大数据分析:在任
何云存储上实现快速的SQL307
10.3.2 混合云上的大数据分析:简
化上云过程308
10.3.3 跨数据中心分析:无处不在
的高性能分析309
10.4 混合云架构中的基准测试性能309
10.5 某公司金融数据团队的Presto
Alluxio场景310
10.5.1 大数据OLAP分析面临的
挑战311
10.5.2 一种常见的解决方案311
10.5.3 Alluxio:一个兼顾性能和自
动化管理的更优解312
10.5.4 新的挑战313
10.5.5 *终架构315
10.5.6 线上运行效果315
10.5.7 总结展望317
10.6 金山云基于Alluxio加速Presto
查询的性能评估317
10.6.1 测试环境317
10.6.2 理想条件下的Alluxio加速
表现319
10.6.3 影响加速收益的重要因素320
10.6.4 本测试的意义327
10.6.5 Alluxio使用和优化建议328
第11章 Alluxio在ETL场景中
的应用329
11.1 Spark和Alluxio结合的架构及
原理329
11.2 ETL场景中搭配部署Alluxio的
架构优势330
11.2.1 技术优势331
11.2.2 商业价值335
11.3 案例研究336
11.3.1 通过从预处理到训练阶段的
数据共享提高模型训练效率336
11.3.2 混合云分析:计算引擎在云
上,数据存储在本地337
11.4 性能基准测试和成本节约测算337
11.4.1 测试规格338
11.4.2 测试结果338
11.4.3 云上计算集群使用临时实例
的成本优化方案338
11.5 Alluxio在某知名大型企业的
应用340
11.5.1 分布式缓存提升性能340
11.5.2 存算分离实现弹性扩容342
第12章 Alluxio在AI/ML场景中
的应用344
12.1 AI/ML模型训练对数据平台
的常见需求344
12.2 Alluxio与传统方案的对比分析345
12.2.1 方案1:在本地存储数据
副本345
12.2.2 方案2:直接访问云存储346
12.2.3 方案3:使用Alluxio347
12.2.4 三种方案的对比349
12.3 性能测试351
12.3.1 测试架构351
12.3.2 测试规格352
12.3.3 测试结果352
12.4 场景总结354
12.5 Alluxio在哔哩哔哩机器学习场
景中的应用355
12.5.1 技术挑战和解决方案分析356
12.5.2 生产环境中的*佳实践经验358
12.5.3 落地过程中的Alluxio调优360
12.5.4 实际场景下Alluxio的性能
表现361
12.6 云知声Atlas超算平台——基于
Fluid Alluxio的计算加速实践362
12.6.1 Atlas超算平台架构363
12.6.2 Atlas早期遇到的问题和解决
方案363
12.6.3 Atlas Fluid Alluxio的架构
选型与优势364
12.6.4 基于Atlas全新架构的性能
实验367
12.6.5 收益总结与未来展望369
附录:如何贡献开源项目——以
Alluxio为例371
参考文献377
分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践 相关资料
*Alluxio作为大数据和AI的基础软件,我见证了它从零到一发展的过程,以及开源社区从星星之火到逐渐投入中国众多大型公司实际生产中的过程。让人惊喜的是,虽然Alluxio进入中国市场时间不长,但已经有了丰富的中国企业运用Alluxio的案例,可见开源软件以及大数据AI技术在中国已经得到了长足的发展。
——李开复 创新工场董事长兼首席执行官
*Alluxio是数据行业中非常重要的创新型开源软件,对大数据和人工智能都有很强的推进作用。这本书是Alluxio多年实践的阶段性成果总结,也是喜爱Alluxio的大数据行业从业人员的实用宝典,更是开源软件和大数据人工智能基础设施行业的一本重要的指导性书籍。
——张铭 北京大学信息科学技术学院教授,中国计算机学会杰出教育奖获得者
*Alluxio是一款知名的开源分布式统一大数据虚拟文件系统。顾荣、刘嘉承、毛宝龙编著的这本书在介绍Alluxio的同时,深入讲解了分布式文件系统的重要原理,既是一本开源分布式文件系统技术书籍,也是一本高校大数据系统方向的实用性教材,相信对推动计算机系统教育和开源软件发展有益处。
——袁春风 南京大学计算机科学与技术系教授,中国计算机学会杰出教育奖获得者
*作为一名计算机软件领域的科研工作者,我非常高兴地见证了北京大学的杰出校友李浩源博士过去十余年来在大数据系统软件领域取得的卓越成就,特别是他创立了Alluxio——这一已经在世界范围内产生很大影响力的开源软件。这本书汇集了李浩源博士及本书作者在内的团队多年来大量珍贵的知识沉淀、经验积累、实操深耕和案例分享,是一本不可多得的优秀书籍,适合大数据、系统软件和开源软件领域的学生、教师、研究人员和其他相关从业人员阅读。
——刘�X哲 北京大学信息科学技术学院长聘副教授、博士生导师
*Adobe将Alluxio产品作为我们多云企业数据和分析平台的联合数据访问层的一部分。它是我们 ML/AI 生态系统的核心产品。Alluxio为Adobe数据和分析社区提供了跨多个云访问和分析数据的能力,对于我们的大数据和人工智能核心架构的帮助和提升,特别是对于多云的未来有很强的促进作用。本书介绍了如何使用Alluxio和一些成功案例。
——牟斌 Adobe信息和数据服务副总裁
*新一代的应用需要快速处理越来越多的数据。过去几年,Alluxio脱颖而出,作为一个开源分布式编排技术,受到广大用户和开发者的欢迎。这是业界第一本对于Alluxio及其应用场景给予全面而详细介绍的技术书籍,如果你正在计划或者进行新一代的应用部署,这本书值得一读。
——范承工 MemVerge联合创始人兼首席执行官
分布式统一大数据虚拟文件系统――ALLUXIO原理、技术与实践 作者简介
*顾荣
南京大学特聘研究员,博导,Fluid开源项目社区主席,Alluxio开源项目PMC成员。主要研究方向为分布式网络与计算,专注云计算与大数据系统,发表相关论文60余篇,包括一流会议/期刊USENIX ATC、VLDB、ICDE、 WWW、 VLDBJ、TPDS等。主持国家自然科学基金面上项目/青年项目、国家重点研发计划子课题、中国博士后科学基金特别资助项目,以及大型企业创新基金项目等10余项,获江苏省科学技术一等奖、江苏省教学成果二等奖、IEEE可扩展计算委员会杰出早期职业学者奖、中国计算机学会分布式计算与系统专委会青年创新先锋、中国信通院OSCAR尖峰开源人物奖、阿里巴巴优秀学术合作项目奖、华为公司火花奖、腾讯云价值专家奖、南京大学青年五四奖章等。
*刘嘉承
Alluxio的资深开发工程师,Alluxio开源社区PMC成员和Maintainer,Alluxio元数据模块技术负责人之一,在Alluxio的大规模场景优化方面做了大量深入扎实的工作。主导推动了Alluxio核心工程团队和中国社区的合作开发,深度参与了Alluxio全球多个旗舰用户/客户场景中的落地,并为其在大规模安全生产过程中部署使用Alluxio保驾护航。
*毛宝龙
腾讯Alluxio开源协同团队负责人,同时也是Alluxio开源社区PMC成员和Maintainer及Apache Ozone社区Committer,是Alluxio开源社区JNI-FUSE、Ozone、CephFS、COSN 等多个模块的创建者和维护者,也是高低水位异步缓存清理服务、动态配置更新框架、ratis-shell HA工具研发和集成等功能特性的开发者。他多年持续参与 Alluxio、Ozone、HDFS、Ratis 等存储领域开源社区的研发工作,同时也将 Alluxio 等开源技术广泛应用在多个知名互联网公司。