一、前提和设计目标
1、硬件错误是常态,而非异常情况, HDFS可能是有成百上千的 server 组
成,任何一个组件都有可能一直失效, 因此错误检测和快速、 自动的恢复是
HDFS的核心架构目标。
2、跑在 HDFS上的应用与一般的应用不同, 它们主要是以流式读为主, 做批
量处理;比之关注数据访问的低延迟问题, 更关键的在于数据访问的高吞吐
量。
3、HDFS以支持大数据集合为目标,一个存储在上面的典型文件大小一般都
在千兆至 T 字节,一个单一 HDFS实例应该能支撑数以千万计的文件。
4、 HDFS应用对文件要求的是 write-one-read-many 访问模型。一个文件
经过创建、写,关闭之后就不需要改变。这一假设简化了数据一致性问题,
使高吞吐量的数据访问成为可能。典型的如 MapReduce框架,或者一个 web
crawler 应用都很适合这个模型。
5、移动计算的代价比之移动数据的代价低。一个应用请求的计算,离它操
作的数据越近就越高效, 这在数据达到海量级别的时候更是如此。 将计算移
动到数据附近,比之将数据移动到应用所在显然更好, HDFS提供给应用这
样的接口。
6、在异构的软硬件平台间的可移植性。
二、
三、
二、 Namenode和 Datanode