书刊介绍
《Alluxio:大数据统一存储原理与实践》内容简介
Alluxio这一以内存为中心的分布式虚拟文件系统,最初诞生于加州大学伯克利分校的AMPLab,其开源社区在目前大数据生态系统中发展很快。本书以广泛使用的Alluxio 1.8.1版本为基础进行编写,是一本全面介绍Alluxio相关技术原理与实践案例的书籍。本书主要内容包括Alluxio系统快速入门、Alluxio系统架构及读写工作机制、Alluxio与底层存储系统的集成、Alluxio与上层计算框架的集成、Alluxio基本功能和高级功能的介绍与使用。此外,本书还详细介绍了Alluxio的应用案例与生产实践,并详细解读了Alluxio的核心框架和技术应用,旨在为大数据从业人员和大数据存储技术爱好者提供一个深入学习的平台,也可用作开源社区开发者指南。
范斌 Alluxio开源项目管理委员会成员和源码维护者,Alluxio公司创始成员,现任开源副总裁;加入Alluxio项目之前就职于谷歌山景城,从事下一代大规模分布式存储系统的研究与开发,并荣获谷歌基础设施技术奖(Technical Infrastructure Award);2013年获得卡内基梅隆大学(Carnegie Mellon University)计算机系博士学位,攻读博士期间从事分布式系统算法和实现,是CuckooFilter、MemC3及高性能多线程KV库libcuckoo的第一作者或联合作者,在SIGCOMM、SOSP、NSDI、CoNEXT等学术会议及IEEE Transactions on Networking等学术期刊上发表了论文;拥有多项专利,部分学术研究成果已在Alluxio、谷歌、Facebook、英特尔、微软等高科技公司落地使用。
顾荣 南京大学计算机科学与技术系助理研究员,Alluxio项目管理委员会成员和源码维护者;于2016年获得南京大学计算机专业博士学位,主要研究领域为大数据处理技术与系统;在国际期刊、会议发表论文30余篇,包括IEEE TPDS、IEEE ICDE、IEEE IPDPS、JPDC、Parallel Computing、ICPP等;拥有多项发明专利;部分研究成果已在英特尔、百度、华泰证券、苏宁易购、华为、字节跳动等公司落地使用,或被主流开源大数据系统Apache Spark和Alluxio官方版本集成发布;担任多种学术期刊审稿人,以及江苏省计算机学会大数据专委会秘书长、中国计算机学会系统软件专委会委员。作品目录
推荐序一
推荐序二
前言
第1章:Alluxio系统快速入门
1.1、Alluxio背景概述
1.1.1、Alluxio系统功能简介
1.1.2、Alluxio项目发展历史
1.2、获取/编译Alluxio软件
1.2.1、下载预编译的Alluxio可执行包
1.2.2、编译Alluxio源代码
1.3、Alluxio的搭建部署及程序运行
1.3.1、单机模式
1.3.2、集群模式
1.3.3、高可用集群模式
第2章:Alluxio系统架构及读写工作机制
2.1、Alluxio的构架简介与基本特征
2.1.1、提升远程存储读写性能
2.1.2、统一持久化数据访问接口
2.1.3、数据的快速复用和共享
2.2、Alluxio的系统功能组件
2.2.1、Alluxio
Master组件
2.2.2、Alluxio
Worker组件
2.2.3、Alluxio
Client组件
2.3、Alluxio读写场景的行为分析
2.3.1、Alluxio的读场景数据流
2.3.2、Alluxio的写场景数据流
第3章:Alluxio与底层存储系统的集成
3.1、配置HDFS作为Alluxio底层存储
3.1.1、准备步骤与基本配置流程
3.1.2、高级参数配置
3.1.3、使用HDFS在本地运行Alluxio
3.2、配置Secure
HDFS作为Alluxio底层存储
3.2.1、准备步骤与基本配置流程
3.2.2、使用安全认证模式HDFS在本地运行Alluxio
3.3、配置AWS
S3作为Alluxio底层存储
3.3.1、准备步骤与基本配置流程
3.3.2、高级参数配置
3.3.3、使用S3在本地运行Alluxio
3.4、配置Google
GCS作为Alluxio底层存储
3.4.1、准备步骤与基本配置流程
3.4.2、高级参数配置
3.4.3、使用GCS本地运行Alluxio
3.5、配置Azure
BLOB
Store作为Alluxio底层存储系统
3.5.1、准备步骤与基本配置流程
3.5.2、使用Azure
BLOB
Store本地运行Alluxio
第4章:Alluxio与上层计算框架的集成
4.1、Alluxio的管理员操作命令
4.1.1、操作命令列表
4.1.2、操作命令示例
4.2、Alluxio的用户操作命令
4.2.1、操作命令列表
4.2.2、操作命令示例
4.3、Alluxio与Hadoop操作命令行的集成
4.3.1、前期准备与配置
4.3.2、具体使用示例
4.4、Alluxio与Hadoop
MapReduce的集成
4.4.1、前期准备与配置
4.4.2、具体使用示例
4.5、Alluxio与Spark的集成
4.5.1、前期准备与配置
4.5.2、使用Alluxio作为输入/输出源
4.5.3、Alluxio与Spark集成常见问题分析与解决
4.6、Alluxio与Hive的集成
4.6.1、安装并配置Hive环境
4.6.2、使用Alluxio存储部分Hive表
4.6.3、使用Alluxio作为默认文件系统(存储全部数据)
4.6.4、检查Hive和Alluxio的集成情况(支持
Hive
2.x)
4.7、Alluxio与Presto的集成
4.7.1、前期准备
4.7.2、部署分发Alluxio客户端jar包
4.7.3、Presto操作命令示例
4.8、Alluxio与TensorFlow的集成
4.8.1、深度学习面临的数据挑战
4.8.2、基于Alluxio解决深度学习存储问题的分析
4.8.3、安装并配置
Alluxio
FUSE
4.8.4、TensorFlow使用Alluxio
FUSE管理访问数据
第5章:Alluxio基本功能的介绍与使用
5.1、Alluxio系统环境与属性的配置
5.1.1、Alluxio系统组件参数的配置
5.1.2、Alluxio客户端组件参数的配置
5.1.3、Alluxio参数配置的相关工具
5.2、Alluxio底层文件系统的配置与管理
5.2.1、Alluxio挂载底层存储
5.2.2、Alluxio与底层存储的元数据一致性保证
5.3、Alluxio缓存资源的配置与管理
5.3.1、配置Alluxio缓存存储资源
5.3.2、Alluxio缓存数据的载入、驻留及释放
5.3.3、配置Alluxio缓存数据的生存时间
5.4、Alluxio系统Web用户界面的查看与使用
5.4.1、Alluxio
Master
Web界面介绍
5.4.2、Alluxio
Worker
Web界面介绍
第6章:Alluxio高级功能的介绍与使用
6.1、Alluxio的安全认证与权限控制
6.1.1、Alluxio安全认证模式的介绍
6.1.2、Alluxio访问权限控制的介绍
6.1.3、Alluxio用户模拟功能的介绍
6.1.4、Alluxio审计日志功能的介绍
6.2、Alluxio的内置Metrics系统
6.3、Alluxio文件系统日志的使用与维护
6.4、Alluxio系统的异常排查
第7章:Alluxio的应用案例与生产实践
7.1、陌陌基于Alluxio加速Spark
SQL查询
7.1.1、Alluxio缓存应用背景简介
7.1.2、陌陌应用场景结合Alluxio的分析
7.1.3、基于Alluxio的陌陌Ad
Hoc查询系统架构
7.1.4、基于Alluxio的查询性能评估与分析
7.1.5、陌陌在Alluxio实战方面的后续实践
7.2、京东基于Alluxio和Presto构建交互式查询引擎
7.2.1、京东大数据平台的业务问题背景
7.2.2、JDPresto
on
Alluxio架构与特性的介绍
7.2.3、JDPresto
on
Alluxio的性能评估与分析
7.2.4、JDPresto
on
Alluxio的应用总结
7.3、Alluxio在携程实时计算平台中的应用与实践
7.3.1、携程实时计算的应用背景
7.3.2、基于Alluxio的跨集群数据共享方案与性能评估
7.4、去哪儿网利用Alluxio提升异地存储访问性能
7.4.1、去哪儿网流式处理背景简介
7.4.2、原有系统架构及相关问题分析
7.4.3、基于Alluxio改进后的系统架构介绍与性能评估
7.5、百度基于Alluxio加速远程数据读取
7.5.1、百度跨机房数据查询问题的描述
7.5.2、使用Alluxio缓存远端数据的方案与效果
7.5.3、使用Alluxio分层存储的方案与效果
7.5.4、基于Alluxio提速远程数据访问的总结
第8章:Alluxio的开源社区开发者指南
8.1、Alluxio的源代码规范
8.1.1、源代码风格要求
8.1.2、Alluxio的单元测试
8.1.3、Alluxio的日志系统
8.1.4、Alluxio的RPC定义
8.1.5、Alluxio文件系统日志消息
8.2、Alluxio的单元测试流程介绍
8.2.1、运行Alluxio单元测试
8.2.2、创建Alluxio单元测试
8.2.3、单元测试需要避免的情况
8.2.4、Alluxio单元测试的全局状态管理
8.3、贡献源代码至Alluxio开源社区
8.3.1、开发者的系统要求和环境准备
8.3.2、下载Alluxio源代码并配置开发者邮箱
8.3.3、编译Alluxio源代码
8.3.4、领取一个开发者新手任务
8.3.5、在本地副本中创建一个新的开发分支
8.3.6、提交本地的commit
8.3.7、提交一个社区Pull
Request
8.3.8、审阅社区Pull
Request
反侵权盗版声明