Alluxio增强Spark和MapReduce存储能力
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存储能力的更多相关文章
- 重要 | Spark和MapReduce的对比,不仅仅是计算模型?
[前言:笔者将分上下篇文章进行阐述Spark和MapReduce的对比,首篇侧重于"宏观"上的对比,更多的是笔者总结的针对"相对于MapReduce我们为什么选择Spar ...
- Spark 颠覆 MapReduce 保持的排序记录
在过去几年,Apache Spark的採用以惊人的速度添加着,通常被作为MapReduce后继,能够支撑数千节点规模的集群部署. 在内存中数 据处理上,Apache Spark比MapReduce更加 ...
- Local Response Normalization作用——对局部神经元的活动创建竞争机制,使得其中响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,增强了模型的泛化能力
AlexNet将LeNet的思想发扬光大,把CNN的基本原理应用到了很深很宽的网络中.AlexNet主要使用到的新技术点如下. (1)成功使用ReLU作为CNN的激活函数,并验证其效果在较深的网络超过 ...
- 详解MapReduce(Spark和MapReduce对比铺垫篇)
本来笔者是不打算写MapReduce的,但是考虑到目前很多公司还都在用这个计算引擎,以及后续要讲的Hive原生支持的计算引擎也是MapReduce,并且为Spark和MapReduce的对比做铺垫,笔 ...
- spark与mapreduce的区别
spark是通过借鉴Hadoop mapreduce发展而来,继承了其分布式并行计算的优点,并改进了mapreduce明显的缺陷,具体表现在以下几方面: 1.spark把中间计算结果存放在内存中,减少 ...
- spark和 mapreduce的比较
网上查阅一些资料,收集整理如下: 1. 通用性 spark更加通用,spark提供了transformation和action这两大类的多个功能api,另外还有流式处理sparkstreaming模块 ...
- 云数据库RDS存储能力进化解析!
数据库是企业IT系统的核心,其性能表现会直接影响整体业务系统的性能表现,而影响数据库性能因素包括系统架构设计.应用程序业务SQL语句.数据库参数优化配置.数据库运行的资源能力.系统架构设计和应用程序业 ...
- Spark的数据存储
Spark本身是基于内存计算的架构,数据的存储也主要分为内存和磁盘两个路径.Spark本身则根据存储位置.是否可序列化和副本数目这几个要素将数据存储分为多种存储级别.此外还可选择使用Tachyon来管 ...
- Spark 与 MapReduce的区别
学习参考自 http://spark-internals.books.yourtion.com/markdown/4-shuffleDetails.html 1. Shuffle read 边 fe ...
随机推荐
- CREATE VIEW - 定义一个视图
SYNOPSIS CREATE [ OR REPLACE ] VIEW name [ ( column_name [, ...] ) ] AS query DESCRIPTION 描述 CREATE ...
- CREATE CONVERSION - 定义一个用户定义的码制转换
SYNOPSIS CREATE [DEFAULT] CONVERSION name FOR source_encoding TO dest_encoding FROM funcname DESCRIP ...
- 十六进制字符串转byte (无符号字符串);
方法一: unsigned char* hexstr_to_char(const char* hexstr) { size_t len = strlen(hexstr); IF_ASSERT(len ...
- js 页面图片等元素在普通元素中滚动动态加载技术
/*! * 2012-01-13 v1.1 偏移值计算修改 position → offset * 2012-09-25 v1.2 增加滚动容器参数, 回调参数 * 2015-11-17 v1.3 只 ...
- (十二)python3 迭代器
可以直接作用于 for 循环的对象统称为可迭代对象: Iterable .一类是集合数据类型,如 list . tuple . dict . set . str 等,一类是 generator ,包括 ...
- Python学习之单继承与多继承
继承 面向对象编程语言的一个主要功能就是“继承”. 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. (1) 单继承:python同时支持类的继承 ...
- 91-Williams' Percent Range 威廉指标.(2015.7.4)
Williams' Percent Range 威廉指标 ~计算: %R = (HIGH(i-n)-CLOSE)/(HIGH(i-n)-LOW(i-n))×100 注解:CLOSE: 当前时段的收盘价 ...
- hihocoder 1515 分数调查(树形dp)
hihocoder 1515 分数调查 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi的学校总共有N名学生,编号1-N.学校刚刚进行了一场全校的古诗文水平测验. ...
- ASP.NET MVC的帮助类HtmlHelper和UrlHelper
在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ...
- Python字典(Dictionary)
Python字典 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = {key1 : value1, ...