Hadoop的基本构造
总体来说,hadoop是用来实现分布式存储与分布式计算这些思想的。
Hadoop的结构是主从结构(master/slave)
运行hadoop意味着在网络分布的多个服务器上运行守护进程,这些守护进程的角色有:NameNode,DataNode,Secondary NameNode,Job Tracker, Task Tracker.
Namenode
NameNode在Hadoop集群的master,它指导slave的datanode执行底层I/O任务。它跟踪文件如何被分成块,而这些块又被哪些节点存储,监控分布式系统整体状态。
因为Namenode会消耗大量内存,一般NameNode所在的服务器不会进行存储和计算,所以NameNode服务器不会同时是Datanode(存储)和TaskTracker(Mapreduce计算)。
DataNode
DataNode是守在slave节点的守护进程,它被NameNode指导和监控。
Secondary NameNode
SNN是HDFS的辅助守护进程。
Job Tracker
Hadoop的master/slave结构,JobTracker通常运行在服务器的主节点上。它分配map和recuse任务给Tasktracker,如果任务失败,它将自动重启任务(可以收动设置重启次数)。
TaskTracker
JobTracker作为master,检测整个计算过程。TaskTracker管理各个slave的执行情况。每个节点只有一个TaskTracker,但是它可以生成多个JVM(Java虚拟机)并行处理多个map和reduce任务。
TaskTracker不断与JobbTracker通信,如果JobTracker在指定时间没有收到TaskTracker的汇报,则默认此节点崩溃,会重启任务。
在大型数据处理中,一般Namenode和Jobtracker分别在一个机器上,每个slave存在一个NameNode和TaskTracker,在存储节点的同一节点上运行计算,增加效率。