上周末有幸参加了Alluxio(之前也叫Tachyon),七牛云和示说网举办的Alluxio上海Meetup,之前我并没有在真实应用场景中使用过Alluxio,对其适用的应用场景一直报怀疑态度。自信聆听其创始人的演讲之后,感觉这个项目还挺有意思,对Alluxio简单总结一下:

  • DAL(数据访问层)

Alluxio提供了各种文件访问API,包括兼容HDFS的API,Alluxio特有的数据访问API,Rest API和FUSE API,特别是FUSE API,支持POSIX标准的文件访问接口,让很多单机版的程序(如TensorFlow),可以享受大数据和云端的数据存取。不过它并不支持随机的文件写访问,想想也合理,毕竟底层文件存储系统可能是HDFS或者S3;

  • 统一数据访问

依然如上图,Alluxio底层的存储系统可以是亚马逊的S3,Google的存储,阿里云OSS,也可以是HDFS,甚至是单机的SAS,NFS。让这些文件系统都可以无缝与现有的大数据平台(通过HDFS Compatible API),或者单机版软件(通过FUSE API)完全兼容。

  • 透明的文件缓存抽象

高效访问数据的时候,如何做好文件缓存,其实对应应用程序开发者而言,有时候出于性能的考虑是非常重要的,Alluxio提供了透明的缓存方案,让内存(DRAM),本地快速存储器(SSD),本地慢速存储器(HDD)以及云端存储(HDFS/OSS/S3)等,形成一个层次化的缓存机制,让热的数据尽可能接近快速访问设备,这个对于深度学习和其它反复迭代访问数据的模型而言,性能的提升就不言而喻了。

那么Alluxio的主要应用场景有哪些呢?

  1. 基于SAS平台单机应用,想无缝扩容,可以考虑用Alluxio的FUSE API,底层用HDFS或者其它云端存储。
  2. 基于HDFS的分布式应用,想访问单机或者NFS的设备上的文件,可以考虑用HDFS Compatiable API。
  3. 反复迭代读取远端(比如云端,跨数据中心,跨集群,也可以是超大HDFS集群中加速某个应用的数据访问)数据,可以部署Alluxio

Alluxio应用场景在传统的小型集群中可能碰不太到,但是越来越多的应用都是混合云的情况,特别是数据和计算分离的场景,异构的数据存储带来的系统耦合,都可以通过Alluxio来解耦,不过目前Alluxio也有自身的一些问题,多个副本可能同时存在多个Alluxio个节点上,造成了事实上的数据缓存浪费,2.0版本中可能会有所更新。

不过最有意思的,来自与Alluxio初创成员讲分布式系统设计中的坑,不完全是针对Alluxio的,而是开发Alluxio类似这种大型分布式系统,肯能碰到的经验和收获,包括netty的资源泄露问题,jvm的问题等等,更多细节可以看看示说网Alluxio 2.0 Overview分享。

Alluxio原理和应用场景随笔的更多相关文章

  1. Java进阶(七)正确理解Thread Local的原理与适用场景

    原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...

  2. ThreadLocal 原理和使用场景分析

    ThreadLocal 不知道大家有没有用过,但至少听说过,今天主要记录一下 ThreadLocal 的原理和使用场景. 使用场景 直接定位到 ThreadLocal 的源码,可以看到源码注释中有很清 ...

  3. 深入解析ThreadLocal 详解、实现原理、使用场景方法以及内存泄漏防范 多线程中篇(十七)

    简介 从名称看,ThreadLocal 也就是thread和local的组合,也就是一个thread有一个local的变量副本 ThreadLocal提供了线程的本地副本,也就是说每个线程将会拥有一个 ...

  4. 蓝牙协议分析(12)_LQ和RSSI的原理及应用场景

    在蓝牙协议栈的物理层,有这样两个比较有用的参数:LQI和RSSI.它们都是通过接收端,判断当前无线环境的质量(链路质量),以指导后续的动作.但这两个数值的计算原理和使用场景又有很大的差别. LQI ( ...

  5. 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?

    在日常开发中,尤其是业务开发,少不了利用 Java 对数据库进行基本的增删改查等数据操作,这也是 Java 工程师的必备技能之一.做好数据操作,不仅仅需要对 Java 语言相关框架的掌握,更需要对各种 ...

  6. [转帖]Docker五种存储驱动原理及应用场景和性能测试对比

    Docker五种存储驱动原理及应用场景和性能测试对比 来源:http://dockone.io/article/1513 作者: 陈爱珍 布道师@七牛云   Docker最开始采用AUFS作为文件系统 ...

  7. laravel基础课程---7、文件处理、闪存、cookie(cookie原理和使用场景)

    laravel基础课程---7.文件处理.闪存.cookie(cookie原理和使用场景) 一.总结 一句话总结: 页面请求服务器的时候是把这个页面中所有的cookie都带上了的,cookie里面也存 ...

  8. 第36讲 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景

    在日常开发中,尤其是业务开发,少不了利用 Java 对数据库进行基本的增删改查等数据操作,这也是 Java 工程师的必备技能之一.做好数据操作,不仅仅需要对 Java 语言相关框架的掌握,更需要对各种 ...

  9. Dockerfile多阶段构建原理和使用场景

    本文转载自Dockerfile多阶段构建原理和使用场景 导语 Docker 17.05版本以后,新增了Dockerfile多阶段构建.所谓多阶段构建,实际上是允许一个Dockerfile 中出现多个 ...

随机推荐

  1. BIEE总结

    一,数据仓库,BI涉及到的相关概念  1.DW:    即数据仓库(Data Warehouse),是一个面向主题的(Subject Oriented).集成的(Integrated).相对稳定的(N ...

  2. XmlIgnore的使用

    public class Group { public string GroupName; [XmlIgnore] public string Comments; } 在序列化时,其结果如下所示 &l ...

  3. mysql服务器硬件配置选择参考

    这是在网上找的一个关于如何评估一个mysql服务器的硬件需求的文章,转载以备用 5 Minute DBA – Database Server Hardware Selection Posted on  ...

  4. Python初学者第十三天 三级菜单程序小作业

    13day 作业题目: 三级菜单 作业需求: 数据结构: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村' ...

  5. ELK系统分析Nginx日志并对数据进行可视化展示

    结合之前写的一篇文章:ELK日志分析平台搭建全过程,上篇文章主要讲了部署方法.而这篇文章介绍的是单独监控nginx 日志分析再进行可视化图形展示. 本文环境与上一篇环境一样,前提 elasticsea ...

  6. August 20th 2017 Week 34th Sunday

    Life is not a race, but a journey to be savored each step of the way. 生活不是一场赛跑,而是每一步都应该细细品尝的人生旅程. No ...

  7. 利用python查看电脑系统信息

    #查看python默认编码格式 >>> import sys >>> print sys.getdefaultencoding() #python 2.x 默认编码 ...

  8. strerror的坑

    最近写的一段代码,总是出core,精简了一下,稳定复现. #include <stdio.h> #include <errno.h> int main() { printf(& ...

  9. Who are you, What is the science

    Please read:  地球月球有多大? 我们乃至我们赖以生存的地球, 甚至是我们硕大的银河系放到茫茫大宇中真的不过是一粒尘埃, 我们司空见惯的事物,我们习以为常的生活,我们笃定信奉的科学, 是不 ...

  10. IOS Charles(代理服务器软件,可以用来拦截网络请求)

    什么是Charles Charles是一款代理服务器软件,可以用来拦截网络请求 利用Charles能得知大部分公司app的数据来源和数据格式 下载地址:http://www.charlesproxy. ...