centos

CentOS HDFS与YARN集成实践

小樊
50
2025-10-11 11:05:28
栏目: 智能运维

CentOS环境下HDFS与YARN集成实践指南
HDFS(Hadoop分布式文件系统)负责分布式存储,YARN(Yet Another Resource Negotiator)负责资源管理与任务调度,二者集成是构建Hadoop大数据生态的核心步骤。以下是在CentOS系统上的详细集成实践流程:

一、前置准备

集成前需完成以下基础配置,确保集群环境一致性:

  1. 系统环境配置
    • 使用CentOS 7及以上版本操作系统;
    • 关闭防火墙(systemctl stop firewalld && systemctl disable firewalld)以简化端口测试;
    • 禁用SELinux(setenforce 0并修改/etc/selinux/configSELINUX=disabled);
    • 配置NTP时间同步(如yum install chrony -y && systemctl enable --now chronyd),避免节点间时间偏差。
  2. 主机名与IP映射
    编辑所有节点的/etc/hosts文件,添加<IP地址> <主机名>映射(如192.168.1.100 namenode192.168.1.101 datanode1),确保主机名解析正确。
  3. SSH无密钥登录
    在NameNode节点生成SSH密钥(ssh-keygen -t rsa),并将公钥(id_rsa.pub)复制到所有DataNode节点(ssh-copy-id datanode1),实现免密登录。
  4. 安装JDK 8
    所有节点安装OpenJDK 8(yum install java-1.8.0-openjdk-devel -y),并通过java -version验证安装(需显示1.8.0版本)。

二、Hadoop安装与基础配置

  1. 下载与解压Hadoop
    从Apache官网下载Hadoop稳定版(如3.3.1),解压至/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/
    
  2. 配置环境变量
    编辑/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使配置生效。
  3. 核心配置文件修改
    • core-site.xml(HDFS核心配置):
      <configuration>
          <property>
              <name>fs.defaultFS</name>
              <value>hdfs://namenode:9000</value> <!-- NameNode地址 -->
          </property>
      </configuration>
      
    • hdfs-site.xml(HDFS副本与数据目录):
      <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>
      
    • yarn-site.xml(YARN资源管理配置):
      <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(MapReduce框架绑定):
      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集群初始化与启动

  1. 格式化NameNode
    在NameNode节点执行格式化命令(仅首次启动需执行,会清除已有数据):
    hdfs namenode -format
    
  2. 启动HDFS集群
    执行start-dfs.sh脚本启动HDFS服务,启动后可通过jps命令查看进程:
    start-dfs.sh
    jps  # 应显示NameNode、DataNode进程(若配置了SecondaryNameNode,也会显示)
    
  3. 验证HDFS状态
    • 访问HDFS Web界面(http://namenode:50070),查看集群状态;
    • 创建输入目录并上传测试文件:
      hdfs dfs -mkdir -p /input
      hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input  # 上传示例文件
      

四、YARN集群启动与集成

  1. 启动YARN服务
    在ResourceManager节点执行start-yarn.sh脚本启动YARN服务,然后在所有DataNode节点启动NodeManager(若已同步配置文件,可直接在ResourceManager节点执行yarn-daemon.sh start nodemanager):
    start-yarn.sh
    
  2. 验证YARN状态
    • 访问YARN Web界面(http://namenode:8088),查看ResourceManager与NodeManager状态;
    • 查看集群资源使用情况(yarn node -list)。

五、集成验证(运行MapReduce作业)

通过运行经典的WordCount程序,验证HDFS与YARN的集成是否成功:

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output

注意事项

0
看了该问题的人还看了