Hadoop是一个由Apache基金会所开发的分布式系统的基础架构;
Hadoop的核心就是HDFS和MapReduce,HDFS为海量数据的持久化存储提供了一个分布式环境,MapReduce则是在HDFS的基础之上对海量数据进行计算;需要特别声明的是:MapReduce既是一个计算框架,也是一种编程思想,这种框架为海量数据分布式计算提供了可能性,编程思想则是实现这种计算的思路和灵魂。
HDFS自身设计的初衷就是部署在廉价的机器上的,因而必须提供容错性,因此HDFS自身就有高可用机制,可以对失效的节点的数据自动恢复,可以失效的节点数依赖于副本的设定
学习Hadoop应该首先了解Hadoop的各种部署方式,并明白各种部署方式的场景和作用,部署部署目的,而是在部署的过程中学习各个组件的功能、各个组件是如何协调的、如何进行基础的故障排错。
这篇手记会给介绍几种常见的部署方式,后续手记会介绍详细的部署和安装过程
1、本地模式
所谓本地模式,就是在单台服务器上进行开发和调试,这种模式不会使用HDFS,而是使用本地文件系统,Hadoop不会启动NameNode、DataNode、JobTracker和TaskTracker等服务进程,同一进程提供了所有的服务;该模式仅用于开发和调试,通常用于调试MapReduce程序逻辑是否正确。
2、伪分布式模式
伪分布式模式下,Hadoop的所有服务进程会一单独的守护进程运行,但全部运行在同一物理主机上,并不是真正的分布式,只是用来模拟小型集群。
启动的进程包括NameNode、DataNode、JobTracker和TaskTracker,可以通过jps命令查看;通常也是用于开发和调试
3、完全分布式模式
生产环境中,通常都是使用这种模式进行安装和部署。
该模式下,通常由几十上百台主机组成集群,规划在一些主机上运行HDFS,在一些主机上运行MapReduce,充分利用所有主机的存储和计算能力;
启动的进程包括NameNode、DataNode、JobTracker和TaskTracker,可以通过jps命令查看;但这些进程分布在不同的主机上,具体运行在那台主机上,由我们规划决定
4、HDFS HA
该模式是建立在完全分布式模式之上的,在完全分布式模型中,HDFS中DataNode是自身保证数据可靠性的,但所有的文件元数据和inode信息都是存储在NameNode的内存中的,因此必须为NameNode提供高可用机制,这在Hadoop 2.X版本中已得到解决;
大家了解HDFS HA就是为高可用NameNode的即可
5、Yarn HA
在Hadoop 1.X中任何分配和任务执行分别为JobTracker和TaskTracker,在2,X中开始使用ResourceManager和NodeManager来替换了,YARN也是一个计算框架,可以运行在MapReduce之上;NodeManager自身提供了失败后恢复机制,失败了可以再启动一个,但ResourceManager只有一个,因此必须为其设置高可用机制
YARN HA高可用,指的就是高可用ResourceManager进程
6、HDFS Federation
在超大集群规模的Hadoop环境中,NameNode自身会成为性能瓶颈,海量数据的元数据信息保存在但节点上,难以保证性能,因此我们需要将单个NameNode进行拆分,分成多个NameNode,但每个NameNode存储的元数据信息只是所有数据的一部分,相当于对单个NameNode进行了数据拆分
同样的,拆分之后我们也需要对每个NameNode做高可用设计
针对上述每一种安装和部署方式,在后续手记中,会有详细的安装和原理分析教程;
说明:本地模式很少使用,即使学习一般也是从伪分布式集群开始,因此我们的安装和配置教程也会从伪分布式开始,敬请关注
················································································································
欢迎关注课程:
企业级开源四层负载均衡解决方案--LVS
热门评论
学习了老师的shell课程,收获很大。看了老师这篇手记有个想法:老师能不能出一门hadoop运维的课程?也想跟着老师学习hadoop运维相关技术。