在配置 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
命令查看各個服務進程是否正常運行。 - 網絡連通性檢查:確保各節點之間的網絡連接正常。