整理总结 --- HDFS HDFS一些疑问

目前Hadoop只支持单用户写,不支持并发多用户写。
可以使用Append操作在文件的末尾添加数据,但不支持在文件的任意位置进行修改。

HDFS设计之处并不支持给文件追加内容,这样的设计是有其背景的
但从HDFS2.x开始支持给文件追加内容,
只需要将hdfs-site.xml中的以下属性修改为true就行。

1. 为什么HDFS不支持多个writer同时写一个文件,即不支持并发写? 

从HDFS的设计角度,和使用场景,多个writer同时向HDFS的同一文件执行写操作, 这需要昂贵的同步机制不说, 最重要的是这种做法将各写操作顺序化, 不利于各写任务的并行

2. 为什么HDFS在后期加上了对文件追加(append)操作的支持? 

HDFS设计文档上写着: HDFS的应用程序需要对文件实行一次性写,多次读的访问模式

文件一旦建立,然后写入,关闭, 不需要再更改。这样的假定简化了数据一致性问题并使高数据吞吐量成为可能

符合文件系统用户的期望,能是业务场景需要, 这个有待考量,(待改善)

3. 为什么追加操作也只能是单个writer? 

一个文件多个writer的话, google工程师(GFS实现了原子追加),事实证明它带来的痛苦比带来的好处多。

所以追加操作也是 单 writer

4. 多个用户需要追加一个日志怎么办?

序列化写操作至单个进程,此进程可以确保副本是保持一致的。 

 

参考:

http://coderplay.iteye.com/blog/1067463

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值