推荐序一
如今的世界步入了一个数据革命的时代。随着互联网、人工智能、移动计算、自动驾驶、物联网等新技术的不断进步,人们生成、采集、管理和分析的数据规模正在呈指数级增长,存储和处理这些大规模数据促使人们不断地实现技术的进步,并为人们带来了难以想象的技术革命的重大机遇。在过去的十年中,我们看到了数据处理的技术栈领域产生了很多重要的技术革新。例如,在数据应用层,从最初的MapReduce 框架,衍生出了很多不同的通用化和专用化的系统,如通用数据处理平台 Apache Spark,流式计算系统 Apache Flink、Apache Samza,机器学习,以及深度学习系统 TensorFlow、Apache Mahout,图计算系统 GraphLab、GraphX,查询系统Presto、Apache Hive、Apache Drill,等等。类似地,整个生态系统的存储层也从 Hadoop分布式文件系统 HDFS 发展并增加了更多的可选项。例如,文件系统、对象存储(Object Store)系统、二进制大对象存储(BLOB Store)系统、键-值对存储(Key-Value Store)系统、NoSQL 数据库等。这些不同类型的系统实现了对性能、速度、成本、易用性、架构等设计上不同的权衡。
随着技术栈复杂程度的不断增加,数据产业的发展也面临更多的机遇和更大的挑战。数据被存储在不同的存储系统中,这使用户和上层数据应用很难高效地发现、访问和使用这些数据。例如,对于系统开发人员而言,需要开展更多的工作以将一个新的计算或存储部件集成到现有的生态系统中;对于应用开发人员而言,高效地访问不同数据存储系统的方式变得更加复杂;对于终端用户而言,从远程的数据存储系统中访问数据,容易导致性能的损失和语义的不一致;对于系统管理员而言,当底层物理存储和上层所有应用都深度耦合时,添加、删除、升级一个现有计算系统或数据系统,抑或将数据从一个存储系统迁移到另一个存储系统,是非常具有挑战性的。
Alluxio 作为全球首创的分布式虚拟文件系统(Virtual Distributed File System),就在上述背景下应运而生。它统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁,使应用可以通过 Alluxio 提供的统一数据访问方式访问底层任意存储系统中的数据。在大数据生态系统中,Alluxio 位于上层大数据计算框架和底层分布式存储系统之间,运行在上层的大数据计算框架可以忽略底层分布式存储系统的细节,直接和 Alluxio 进行交互,Alluxio 透明地将上层大数据框架的数据访问请求转发到底层分布式存储系统中,并将底层多个分布式存储系统中的数据自动缓存到Alluxio 中,从而提升某些上层大数据计算框架的数据访问速度的数量级。Alluxio(前身 Tachyon)系统曾是我在加州大学伯克利分校 AMPLab 的博士研究课题,并在 2012年年末完成了该系统的第一个版本,于 2013 年 4 月正式开源,2015 年项目更名为Alluxio。
自 2013 年 4 月 Alluxio 开源以来,已有超过 200 个机构、1000 多位贡献者参与到Alluxio 系统的开发中,其中包括阿里巴巴、百度、卡内基梅隆大学、谷歌、IBM、英特尔、加州大学伯克利分校、腾讯、京东、雅虎等大学、科研院所和企业。到今天为止,上百家公司的生产线中已经部署了 Alluxio,其中有的集群已经超过了 1000 个节点。随
着 Alluxio 开源项目的快速发展和应用需求的日益旺盛,我们于 2015 年创立了 Alluxio公司,并且获得 Andreessen Horowitz、Mark Leslie(Veritas Founding CEO)、Jack Xu(网易、新浪前 CTO)、Sujal Patel(Isilon 创始人)等人的投资。未来,我们将立志于让Alluxio 成为大数据及其他水平扩展应用的事实上的统一数据层。
我很高兴看到,这本系统、深入介绍 Alluxio 项目技术原理和应用实践的书籍即将付梓。本书的两位作者范斌博士和顾荣博士是分布式系统领域的专家,也是Alluxio 项目管理委员会的成员和源码的维护者。其中,范斌博士于 2015 年从谷歌离职之后全身心致力于 Alluxio 开源项目的技术架构、开发与推广,目前在 Alluxio社区代码贡献排名中排第二位。顾荣博士从 2013 年就开始向 Alluxio 社区贡献源代码,此后他在南京大学 PASA 大数据实验室担任助理教授,继续从事大数据系统方面的研究,在 Alluxio 上开展了很多有意义的研究工作,并且一直努力推动 Alluxio社区在国内的发展。范斌和顾荣在 Alluxio 社区方面都是非常著名的技术专家,为Alluxio 开源社区的发展做出了重要贡献。相信他们完成的这本著作能够很好地帮助需要学习 Alluxio 技术的广大读者。最后,我也要特别感谢一直对 Alluxio 开源项目给予关心与支持的朋友们,我们将一如既往地努力投入,在不断完善 Alluxio 软件的同时,让我们开源社区的运转更加高效,期待后续创作出更多高质量的文章和书籍,以飨读者。
李浩源 Alluxio 开源项目主席、Alluxio 公司创始人、董事长兼 CTO
2019 年 4 月,于美国硅谷
推荐序二
The big data revolution is changing how every industry operates. Organizations and companies are leveraging tremendous amounts of data to create value. For example,Internet companies use data to provide better targeted advertisements and user experiences. Financial institutions process data to detect potential fraud in real time.
Manufacturing powerhouses study data to track, understand, and design locomotive and airplane engines better. Autonomous cars depend on data to function and to ensure the safety of passengers. People use data to make decisions or facilitate the decision-making process in some way.
The big data revolution has brought a lot of challenges and opportunities in distributed computer systems. There are significant innovations in distributed computation frameworks, such as Hadoop and Spark, and distributed storage systems, such as HDFS and Alluxio. The large-scale data processing stack has been reshaped by the big data ecosystem. In the big data ecosystem, organizations usually rely on multiple storage systems and computation frameworks in their data processing pipelines. This brings the significant challenges in data sharing and management, performance and flexibility.
To address these challenges, the Alluxio project proposes an architecture with Virtual Distributed File System VDFS as a data unification layer between the computing layer and the storage layer. A data unification layer brings significant value into the ecosystem.
It can improve data accessibility, performance, and data management, but also the convenience to plug future systems into the ecosystem, therefore making it easier and quicke