Alluxio的前身为Tachyon。Alluxio是一个基于内存的分布式文件系统;Alluxio以内存为中心设计,他处在诸如Amazon S3、 Apache HDFS 或 OpenStack Swift存储系统和计算框架应用Apache Spark 或Hadoop MapReduce中间,它是架构在底层分布式文件系统和上层分布式计算框架之间的一个中间件。

对上层应用来讲。Alluxio是一个管理数据訪问和高速存储的中间层,对底层存储而言。Alluxio消除了大数据业务和存储系统依赖和鸿沟, 隐藏底层存储的差异,主要职责是以文件形式在内存或其它存储设施中提供数据的存取服务。Alluxio支持的后端存储包含GCS、S3、Swift、GlusterFS、HDFS、MapR-FS、 secure HDFS、AlibabaOSS和NFS。

Alluxio应用场景

通常,在大数据领域,最底层的是分布式文件系统,如Amazon S3、Apache HDFS等,而较高层的应用则是一些分布式计算框架。如Spark、MapReduce、Hbase、Flink等,这些分布式框架。往往都是直接从分布式文件系统中读写数据,效率比較低。性能消耗比較大。

Alluxio居于传统大数据存储(如Amazon S3,Apache HDFS和OpenStack Swift等) 和大数据计算框架(如Spark,Hadoop Mapreduce)之间。为那些大数据应用提供一个数量级的加速,并且它仅仅要提供通用的数据訪问接口。就能非常方便的切换底层分布式文件系统。

Alluxio的组件

Alluxiozh包含一个Master和多个workers。在逻辑上 Alluxio由master、workers和clients组成。通过master和workers一起协同工作来提供服务并有协同管理员来维护和管理。而clients一般面向的就是大数据应用程序,如Spark 或MapReduce任务,它是数据訪问的发起者。通常情况。Alluxio用户仅仅须要跟client 进行交互,clients为用户提供统一的文件存取服务接口。

Alluxio系统架构

与其它诸如HDFS、HBase、Spark等大数据相关框架一致,Alluxio的主节点为Master,Alluxio支持部署一个或两个Master节点。即单节点或HA模式。Master负责管理全局的文件系统元数据,比方文件系统树等,Clients跟Master交互获取元数据。而从节点Worker负责管理本节点数据存储资源,这些资源包含本地Memory、SSD或HDD。

当HDFS、HBase、Spark等应用程序须要訪问Alluxio时。通过客户端先与主节点Master通讯,然后再和相应Worker节点通讯,进行实际的文件存取操作。全部的Worker会周期性地发送心跳给Master。维护文件系统元数据信息和确保自己被Master感知到,并在集群中正常提供服务。与HDFS、HBase等分布式系统设计模式是一致,Master不会主动发起与其它组件的通信。它仅仅是以回复请求的方式与其它组件进行通信。降低Master的工作负载。

Alluxio的生态

利用Alluxio将NAS设备接入Hadoop生态链。Dell EMC就ECS产品签订了合作协议。华为、HDS、HPE和NetApp也跟Alluxio有相似合作;通过一个中间层。可以让Hadoop、Spark、Storm、samza等选择訪问不论什么一种后端存储数据源。如 9000,AWS S3、HDFS、Ceph、Isilon、Gluster等。

搜索“ICT_Architect”增加微信公众号“架构师技术联盟”获取很多其它精彩内容。

