Hadoop组件角色与配置文件对应关系详解

Hadoop组件角色与配置文件对应关系详解

根据前面的通俗比喻,我将详细解释Hadoop三大组件的配置文件如何与其角色对应。

一、hadoop环境配置文件:hadoop-env.sh

NameNode(确定谁是namenode)配置项

1
2
3
4
5
6
7
8
9
10
export JAVA_HOME=/opt/server/jdk1.8
export HADOOP_HOME=/opt/server/hadoop

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
export YARN_PROXYSERVER_USER=root

二、工人配置文件:workers

确定谁运行datanode以及nodemanager

1
2
3
master
slave1
slave2

三、全局协调配置文件:core-site.xml

NameNode(确定谁是namenode)配置项

1
2
3
4
5
6
7
8
9
10
11
12
13
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!-- 集群代理用户配置 hive远程模式 hive远程连接hdfs用到-->
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>

四、HDFS(仓库部门)配置文件

1. 核心配置文件:hdfs-site.xml

NameNode(元数据账本存放位置)配置项

1
2
3
4
5
<!-- 仓库账本存放位置 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/namenode</value>
</property>

DataNode(仓库)配置项

1
2
3
4
5
6
7
8
9
10
<!-- 工人存放货物的仓库位置 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/datanode</value>
</property>
<!-- 每件货物的备份数量 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

Secondary NameNode(仓库总管助理)配置项

1
2
3
4
5
<!-- 生产总管助理的工作地点 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave1:50090</value>
</property>

五、YARN(生产管理部)配置文件

1. 核心配置文件:yarn-site.xml

ResourceManager(生产管理部)配置

1
2
3
4
5
<!-- 生产厂长的办公室地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>

NodeManager(车间主任)配置

1
2
3
4
5
<!-- 生产环境准备 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

六、MapReduce(生产流水线)配置文件

1. 核心配置文件:mapred-site.xml

Mapper/Reducer(分拣/组装工人)配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!-- 使用YARN生产管理部来调度 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

<!-- 配置Mapper/Reducer的工作目录 -->
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>yarn.app.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

七、yarn环境的配置

1:yarn-env.sh

1
2
<!-- 设定JAVA环境变量 /etc/profile中已配置,可忽略-->
export JAVA_HOME=/opt/server/jdk1.8

八、mapred环境的配置

1:mapred-env.sh

1
2
<!-- 设定JAVA环境变量 /etc/profile中已配置,可忽略-->
export JAVA_HOME=/opt/server/jdk1.8

通过这些配置文件,我们可以精细控制Hadoop”工厂”中每个角色的行为,就像调整工厂各部门的工作规则一样。实际生产环境中,需要根据集群规模和数据特性来优化这些参数。

[up主专用,视频内嵌代码贴在这]