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诞生于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页面查看。

source: http://www.infoq.com/cn/news/2015/03/tachyon-distributed--system

高性能、高容错、基于内存的开源分布式存储系统Tachyon的简单介绍的更多相关文章

  1. HBase -- 基于HDFS的开源分布式NoSQL数据库

    HBase(Hadoop Database)是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,我们可以利用HBase技术在廉价的PC上搭建起大规模结构化存储集群.同Google的Bigtable ...

  2. EQueue - 一个C#写的开源分布式消息队列的总体介绍(转)

    源: EQueue - 一个C#写的开源分布式消息队列的总体介绍 EQueue - 一个纯C#写的分布式消息队列介绍2 EQueue - 详细谈一下消息持久化以及消息堆积的设计

  3. GitHub开源库排名一百的简单介绍,值得收藏!

    GitHub Android Libraries Top 100 简介 本项目主要对目前 GitHub 上排名前 100 的 Android 开源库进行简单的介绍, 至于排名完全是根据 GitHub ...

  4. 基于Redis的开源分布式服务Codis

    Redis在豌豆荚的使用历程--单实例==>多实例,业务代码中做sharding==>单个Twemproxy==>多个Twemproxy==>Codis,豌豆荚自己开发的分布式 ...

  5. EQueue - 一个C#写的开源分布式消息队列的总体介绍

    前言 本文想介绍一下前段时间在写enode时,顺便实现的一个分布式消息队列equeue.这个消息队列的思想不是我想出来的,而是通过学习阿里的rocketmq后,自己用c#实现了一个轻量级的简单版本.一 ...

  6. (转)64位开源处理器Rocket的源代码简单介绍

    转载地址: http://blog.csdn.net/leishangwen/article/details/46604819 最近大概阅读了一下UCB发布的Rocket处理器的源码,对源代码各个文件 ...

  7. 《SPARK/TACHYON:基于内存的分布式存储系统》-史鸣飞(英特尔亚太研发有限公司大数据软件部工程师)

    史鸣飞:大家好,我是叫史鸣飞,来自英特尔公司,接下来我向大家介绍一下Tachyon.我事先想了解一下大家有没有听说过Tachyon,或者是对Tachyon有没有一些了解?对Spark呢? 首先做一个介 ...

  8. Tachyon---基于内存的分布式存储系统

    Tachyon是一个以内存为核心的开源分布式存储系统,也是目前发展最迅速的开源大数据项目之一.Tachyon为不同的大数据计算框架(如Apache Spark,Hadoop MapReduce, Ap ...

  9. (第6篇)大数据发展背后的强力推手——HBase分布式存储系统

    摘要: 今天我们介绍可在廉价PC Server上搭建起大规模结构化存储集群的分布式存储系统——HBase. 博主福利 给大家赠送一套hadoop视频课程 授课老师是百度 hadoop 核心架构师 内容 ...

随机推荐

  1. python3.0与2.x之间的区别

    python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...

  2. php动态滚动加载实例

    内容涉及:php.分页.jquery.div+css 实例下载:http://download.csdn.net/detail/roro5119/7373905 index.php <? //数 ...

  3. Yii2 的问题解决方案

    yii2 Class 'app\controllers\AccessControl' not found 一般是命名空间问题, 写成\yii\filters\AccessControl::classN ...

  4. renameTo()方法的用法

    使用renameTo()方法,可以将文件data.txt从C:\JavaApp\IOTest1\目录移动到C:\目录,并改名为newdata.txt import java.io.File; //将文 ...

  5. 经典K线组合图解 > 正文

    日K线波段中上下影线的箱体操作法(完整) http://video.sina.com.cn/v/b/130809461-2486130757.html!!经典K线组合图解 > 正文 http:/ ...

  6. HDU 4717 The Moving Points(三分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4717 题意:给出n个点的坐标和运动速度(包括方向).求一个时刻t使得该时刻时任意两点距离最大值最小. ...

  7. WindowManager.LayoutParams.type属性

    type 的取值: 应用程序窗口.      public static final int FIRST_APPLICATION_WINDOW = 1; 所有程序窗口的“基地”窗口,其他应用程序窗口都 ...

  8. java实现最基础的socket网络通信

    一.网络通信基础 网络中存在很多的通信实体,每一个通信实体都有一个标识符就是IP地址. 而现实中每一个网络实体可以和多个通信程序同时进行网络通信,这就需要使用端口号进行区分. 二.java中的基本网络 ...

  9. C++ STL之list容器的基本操作

    由于list和vector同属于序列式容器,有很多相同的地方,而上一篇中已经写了vector,所以这一篇着重写list和vector的不同之处和特有之处. 特别注意的地方: (1)STL中迭代器容器中 ...

  10. Android 开机动画启动过程详解

    Android 开机会出现3个画面: 1. Linux 系统启动,出现Linux小企鹅画面(reboot)(Android 1.5及以上版本已经取消加载图片): 2. Android平台启动初始化,出 ...