第 1 章 Alluxio 系统快速入门 1
1.1 Alluxio 背景概述 1
1.1.1 Alluxio 系统功能简介 4
1.1.2 Alluxio 项目发展历史 5
1.2 获取/编译 Alluxio 软件 6
1.2.1 下载预编译的 Alluxio 可执行包 6
1.2.2 编译 Alluxio 源代码 6
1.3 Alluxio 的搭建部署及程序运行 10
1.3.1 单机模式 10
1.3.2 集群模式 13
1.3.3 高可用集群模式 16
第 2 章 Alluxio 系统架构及读写工作机制 22
2.1 Alluxio 的构架简介与基本特征 22
2.1.1 提升远程存储读写性能 23
2.1.2 统一持久化数据访问接口 24
2.1.3 数据的快速复用和共享 26
2.2 Alluxio 的系统功能组件 27
2.2.1 Alluxio Master 组件 27
2.2.2 Alluxio Worker 组件 29
2.2.3 Alluxio Client 组件 30
2.3 Alluxio 读写场景的行为分析 31
2.3.1 Alluxio 的读场景数据流 31
2.3.2 Alluxio 的写场景数据流 37
第 3 章 Alluxio 与底层存储系统的集成 40
3.1 配置 HDFS 作为 Alluxio 底层存储 40
3.1.1 准备步骤与基本配置流程 41
3.1.2 高级参数配置 43
3.1.3 使用 HDFS 在本地运行 Alluxio 44
3.2 配置 Secure HDFS 作为 Alluxio 底层存储 44
3.2.1 准备步骤与基本配置流程 45
3.2.2 使用安全认证模式 HDFS 在本地运行 Alluxio 46
3.3 配置 AWS S3 作为 Alluxio 底层存储 47
3.3.1 准备步骤与基本配置流程 47
3.3.2 高级参数配置 49
3.3.3 使用 S3 在本地运行 Alluxio 51
3.4 配置 Google GCS 作为 Alluxio 底层存储 52
3.4.1 准备步骤与基本配置流程 52
3.4.2 高级参数配置 53
3.4.3 使用 GCS 本地运行 Alluxio 54
3.5 配置 Azure BLOB Store 作为 Alluxio 底层存储系统 55
3.5.1 准备步骤与基本配置流程 55
3.5.2 使用 Azure BLOB Store 本地运行 Alluxio 57
第 4 章 Alluxio 与上层计算框架的集成 58
4.1 Alluxio 的管理员操作命令 58
4.1.1 操作命令列表 59
4.1.2 操作命令示例 59
4.2 Alluxio 的用户操作命令 61
4.2.1 操作命令列表 62
4.2.2 操作命令示例 65
4.3 Alluxio 与 Hadoop 操作命令行的集成 78
4.3.1 前期准备与配置 78
4.3.2 具体使用示例 79
4.4 Alluxio 与 Hadoop MapReduce 的集成 79
4.4.1 前期准备与配置 80
4.4.2 具体使用示例 82
4.5 Alluxio 与 Spark 的集成 83
4.5.1 前期准备与配置 83
4.5.2 使用 Alluxio 作为输入/输出源 85
4.5.3 Alluxio 与 Spark 集成常见问题分析与解决 86
4.6 Alluxio 与 Hive 的集成 89
4.6.1 安装并配置 Hive 环境 89
4.6.2 使用 Alluxio 存储部分 Hive 表 90
4.6.3 使用 Alluxio 作为默认文件系统(存储全部数据) 93
4.6.4 检查 Hive 和 Alluxio 的集成情况(支持 Hive 2.x) 95
4.7 Alluxio 与 Presto 的集成 96
4.7.1 前期准备 96
4.7.2 部署分发 Alluxio 客户端 jar 包 98
4.7.3 Presto 操作命令示例 98
4.8 Alluxio 与 TensorFlow 的集成 100
4.8.1 深度学习面临的数据挑战 100
4.8.2 基于 Alluxio 解决深度学习存储问题的分析 101
4.8.3 安装并配置 Alluxio FUSE 102
4.8.4 TensorFlow 使用 Alluxio FUSE 管理访问数据 103
第 5 章 Alluxio 基本功能的介绍与使用 105
5.1 Alluxio 系统环境与属性的配置 105
5.1.1 Alluxio 系统组件参数的配置 106
5.1.2 Alluxio 客户端组件参数的配置 109
5.1.3 Alluxio 参数配置的相关工具 112
5.2 Alluxio 底层文件系统的配置与管理 113
5.2.1 Alluxio 挂载底层存储 113
5.2.2 Alluxio 与底层存储的元数据一致性保证 116
5.3 Alluxio 缓存资源的配置与管理 120
5.3.1 配置 Alluxio 缓存存储资源 121
5.3.2 Alluxio 缓存数据的载入、驻留及释放 126
5.3.3 配置 Alluxio 缓存数据的生存时间 127
5.4 Alluxio 系统 Web 用户界面的查看与使用 128
5.4.1 Alluxio Master Web 界面介绍 128
5.4.2 Alluxio Worker Web 界面介绍 134
第 6 章 Alluxio 高级功能的介绍与使用 137
6.1 Alluxio 的安全认证与权限控制 137
6.1.1 Alluxio 安全认证模式的介绍 138
6.1.2 Alluxio 访问权限控制的介绍 139
6.1.3 Alluxio 用户模拟功能的介绍 141
6.1.4 Alluxio 审计日志功能的介绍 142
6.2 Alluxio 的内置 Metrics 系统 143
6.3 Alluxio 文件系统日志的使用与维护 145
6.4 Alluxio 系统的异常排查 148
Alluxio: 大数据统一存储原理与实践
第 7 章 Alluxio 的应用案例与生产实践 152
7.1 陌陌基于 Alluxio 加速 Spark SQL 查询 152
7.1.1 Alluxio 缓存应用背景简介 153
7.1.2 陌陌应用场景结合 Alluxio 的分析 153
7.1.3 基于 Alluxio 的陌陌 Ad Hoc 查询系统架构 155
7.1.4 基于 Alluxio 的查询性能评估与分析 156
7.1.5 陌陌在 Alluxio 实战方面的后续实践 158
7.2 京东基于 Alluxio 和 Presto 构建交互式查询引擎 158
7.2.1 京东大数据平台的业务问题背景 159
7.2.2 JDPresto on Alluxio 架构与特性的介绍 160
7.2.3 JDPresto on Alluxio 的性能评估与分析 161
7.2.4 JDPresto on Alluxio 的应用总结 164
7.3 Alluxio 在携程实时计算平台中的应用与实践 165
7.3.1 携程实时计算的应用背景 165
7.3.2 基于 Alluxio 的跨集群数据共享方案与性能评估 168
7.4 去哪儿网利用 Alluxio 提升异地存储访问性能 169
7.4.1 去哪儿网流式处理背景简介 170
7.4.2 原有系统架构及相关问题分析 171
7.4.3 基于 Alluxio 改进后的系统架构介绍与性能评估 172
7.5 百度基于 Alluxio 加速远程数据读取 176
7.5.1 百度跨机房数据查询问题的描述 177
7.5.2 使用 Alluxio 缓存远端数据的方案与效果 177
7.5.3 使用 Alluxio 分层存储的方案与效果 178
7.5.4 基于 Alluxio 提速远程数据访问的总结 180
第 8 章 Alluxio 的开源社区开发者指南 181
8.1 Alluxio 的源代码规范 181
8.1.1 源代码风格要求 182
8.1.2 Alluxio 的单元测试 184
8.1.3 Alluxio 的日志系统 184
8.1.4 Alluxio 的 RPC 定义 186
8.1.5 Alluxio 文件系统日志消息 186
8.2 Alluxio 的单元测试流程介绍 187
8.2.1 运行 Alluxio 单元测试 187
8.2.2 创建 Alluxio 单元测试 188
8.2.3 单元测试需要避免的情况 190
8.2.4 Alluxio 单元测试的全局状态管理 191
8.3 贡献源代码至 Alluxio 开源社区 193
8.3.1 开发者的系统要求和环境准备 194
8.3.2 下载 Alluxio 源代码并配置开发者邮箱 194
8.3.3 编译 Alluxio 源代码 195
8.3.4 领取一个开发者新手任务 196
8.3.5 在本地副本中创建一个新的开发分支 196
8.3.6 提交本地的 commit 197
8.3.7 提交一个社区 Pull Request 198
8.3.8 审阅社区 Pull Request 199