Alluxio:大数据统一存储原理与实践

范斌 顾荣
推荐序一 如今的世界步入了一个数据革命的时代。随着互联网、人工智能、移动计算、自动驾驶、物联网等新技术的不断进步,人们生成、采集、管理和分析的数据规模正在呈指数级增长,存储和处理这些大规模数据促使人们不断地实现技术的进步,并为人们带来了难以想象的技术革命的重大机遇。在过去的十年中,我们看到了数据处理的技术栈领域产生了很多重要的技术革新。例如,在数据应用层,从最初的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数据库等。这些不同类型的系统实现了对性能、速度、成本、易用性、架构等设计上不同的权衡。 随着技术栈复杂程度的不断增加,数据产业的发展也面临更多的机遇和更大的挑战。数据被存储在不同的存储系统中,这使用户和上层数据应用很难高效地发现、访问和使用这些数据。例如,对于系统开发人员而言,需要开展更多的工作以将一个新的计算或存储部件集成到现有的生态系统中;对于应用开发人员而言,高效地访问不同数据存储系统的方式变得更加复杂;对于终端用户而言,从远程的数据存储系统中访问数据,容易导致性能的损失和语义的不一致;对于系统管理员而言,当底层物理存储和上层所有应用都深度耦合时,添加、删除、升级一个现有计算系统或数据系统,抑或将…