如下图所示:
client —用户
switch—交换机
rack—机架
namenode—名称节点,是hdfs(分布式文件系统)的守护程序,起到一个总控制的作用,记录文件是如何分割成数据块以及这些数据块是存在哪些节点上的。对内存和io进行集中管理,它是一个单点,所以一旦namenode崩溃,整个hadoop将崩溃。用户是先通过访问namenode,来明确文件所在的数据节点位置。(核心的功能)
secondlynamenode—辅助名称节点,是namenode的后备,namenode会与其进行通讯,将文件信息备份到secondlynamenode上,减少namenode的压力,但必须手动修补集群崩溃的问题,所以namenode还是单点形式的。
datanode—负责文件的具体读写,数据的存放。
jobtracker—处理用户提交的作业、将作业切割成若干个task(程序)分配到datanode(数据)里。重启失败的task,释放空间。与namenode相同,在一个集群里也只有一个。
tasktacker—任务跟踪器,与datanode结合(程序+数据),管理各自节点的tasktacker,每个节点只有一个tasktacker但可以执行多个jvm用于执行mapreduce任务。它会与jobtacker交互。
master—运行namenode、secondlynamenode、jobtacker的机器,一般会namenode、jobtacker一台机器,secondlynamenode一台机器。
slave—运行tasktacker、datanode。