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官方版本集成发布;担任多种学术期刊审稿人,以及江苏省计算机学会大数据专委会秘书长、中国计算机学会系统软件专委会委员。
前 言
随着计算机和信息技术的迅猛发展和普及应用,行业数据呈爆炸式增长,全球已经进入了“大数据”时代。大数据给全球带来了重大的发展机遇,大规模数据资源蕴含着巨大的社会价值和商业价值,有效地管理这些数据,挖掘数据的深度价值,对国家治理、社会管理、企业决策和个人生活将带来巨大的影响。然而,大规模数据资源给人们带来新的发展机遇的同时,也带来很多新的技术挑战。格式多样、形态复杂、规模庞大的行业大数据给传统的计算技术带来了很多技术困难。传统的数据库等信息处理技术已经难以有效应对大规模数据的处理需求。大数据广泛且强烈
的应用需求极大地推动了大数据技术的快速发展,促进了大数据处理相关的基础理论方法、关键技术及系统平台的长足发展。
大数据处理的第一个基本问题是,如何有效地存储和管理海量的大数据。大数据存储管理是进行后续大数据计算分析和提供大数据应用服务的重要基础。分布式存储是目前公认并有效的大数据存储管理方法,在大数据系统中处于基础地位,在行业大数据应用中发挥着重要的作用。本书将介绍近些年来在大数据存储领域发展得如火如荼的分布式存储系统 Alluxio。Alluxio 是全球首创的以内存为中心(Memory-Centric)的分布式虚拟文件系统,已在全球数百个公司部署应用,并在超过 1000 个节点的集群上运行。
本书以广泛使用的 Alluxio 1.8.1 版本为基础进行编写,全面介绍了 Alluxio 的相关技术原理与实践案例,以及 Alluxio 的核心原理和架构技术。本书从概念和原理上对 Alluxio 的核心框架和相关技术应用进行了详细解读,并介绍了 Alluxio 技术在互联网公司的使用案例,以及就如何向开源社区贡献源代码进行了简要介绍,具有较好的前沿性和一定的国际视野。
本书目的
Alluxio 项目自 2013 年开源以来得到了长足的发展,贡献者和用户数量不断增多。但是放眼国内,很少有完整、系统地介绍 Alluxio 相关技术使用原理和实践应用案例的书籍。本书的两位作者均为 Alluxio 项目管理委员会成员和源码维护者,在社区的日常工作中经常需要回答很多关于 Alluxio 的技术问题,他们发现用户很多时候苦于没有完整的 Alluxio 中文学习资料。因此,他们决定一起写一本关于Alluxio 的书籍,为大数据从业人员和大数据存储技术爱好者提供一个深入学习的平台,帮助 Alluxio 的用户能够更加全面和透彻地了解 Alluxio 的基本原理,从而更加容易地使用 Alluxio。
内容快览
全书一共分为 8 章,各章的内容简介如下。
第 1 章 Alluxio 系统快速入门:本章介绍了 Alluxio 项目的背景,包括系统功能简介、项目发展历史;还介绍了 Alluxio 软件的获取或编译方式,以及搭建部署流程。
第 2 章 Alluxio : 系统架构及读写工作机制:本章阐述了 Alluxio 的系统架构与功能组件,并介绍了 Alluxio 内部的读数据和写数据的工作运行原理,使读者对 Alluxio的总体架构和运行流程有一定的认识。
第 3 章 Alluxio : 与底层存储系统的集成:本章介绍了 Alluxio 与当前主流的分布式存储系统进行集成的方法,这些底层存储系统具体包括 HDFS、Secure HDFS、AWS S3、Google GCS、Azure BLOB Store。
第 4 章 Alluxio : 与上层计算框架的集成:本章首先介绍了 Alluxio 提供给管理员和用户的命令行及其含义,然后阐述了 Alluxio 与主流的上层大数据计算框架进行对接集成的方法。上层计算框架包括 Hadoop MapReduce、Spark、Hive、Presto、TensorFlow。
第 5 章 Alluxio : 基本功能的介绍与使用:本章介绍了 Alluxio 提供给用户的基本配置与管理功能,包括 Alluxio 系统环境与属性的配置、Alluxio 底层文件系统的配置与管理、Alluxio 缓存资源的配置与管理,还介绍了 Alluxio 系统 Web 用户界面的查看与使用方法。
第 6 章 Alluxio : 高级功能的介绍与使用:本章介绍了 Alluxio 提供给用户的高级功能,具体包括 Alluxio 的安全认证与权限控制、Alluxio 的内置 Metrics 系统、Alluxio文件系统日志的使用与维护、Alluxio 系统的异常排查。
第 7 章 Alluxio 的应用案例与生产实践:本章阐述了 Alluxio 在陌陌、京东、携程、去哪儿网、百度等大型互联网公司的应用与生产实践案例。
第 8 章 Alluxio 的开源社区开发者指南:本章介绍了源代码的规范、单元测试流程及向 Alluxio 开源社区贡献源代码的具体流程。
写作分工
本书第 1 章、第 5 章、第 6 章、第 8 章由范斌完成,第 2 章、第 3 章、第 4 章由顾荣完成,第 7 章由富羽鹏、陈浩骏、毛宝龙、郭建华、徐磊、刘少山完成。
致谢
能够完成本书需要感谢很多人。首先,我们要衷心地感谢 Alluxio 开源社区的广大贡献者和用户,没有你们的支持就没有 Alluxio 项目的今天,也就没有本书的出版问世。感谢本书第 7 章的来自众多互联网公司的工程师作者,感谢你们在繁忙的工作之余撰写 Alluxio 在贵公司团队的实践应用案例。感谢为本书撰写序言的李浩源博士和 Ben Lorica,他们在百忙之中阅读了书籍的样稿并提出了很多中肯的建议。感谢南京大学 PASA 大数据实验室黄宜华教授、袁春风教授,以及实验室众多同学对于本书的主编顾荣在 Alluxio 开源项目工作上的认可与大力支持。感谢本书编辑及其他工作人员,你们认真严谨的工作为本书的出版奠定了坚实的基础。最后,感谢我们的家人,整本书籍编写周期较长,感谢你们在背后的默默支持,并且对于我们很多节假日未能陪同给予极大的理解与宽容。
由于作者水平有限,书中的疏漏和不妥之处在所难免,敬请读者批评指正,并将反馈意见发送到邮箱 gurong@nju.edu.cn 或 binfan@alluxio.com,以便我们再版时及时修正错误。