在配置 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
命令查看各个服务进程是否正常运行。 - 网络连通性检查:确保各节点之间的网络连接正常。