04 Hadoop思想与原理
1.X,2.X区别:
从HDFS角度来看:
1:Hadoop2.0新增了HDFS HA机制,HA增加了standbynamenode进行热备份,解决了1.0的单点故障问题。
2:Hadoop2.0新增了HDFS federation,解决了HDFS水平可扩展能力。
允许有多个namenode独立运行组成联邦。每个datanode向所有name进行注册。
每个namenode维护一个命名空间卷(互相独立)上层通过一个挂载表组织来访问数据。
命名空间卷:包括池块和命名空间元数据
块池:逻辑概念,该命名空间文件的所有块;可能在不同机器上。
命名空间元数据:命名空间元数据
这两个特性会在之后的文章中提到。
从mapreduce角度来看:
2.0相比于1.0 新增了YARN框架,Mapreduce的运行环境发生了变化
在1.0中:由一个JobTracker和若干个TaskTracker两类服务组成,其中JobTracker负责资源管理和所有作业的控制,TaskTracker负责接收来自JobTracker的命令并执行它。所以MapReduce即是任务调度框架又是计算框架,1.0中会出现JobTracker大包大揽任务过重,而且存在单点故障问题,并且容易出现OOM问题,资源分配不合理等问题。
在2.0中:MASTER端由ResourceManager进行资源管理调度,有ApplicationMaster进行任务管理和任务监控。SLAVE端由NodeManager替代TaskTracker进行具体任务的执行,所以MapReduce2.0只是一个计算框架,具体资源调度全部交给Yarn框架。
2.X和3.X最主要区别:
1:Java运行环境升级为1.8;
2:HDFS支持纠删码:
纠删码相比于副本机制节省了一半以上的存储空间,普通副本机制需要3倍存储空间而这种机制只需1.4倍即可。
3::YARN时间线服务:
4:支持多余2个以上的NameNodes
3.0支持单active namenode+多standby namenode部署方式进一步提升了可用性。
5:MapReduce本地优化,性能提升了30%。