转载

Tachyon:一个高性能、高容错、基于内存的开源分布式存储系统

从Tachyon的 官网 得知,Tachyon是一个高性能、高容错、基于内存的开源分布式存储系统,并具有类Java的文件API、插件式的底层文件系统、兼容Hadoop MapReduce和 Apache Spark 等特征。Tachyon能够为集群框架(如Spark、MapReduce等)提供内存级速度的跨集群文件共享服务。Tachyon充分使用内存和文件对象之间的世代(Lineage)信息,因此速度很快,官方号称 最高比HDFS吞吐量高300倍 。目前,很多公司(如Pivotal、EMC、红帽等)已经在使用Tachyon,并且来自20个组织或公司(如雅虎、英特、红帽等)的60多个贡献者都在为其贡献代码。Tachyon是于 UC Berkeley 数据分析栈( BDAS )的存储层,它还是Fedroa操作系统 自带应用 。

Tachyon具有的重要特征如下:

  • 类Java的文件API: Tachyon的原生API同Java的文件类非常相似,并提供了InputStream和OutputStream接口,还支持内存映射IO;
  • 兼容MapReduce和Spark:Tachyon实现了Hadoop的FileSystem接口,因此,MapReduce和Spark无需做任何修改就可以使用Tachyon;
  • 插件式的底层文件系统:Tachyon基于Hadoop并从底层重建了Hadoop平台。Tachyon具有一个通用、方便于接入不同底层文件系统的接口。目前支持的文件系统包括HDFS、S3、GlusterFS、单节点本地文件系统等,对其他文件系统的支持将很快实现。
  • 支持本地原始表:Tachyon提供了对多列数据的本地支持,且提供了选择项,以决定是否将Hot列放入内存以节省空间;
  • 浏览文件系统的Web界面:用户能够通过Web界面浏览文件系统,尤其在Debug模式下,管理员还能够查看每个文件的详细信息,如文件位置、检查点(Checkpoint)路径等;
  • 支持命令行交互:用户能够使用命令“./bin/tachyon tfs”同Tachyon进行交互,如往文件系统中复制数据以及从文件系统往外复制数据;
  • 高容错性:Tachyon具有良好的容错机制,Master和Worker都有自己的容错方式。Master使用 ZooKeeper 进行容错,Master中保存的元数据使用Journal进行容错,Master还对各个Worker的状态进行监控,发现Worker失效时会自动重启对应的Worker。对于具体的文件数据,Tachyon使用世代关系进行容错。

Tachyon采用了Master-Worker模式,运行中的Tachyon系统由一个Master和多个Worker构成。Tachyon Master管理全部文件的元数据信息,同时也负责监控各个Tachyon Worker的状态。为了高效地对文件进行管理,Tachyon文件在内存中按块组织。文件和块信息保存在Master端,每个Worker以块为单位进行存储和管理。Tachyon的架构如下图所示:

Tachyon:一个高性能、高容错、基于内存的开源分布式存储系统

Tachyon诞生于 UC Berkeley的AMPLab ,由该实验室的计算机在读博士李浩源初创,并基于 Apache License 2.0 开源协议发布,代码托管在 GitHub ,其当前最新版本为 0.6.1 。去年10份,李浩源在接受InfoQ采访时曾表示:

长期来讲,他们对待Tachyon会像对待Apache Mesos和Apache Spark一样,Tachyon也会进入Apache软件基金会,这里欢迎更多的开发者加入。

近日,从华尔街日报 消息 得知,Tachyon获得了硅谷风投 A16Z 的750万美元A轮投资。AMPLab的项目还包括与Hadoop相似、启用了内存分布数据集的开源集群计算环境 Spark 、类似于基于键/值存储的SQL查询语言 PIQL 、基于分布式系统的机器学习系统 MLBase 、多核和大型SMP系统的操作系统 Akaros 、低延迟计算集群调度系统 Sparrow 等。此外,Tachyon官网还提供了相关文档,如 用户文档 、 开发者文档 等。更多关于Tachyon的信息,读者可以登录其官网或其GitHub提供的 Wiki页面 查看。

感谢徐川对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

正文到此结束
Loading...