在 CentOS 上“集成 HDFS 和 YARN”,本质是在同一套 Hadoop 集群中同时部署 HDFS(存储)和 YARN(资源调度)。下面按实操流程说明,适用于 CentOS 7/8,Hadoop 3.x。
yum install java-1.8.0-openjdk-devel -y
java -version
vi /etc/hosts
示例:
192.168.1.10 master
192.168.1.11 node1
192.168.1.12 node2
useradd hadoop
passwd hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
tar -zxvf hadoop-3.3.6.tar.gz -C /opt
mv /opt/hadoop-3.3.6 /opt/hadoop
配置环境变量:
vi /etc/profile
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/dfs/data</value>
</property>
</configuration>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.local-dirs</name>
<value>/opt/hadoop/yarn/local</value>
</property>
</configuration>
vi $HADOOP_HOME/etc/hadoop/workers
node1
node2
hdfs namenode -format
start-dfs.sh
start-yarn.sh
jps
应包含:
Web 页面:
hdfs dfs -mkdir /test
hdfs dfs -put file.txt /test
运行 MapReduce 示例:
yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /test/file.txt /output
查看结果:
hdfs dfs -cat /output/part-r-00000
✅ 防火墙
systemctl stop firewalld
✅ SELinux
setenforce 0
✅ SSH 免密
ssh-keygen
ssh-copy-id node1
ssh-copy-id node2
HDFS + YARN 集成本质:
如果你需要:
可以继续问我。