CentOS环境下HDFS与YARN集成实践指南
HDFS(Hadoop分布式文件系统)负责分布式存储,YARN(Yet Another Resource Negotiator)负责资源管理与任务调度,二者集成是构建Hadoop大数据生态的核心步骤。以下是在CentOS系统上的详细集成实践流程:
集成前需完成以下基础配置,确保集群环境一致性:
systemctl stop firewalld && systemctl disable firewalld)以简化端口测试;setenforce 0并修改/etc/selinux/config中SELINUX=disabled);yum install chrony -y && systemctl enable --now chronyd),避免节点间时间偏差。/etc/hosts文件,添加<IP地址> <主机名>映射(如192.168.1.100 namenode、192.168.1.101 datanode1),确保主机名解析正确。ssh-keygen -t rsa),并将公钥(id_rsa.pub)复制到所有DataNode节点(ssh-copy-id datanode1),实现免密登录。yum install java-1.8.0-openjdk-devel -y),并通过java -version验证安装(需显示1.8.0版本)。/usr/local/目录:wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local/
/etc/profile.d/hadoop.sh文件,添加以下内容:export HADOOP_HOME=/usr/local/hadoop-3.3.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
执行source /etc/profile.d/hadoop.sh使配置生效。<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://namenode:9000</value> <!-- NameNode地址 -->
    </property>
</configuration>
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value> <!-- 副本数(生产环境建议≥3) -->
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop-3.3.1/data/namenode</value> <!-- NameNode数据目录 -->
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/hadoop-3.3.1/data/datanode</value> <!-- DataNode数据目录 -->
    </property>
</configuration>
<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>namenode</value> <!-- ResourceManager所在节点 -->
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value> <!-- MapReduce Shuffle服务 -->
    </property>
</configuration>
mapred-site.xml不存在,可复制模板生成(cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml),然后添加:<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value> <!-- 绑定YARN作为资源调度框架 -->
    </property>
</configuration>
hdfs namenode -format
start-dfs.sh脚本启动HDFS服务,启动后可通过jps命令查看进程:start-dfs.sh
jps  # 应显示NameNode、DataNode进程(若配置了SecondaryNameNode,也会显示)
http://namenode:50070),查看集群状态;hdfs dfs -mkdir -p /input
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input  # 上传示例文件
start-yarn.sh脚本启动YARN服务,然后在所有DataNode节点启动NodeManager(若已同步配置文件,可直接在ResourceManager节点执行yarn-daemon.sh start nodemanager):start-yarn.sh
http://namenode:8088),查看ResourceManager与NodeManager状态;yarn node -list)。通过运行经典的WordCount程序,验证HDFS与YARN的集成是否成功:
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
/input为HDFS中的输入目录(需提前创建并上传文件);/output为输出目录(需确保不存在,YARN会自动创建);hdfs dfs -cat /output/part-r-00000查看结果。/output目录下生成统计结果文件。core-site.xml、hdfs-site.xml、yarn-site.xml需保持一致;