书籍详情
分布式统一大数据虚拟文件系统:Alluxio原理、技术与实践
作者:顾荣 刘嘉承 毛宝龙 著
出版社:机械工业出版社
出版时间:2023-08-01
ISBN:9787111732587
定价:¥99.00
购买这本书可以去
内容简介
本书以广泛使用的Alluxio 2.8.0开源版本为基础编写,深入介绍Alluxio相关分布式统一大数据文件系统的技术原理与实践案例,主要内容包括系统入门与使用、内核组件设计实现原理,同时详细介绍了大型企业应用案例与实践,并附有Alluxio的开源社区开发者指南。本书为Alluxio开源社区用户、高校大数据系统课程师生以及潜在企业用户提供了较为完整的技术指南和实用教程,既可作为大数据专业方向的专业教材,也可作为大数据从业者和研究者的重要专业资料。 【读者对象】*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 等开源技术广泛应用在多个知名互联网公司。
目录
前言
第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
第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
猜您喜欢