【摘要】:HDFS的设计中更多地考虑到了数据批处理,而不是用户交互处理。POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。将计算移动到数据附近,比将数据移动到应用所在显然更好,HDFS提供给应用这样的接口。
1.硬件失效是“常态事件”,而非“偶然事件”
HDFS可能是由上千台机器组成(如Yahoo的Hadoop集群有4096个节点),任何一个组件都有可能一直失效,因此数据的健壮性错误检测和快速、自动恢复是HDFS的核心架构目标。
2.流式数据访问
运行在HDFS上的应用和普通的应用不同,需要流式访问它们的数据集。HDFS的设计中更多地考虑到了数据批处理,而不是用户交互处理。比之数据访问的低延迟问题,更关键的在于数据并发访问的高吞吐量。POSIX标准设置的很多硬性约束对HDFS应用系统不是必需的。为了提高数据的吞吐量,在一些关键方面对POSIX的语义做了一些修改。
3.HDFS应用对文件要求的是write-one-read-many访问模型(www.xing528.com)
一个文件经过创建、写、关闭之后就不需要改变。这一假设简化了数据一致性问题,使高吞吐量的数据访问成为可能。典型的如MapReduce框架,或者一个web crawler应用都很适合这个模型。
4.移动计算的代价比移动数据的代价低
一个应用请求的计算,离它操作的数据越近就越高效,这在数据达到海量级别的时候更是如此。将计算移动到数据附近,比将数据移动到应用所在显然更好,HDFS提供给应用这样的接口。
5.在异构的软硬件平台间的可移植性
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。