Hadoop集群中节点角色定义

本文介绍了Hadoop中不同角色的功能及其工作原理,包括NameNode和DataNode在HDFS中的职责,以及JobTracker和TaskTracker在MapReduce中的作用。

Hadoop分别从两个角度将主机划分为两种角色。

最基本的划分原则为Master和Slave,即主人和奴隶;

第一,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录相当于主人,而NameNode就是目录管理者);​

       NameNode是主节点,存储文件的元数据如文件名,文件目录结构,文件属性(生成时间,副本数,文件权限),以及每个文件的块列表以及块所在的DataNode等等。它是一个中心服务器,单一节,负责管理文件系统的名字空间(namespace)以及客户端对文件的访问,它维护着每个文件系统树和整棵树内所有的文件和目录,这些信息已两个文件形式永久保存在本地磁盘上:命名控件镜像文件(Fsimage)和编辑日志(Edit log)。​

        DataNode在本地文件系统存储文件块数据,以及块数据的校验和。可以创建、删除、移动或重命名文件,当文件创建、写入和关闭之后不能修改文件内容。一个数据块在DataNode以文件存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括数据块的长度,块数据的校验和,以及时间戳。DataNode启动后向NameNode注册,通过后,周期性(1小时)向NameNode上报所有的块信息。心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode 的心跳,则认为该节点不可用。

        文件操作,NameNode负责文件元数据的操作,DataNode负责处理文件内容的读写请求,跟文件内容相关的数据流不经过NameNode,只会询问它跟那个DataNode联系,否则NameNode会成为系统的瓶颈

第二,从MapReduce的角度,将主机划分JobTracker 和TaskTracker(一个job经常被划分为多个Task,从这个角度不难理解它们之间的关系)​;

         在MapReduce中作业(Job)是客户端需要执行的工作单元,它包含了输入数据、MapReduce程序和配置信息。Hadoop将作业分为若干个小任务(task)来执行,其中每个小任务又分为Map任务和Reduce任务。两类节点控制着作业执行过程:一个JobTracker和多个TaskTracker。

        JobTracker主要就是调度TaskTracker来运行小任务,协调所有运行在系统上的作业。TaskTracker在运行小任务的时候,将进度报告给JobTracker,这样一旦发生错误,就由JobTracker来负责调度另一个TaskTracker。TaskTracker每隔3秒向JobTracker发送心跳来询问是否有任务可做,如有则让你分发任务给它,此时就是slave主动向master咨询。

转载于:https://www.cnblogs.com/gy19920604/p/5632864.html

### Hadoop集群节点配置 #### 主节点的作用与重要性 Hadoop集群中的节点(NameNode)负责管理文件系统的命名空间以及客户端对文件的访问操作。作为整个分布式文件系统的核心组件,它保存着元数据信息并协调DataNodes的工作[^1]。 #### 配置核心参数 为了确保主节点能够正常工作,在`$HADOOP_HOME/etc/hadoop/core-site.xml` 文件中需设置如下关键属性: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://namenode_host:8020</value> </property> </configuration> ``` 此配置指定了默认文件系统的协议和名称节点地址。 #### 调整内存分配策略 考虑到大数据处理的需求,适当调整JVM堆大小可以提高性能表现。编辑 `$HADOOP_HOME/etc/hadoop/hadoop-env.sh` 文件来修改 `HADOOP_NAMENODE_OPTS` 变量值: ```bash export HADOOP_NAMENODE_OPTS="-Xmx4g -Djava.net.preferIPv4Stack=true" ``` 上述命令将最大堆尺寸设为4GB,并强制使用IPv4网络栈[^3]。 #### 数据目录设定 在生产环境中建议为主节点指定多个磁盘分区用于存储临时数据,从而实现负载均衡的效果。通过编辑 `$HADOOP_HOME/etc/hadoop/hdfs-site.xml` 来完成这项任务: ```xml <configuration> <property> <name>dfs.namenode.name.dir</name> <value>/data/nn/dn,/disk2/data/nn/dn</value> </property> </configuration> ``` 这里定义了两个不同的本地路径供NameNode持久化日志记录之用。 #### 安全机制启用 当涉及到敏感业务场景时,开启Kerberos认证服务可增强安全性。具体做法是在core-site.xml里加入安全模式开关及相关参数: ```xml <configuration> <property> <name>hadoop.security.authentication</name> <value>kerberos</value> </property> </configuration> ``` 这一步骤使得所有通信都经过严格的验证流程[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值