要谈及Hadoop的容错性,就不得不先从Hadoop的组成说起。Hadoop的1版本可以理解为是由MapReduce离线处理框架和HDFS文件系统组成。而Hadoop的2版本在1的基础上,增加了YARN资源管理系统。因为我自己接触2的时间不长,今天就针对前两个来谈Hadoop的容错性。
一、MapReduce的容错性:
1, map或reduce运行时因代码原因而抛出的异常。在这种情况下,子进程JVM会在进程退出前向TaskTracker父进程发送错误报告。在日志中记录该错误。
2, TaskTracker失败:有TaskTracker运行缓慢或崩溃而导致无法向JobTracker发送心跳,JobTracker会将该TaskTracker从任务调度池中移除,并重新调度该任务。
3, JobTracker失败:这种失败发生的概率很小;但一旦发生导致的后果最为严重,因此通过Zookeeper协调机制来降低这种问题发生的概率。
总结:
JobTracker 对应于 NameNode
TaskTracker 对应于 DataNode
NameNode和DataNode是只对数据存放而言的
JobTrac