第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
第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