基于Hadoop和Openstack云存储的研究(HDFS和Swift对比)
来源:互联网 发布:linux终端粘贴快捷键 编辑:程序博客网 时间:2024/06/15 21:44
前几天在知网上翻了好多论文,昨天开始一篇一篇地看,由于有的论文时间比较早,甚至是3年前的,所以很多部分只是对当前的技术有一个展望和综述,不过这样对我这种初学者也有好处,今天看得这篇文章是李金亮,翟永刚,汤向东发表的一篇题为《基于Hadoop和Openstack云存储的研究》的论文,以下为一些记录和感想。
1.HDFS 和Swift 优缺点
HDFS 虽然有着许多优点,但也存在着一些缺点。
首先,HDFS 是用来处理大吞吐量的离线数据,它需要牺牲一定的延时为代价,因此它不太适合哪些对延时有较高要求的应用程序。
其次,HDFS 被设计用来处理大数据文件,它通常对大文件进行优化,而在处理大量小文件时反而会使其耗费更多内存,从而影响数据处理的效率。此外,HDFS 中一次只能写入一个文件,不支持多用户并发写入。
相反,Swift 用来存储多个任意大小文件的数据,而且支持对文件多用户并发写入,但Swift 没有目录结构,不支持嵌套,也不支持文件的重写,只能新建,不支持服务器上的数据查询和处理,而且当容器的对象超过100 万个时,其性能就会急剧下降。因此,如果能将HDFS 和Swift 存储进行整合,可极大提高云存储的数据处理效率,降低硬件成本。
2.HDFS 和Swift 整合方式
由于HDFS 采用Java 编写,而Swift 采用Python 编写,因此它们之间互不兼容。通常情况下,要想使用Hadoop对Swift 中存储的大量数据进行处理,一般先将Swift 中的数据导出到中间服务器,然后再将这些数据导入到HDFS中,最后才能通过MapReduce 技术对这些数据进行分布式处理。这种方法在处理少量数据时有一定的可用性,但在处理大量数据时,导出和导入数据的过程需要耗费大量的时间,而且还会耗费更多额外的存储。
为此,我们可以设计一个Swift 对象适配器(Adapter),用来进行接口适配,将Swift 中类的接口转变成Hadoop 所希望的另一个接口,使得原本两个因为接口而不兼容的类能够在一起工作。用来进行接口适配,将Swift 中类的接口转变成Hadoop 所希望的另一个接口,使得原本两个因为接口而不兼容的类能够在一起工作。
Swift 虽然采用Python 语言编写,但是也提供了多种编程语言的客户端API,其中Swift 的Java 客户端API 是一个名叫Java-cloudfiles 的开源项目,它支持对Swift 存储的各种操作。
Swift 适配器的作用就是调用Swift 的Java 客户端API,实现了对Swift 存储的操作,Hadoop MapReduce API调用Hadoop FileSystem API,对于MapReduce 来说,底层的HDFS 和Swift 都是透明的。适配器所在层次结构如图1 所示。
通过Swift 适配器,将高可用的Swift 对象存储作为Hadoop 的底层存储系统,使得Hadoop 在存储层面具有了高可用性。把Swift 适配器部署到已有的Hadoop 集群中是简单快捷的。原本用来分析存储在HDFS 中的数据的MapReduce 应用程序,也无需修改即可分析存储在Swift中的数据。
感谢原作者,摘录部分如侵则删。
- 基于Hadoop和Openstack云存储的研究(HDFS和Swift对比)
- Hadoop分布式文件系统(HDFS)和OpenStack对象存储(Swift)的技术差异
- HDFS文件系统和OpenStack swift对象存储有何不同
- OpenStack存储:Cinder和Swift的解释
- 有关Hadoop分布式文件系统和OpenStack对象存储(swift)的不同
- Hadoop和OpenStack对象存储的区别
- 讨论:HDFS和OpenStack对象存储的技术差异
- 【恒天云】OpenStack和CloudStack对比研究报告
- OpenStack和CloudStack对比研究报告
- OpenStack和CloudStack对比研究报告
- 为Hadoop存储层增加对OpenStack Swift的支持
- 为Hadoop存储层增加对OpenStack Swift的支持
- OpenStack和Hadoop的区别
- 基于storm和hadoop的广告系统研究【1】
- 基于storm和hadoop的广告系统研究【2】
- 基于storm和hadoop的广告系统研究【3】
- 基于storm和hadoop的广告系统研究【4】
- 基于storm和hadoop的广告系统研究【5】
- 蓝的成长记——追逐DBA(17):是分享,还是消费,在后IOE时代学会成长
- C#做的剪刀石头布游戏
- Android反编译工具简介
- ajax访问遇到Session失效问题
- SAP编号范围对象相关函数
- 基于Hadoop和Openstack云存储的研究(HDFS和Swift对比)
- 四大组件
- 使用IE导入和导出cer和crt格式证书
- Android发送邮件
- cocos2d-x 3.6版连连看版本控制
- 从主机端能够连接到虚拟机里面的shadowsocks代理么???
- nyoj 70 阶乘因式分解(二)
- Activity四种启动模式
- 批量删除git分支