Alluxio增强Spark和MapReduce存储能力的更多相关文章

  1. 重要 | Spark和MapReduce的对比,不仅仅是计算模型?

    [前言:笔者将分上下篇文章进行阐述Spark和MapReduce的对比,首篇侧重于"宏观"上的对比,更多的是笔者总结的针对"相对于MapReduce我们为什么选择Spar ...

  2. Spark 颠覆 MapReduce 保持的排序记录

    在过去几年,Apache Spark的採用以惊人的速度添加着,通常被作为MapReduce后继,能够支撑数千节点规模的集群部署. 在内存中数 据处理上,Apache Spark比MapReduce更加 ...

  3. Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力

    AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中.AlexNet主要使用到的新技术点如下. (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过 ...

  4. 详解MapReduce(Spark和MapReduce对比铺垫篇)

    本来笔者是不打算写MapReduce的,但是考虑到目前很多公司还都在用这个计算引擎,以及后续要讲的Hive原生支持的计算引擎也是MapReduce,并且为Spark和MapReduce的对比做铺垫,笔 ...

  5. spark与mapreduce的区别

    spark是通过借鉴Hadoop mapreduce发展而来,继承了其分布式并行计算的优点,并改进了mapreduce明显的缺陷,具体表现在以下几方面: 1.spark把中间计算结果存放在内存中,减少 ...

  6. spark和 mapreduce的比较

    网上查阅一些资料,收集整理如下: 1. 通用性 spark更加通用,spark提供了transformation和action这两大类的多个功能api,另外还有流式处理sparkstreaming模块 ...

  7. 云数据库RDS存储能力进化解析!

    数据库是企业IT系统的核心,其性能表现会直接影响整体业务系统的性能表现,而影响数据库性能因素包括系统架构设计.应用程序业务SQL语句.数据库参数优化配置.数据库运行的资源能力.系统架构设计和应用程序业 ...

  8. Spark的数据存储

    Spark本身是基于内存计算的架构,数据的存储也主要分为内存和磁盘两个路径.Spark本身则根据存储位置.是否可序列化和副本数目这几个要素将数据存储分为多种存储级别.此外还可选择使用Tachyon来管 ...

  9. Spark 与 MapReduce的区别

    学习参考自 http://spark-internals.books.yourtion.com/markdown/4-shuffleDetails.html 1.  Shuffle read 边 fe ...

随机推荐

  1. Android(java)学习笔记196:ContentProvider使用之内容观察者01

    1. 内容观察者 不属于四大组件,只是内容提供者ContentProvider对应的小功能. 如果发现数据库内容变化了,就会立刻观察到. 下面是逻辑图:       当A应用中银行内部的数据发生变化的 ...

  2. CAD交互绘制圆弧(com接口)

    在CAD设计时,需要绘制圆弧,用户可以在图面点圆弧起点,圆弧上的一点和圆弧的终点,这样就绘制出圆弧. 主要用到函数说明: _DMxDrawX::DrawArc2 由圆弧上的三点绘制一个圆弧.详细说明如 ...

  3. CAD参数绘制多行文字(网页版)

    在CAD设计时,需要绘制多行文字,用户可以设置设置绘制文字的高度等属性. 主要用到函数说明: _DMxDrawX::DrawMText 绘制一个多行文字.详细说明如下: 参数 说明 DOUBLE dP ...

  4. 【转】c语言中的定义和声明

    1. 变量的定义.声明 变量的声明有两种情况: 一种是需要建立存储空间的.例如:int  a.在声明的时候就已经建立了存储空间.这种声明是"定义性声明(defining declaratio ...

  5. spring的设计思想

    在学习Spring框架的时候, 第一件事情就是分析Spring的设计思想 在学习Spring的时候, 需要先了解耦合和解耦的概念 耦合: 简单来说, 在软件工程当中, 耦合是指对象之间的相互依赖 耦合 ...

  6. zabbix4.2学习笔记--新建用户组和用户

    新建用户组 zabbix中管理机器是以用户组划分,这里新建一个只读用户群组和只读用户 新建用户组 点击 管理-用户组-创建用户群组,如下图 点击创建之后,有三列设置,分别是用户群组.权限和标签过滤器, ...

  7. js【table】合并行,合并列

    eg: function hbh() { var tab = document.getElementById("tableID"); var maxCol = 2, val, co ...

  8. Hadoop架构模型

    1.hadoop 1.x架构模型:分布式文件存储系统:HDFSNameNode(主节点:管理元数据) secondaryNameNode(作用是合并元数据信息,辅助NameNode管理元数据信息)Da ...

  9. [Python3网络爬虫开发实战] 7.3-Splash负载均衡配置

    用Splash做页面抓取时,如果爬取的量非常大,任务非常多,用一个Splash服务来处理的话,未免压力太大了,此时可以考虑搭建一个负载均衡器来把压力分散到各个服务器上.这相当于多台机器多个服务共同参与 ...

  10. 零基础入门学习Python(25)--字典:当索引不好用时

    知识点 字典属于映射类型. 列表,元祖,字符串等属于序列类型 创建及访问字典 #创建一个字典 >>> dict1 = {'李宁':'一切皆有可能','耐克':'Just do it' ...