Alluxio中国行(一)开源分布式存储系统Alluxio的历史、现状和未来

七月底八月初在南京、上海和北京三地,Alluxio项目创立者李浩源以及部分核心开发者举办了一系列Meetup活动。活动现场介绍了Alluxio项目的新增功能,Alluxio生态系统展望,以及探讨了Alluxio在未来的发展路线。同时还分享了Alluxio在百度、去哪儿网的实践案例,与广大开发者及用户积极交流,碰撞思想。

Alluxio,前称Tachyon,源自UC Berkeley AMPLab,是一个开源内存级虚拟大数据存储系统。从最初一个AMPLab内部的研究项目开始,在开源三年的时间里,Alluxio项目汇集了全世界100多家公司、超过300名贡献者,更成为大数据领域内历史上成长最快的项目之一。本文将回顾Alluxio历史,展望Alluxio生态系统,并探讨Alluxio在未来的发展路线。

往日峥嵘


2012年,加州大学伯克利分校的AMPLab在那时已经创建了Spark和Mesos等大数据项目,并受到工业界越来越多的关注和应用。然而这个时候的伯克利的大数据协议栈中还有一个重要的缺失环节:如何在多个任务之间以高速方便而可靠的方式共享数据。于是在两位导师Ion Stoica教授以及Scott Shenker教授的鼓励下,李浩源把这一问题当做自己的博士课题,设计并实现了一个基于内存的分布式文件系统Tachyon并将之开源,这也就是Alluxio的前身。自放上Github开源以来,该项目迅速吸引了各方的关注并实现了高速成长。项目从最初李浩源一个人的课题,扩大到一群AMPLab同学的加入,接下来由不同高校和科研机构的关注和贡献,再到获得像Intel等有雄厚实力的公司加盟助力。

过去的三年里,Alluxio从一个作为研究原型的小型代码库变成了稳定、可靠的系统——拥有一个活跃的社区,并且已经被世界上多家公司所部署。从第一个开源版本以来,社区的贡献者从寥寥数人发展到超过50个组织机构的200多人。Alluxio也实现了百余台机器下的生产部署。迄今,Meetup小组成员已高达800多,最近一次Meetup活动有超过300名的登记者,Commit数量从200上升到了12000。

图片描述

图片描述

Alluxio Today


目前已经迎来1.0版本的Alluxio API方案能够帮助Spark、MapReduce、Flink或者Presto等框架访问多种存储系统类型。除了Amazon S3、Google Cloud Storage以及OpenStack Swift等受支持云存储供应商外,EMC与NetApp等传统存储方案供应商亦在其支持列表当中。

System-stack

Alluxio1.0版本的发布,标志着世界上第一个以内存为中心的虚拟的分布式存储系统诞生。Alluxio统一了数据访问的方式,为上层计算框架和底层存储系统构建了桥梁。应用只需要连接Alluxio即可访问存储在底层任意存储系统中的数据。此外,Alluxio的以内存为中心的架构使得数据的访问速度能比现有常规方案快几个数量级。

此外,我们也见证了Alluxio解决世界上不同行业公司的棘手问题。例如,搜索巨头百度在其生产环境中运行Alluxio已超过一年,Alluxio带给他们30倍的性能提升。巴克莱,世界级的银行巨头,使用Alluxio让不可能变为可能,将他们作业分析的耗时从小时级降到秒级。公有云提供者阿里巴巴和RackSpace展示了Alluxio如何虚拟化他们的对象存储系统。Intel发表了多篇文章展示了如何在他们的客户环境中以多种方式利用Alluxio。IBM介绍了如何使用Alluxio抽象OpenStack存储来加速数据分析。Alluxio从无人问津发展到多家公司使用(其中包括行业领导者),迄今为止的成就展现了Alluxio的巨大潜力,也是对业界和社区开发Alluxio的高涨热情的一种肯定。

图片描述

未来展望


Alluxio及社区在过去3年里成长颇多。随着使用者的不断增多以及社区的不断壮大,Alluxio还建立了一个非盈利组织——Alluxio Open Foundation(Alluxio开放基金会),为项目提供更好的发展土壤。项目也从Tachyon更名为Alluxio以避免潜在的商标诉讼,从国际上保护开源软件社区贡献的知识产权。荣誉是属于Alluxio社区所有人的,让我们期待Alluxio更加美好的未来吧!

图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要引入alluxio的Java客户端依赖包: ```xml <dependency> <groupId>org.alluxio</groupId> <artifactId>alluxio-core-client</artifactId> <version>${alluxio.version}</version> </dependency> ``` 然后,使用以下代码可以连接到alluxio集群: ```java import org.alluxio.client.file.FileSystem; import org.alluxio.client.file.FileSystemContext; import org.alluxio.exception.AlluxioException; import org.alluxio.exception.status.UnavailableException; import java.io.IOException; public class AlluxioMonitor { public static void main(String[] args) throws IOException, AlluxioException { FileSystemContext fsContext = FileSystemContext.create(ClientContext.create()); FileSystem fs = FileSystem.Factory.create(fsContext); System.out.println("Connected to Alluxio: " + fs.getStatus().getVersion()); } } ``` 此时,如果一切正常,输出应该是类似于 "Connected to Alluxio: 2.6.2" 的信息。 接下来,可以使用alluxio提供的API来获取集群的一些状态信息。例如,以下代码可以获取到集群中的文件列表: ```java List<URIStatus> files = fs.listStatus(new AlluxioURI("/")); for (URIStatus file : files) { System.out.println(file.getPath()); } ``` 还可以通过以下代码获取到集群的总容量、已使用容量、空闲容量等信息: ```java long capacityBytes = fs.getStatus().getCapacityBytes(); long usedBytes = fs.getStatus().getUsedBytes(); long freeBytes = fs.getStatus().getFreeBytes(); System.out.println("Capacity: " + capacityBytes); System.out.println("Used: " + usedBytes); System.out.println("Free: " + freeBytes); ``` 以上只是简单的示例,实际的监控系统会更加复杂。可以根据具体需求添加更多的功能和监控项。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值