在配置 YARN 集群前,要先完成以下准备工作:
- 集群环境规划:明确各节点的角色,如 ResourceManager、NodeManager 等。
- 网络环境搭建:保证各个节点之间能够通过网络互通。
- 时间同步设置:安装 NTP 服务,确保集群中所有节点的时间保持一致。
- 用户创建:创建一个专门用于 Hadoop 操作的用户,例如
hadoop
。 - SSH 无密码登录配置:实现各节点间的无密码 SSH 访问。
配置步骤
1. 配置 Hadoop 环境变量
编辑~/.bashrc
文件,添加如下内容:
bash
# Hadoop环境变量
export HADOOP_HOME=/path/to/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=$HADOOP_HOME
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使环境变量生效:
bash
source ~/.bashrc
2. 配置core-site.xml
该文件主要用于配置 Hadoop 的核心参数,比如 HDFS 的 NameNode 地址:
xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://namenode:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/path/to/hadoop/tmp</value>
</property>
</configuration>
3. 配置hdfs-site.xml
此文件用于配置 HDFS 的相关参数:
xml
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/path/to/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/path/to/datanode</value>
</property>
</configuration>
4. 配置yarn-site.xml
该文件用于配置 YARN 的核心参数:
xml
<configuration>
<!-- ResourceManager地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>resourcemanager</value>
</property>
<!-- NodeManager使用的容器运行时 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 启用内存和CPU资源限制 -->
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>8192</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>4</value>
</property>
<!-- 容器的最小和最大内存 -->
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
</property>
</configuration>
5. 配置mapred-site.xml
该文件用于配置 MapReduce 的运行方式:
xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
</configuration>
6. 配置workers
文件
在该文件中列出所有的 NodeManager 节点,每行一个节点:
plaintext
node1
node2
node3
集群启动
1. 格式化 HDFS
首次启动 HDFS 前,需要进行格式化操作:
bash
hdfs namenode -format
2. 启动 HDFS
bash
start-dfs.sh
3. 启动 YARN
bash
start-yarn.sh
4. 启动历史服务器(可选)
bash
mr-jobhistory-daemon.sh start historyserver
验证配置
-
查看 Web 界面:
- ResourceManager 的 Web 界面地址为:
http://resourcemanager:8088
- NameNode 的 Web 界面地址为:
http://namenode:9870
- ResourceManager 的 Web 界面地址为:
-
运行测试作业:
bash
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar pi 10 100
常见问题排查
- 检查日志文件:日志文件位于
$HADOOP_HOME/logs
目录下。 - 检查进程状态:使用
jps
命令查看各个服务进程是否正常运行。 - 网络连通性检查:确保各节点之间的网络连接正常。