通过之前(上一篇HDFS的博客)的学习我们已经了解到了hdfs的一些大致基本情况,这篇博客主要补充一下针对HDFS1.0的不足,HDFS2.0的HA机制和Federation机制。
先对之前的学习做个小概括:
hadoop的特点有:
- 数据的分布存储:HDFS由一个管理节点和若干个数据节点组成,每个节点是一台普通计算机。底层的实现是将一个很大的数据进行切分成块,块分散存储在不同数据节点上。
- Hadoop中有一个作为主控的JobTracker,用于调度和管理其他的TaskTracker,JobTracker可运行于集群的任何一台机子上,而TaskTracker负责执行任务,必须运行于数据节点上。也就是说DataNode既是数据节点,也是计算节点
- 本地计算:数据存储在哪台机子上,就由这台机子进行这部分的计算,这样可以减少网络的传输,“移动计算比移动数据更经济”。
- 任务粒度:把原始数据集切分成小数据集的时候,通常让小数据集小于或等于HDFS中的一个块大小,便于一个数据集存储于一台机子,方便计算。有M个小数据集,就有M个Map任务,这M个Map任务分布于N台机器上,Reduce任务的数量则由用户指定。
- 任务管道:有R个Reduce任务,就有R个结果,通常这R个最终结果是不需要合并成一个结果的。他们可能又作为另一个计算任务的输入,开始另一个计算。
HDFS作为hadoop的分布式存储系统,具有:能处理超大文件,运行于廉价机器集群和流式访问数据。
同样的这些优点的背后就有它的