Hadoop框架中最核心的设计就是:MapReduce和HDFS。
MapReduce的思想是由Google的一篇论文所提及而被广为流传的,简单的一句话解释MapReduce就是“任务的分解与结果的汇总”。
HDFS是Hadoop分布式文件系统(Hadoop Distributed File System)的缩写,为分布式计算存储提供了底层支持。
NameNode:负责记录文件是如何分割数据块,以及这些分别被存储的。
DataNode:负责把HDFS数据块读写到本地文件系统中。
SecondaryNode:次要的nameNode,它与nameNode通信,保存最新的nameNode快照。
当nameNode宕机能及时当作备用nameNode使用。
Jobtracker:主要负责任务的接受,初始化,调度以及对TaskTracker的监控。
TaskTracker:具体的任务内容。
HDFS -写文件:
client - nameNode(写请求),nameNode根据文件大小分割数据块
nameNode - client(响应请求),响应nameNode的数据块信息.
client - dataNode(存取数据块,并且进行备份).
HDFS - 读文件:
client - nameNode(读请求).
nameNode - client(响应请求),返回nameNode数据块的信息.
client - dataNode(读数据块)
HDFS设计特点:
1.块存放:默认分三块保存。
2.心跳监控dataNode状态,如发现问题及时备份,保证数据安全.
3.数据复制dataNode失败,需要平衡节点的利用率。采用threshold配置.
4.数据交验采用crc32.
5.nameNode单点失败任务处理信息保存在本地系统文件.