首页主机资讯HDFS与YARN在CentOS上的集成方法

HDFS与YARN在CentOS上的集成方法

时间2025-10-03 20:36:03发布访客分类主机资讯浏览1052
导读:HDFS与YARN在CentOS上的集成方法 1. 前期准备工作 在开始集成前,需完成以下基础配置,确保集群环境稳定: 安装JDK 8:Hadoop 2.x/3.x系列要求使用JDK 8,通过yum install java-1.8.0-...

HDFS与YARN在CentOS上的集成方法

1. 前期准备工作

在开始集成前,需完成以下基础配置,确保集群环境稳定:

  • 安装JDK 8:Hadoop 2.x/3.x系列要求使用JDK 8,通过yum install java-1.8.0-openjdk-devel安装,并通过java -version验证。
  • 关闭防火墙与SELinux:临时关闭防火墙(systemctl stop firewalld)、永久禁用(systemctl disable firewalld);修改/etc/selinux/config中的SELINUX=disabled并重启。
  • 配置时间同步:安装NTP服务(yum install ntp),启动并设置开机自启(systemctl start ntpd; systemctl enable ntpd),确保集群节点时间一致。
  • 配置主机名与IP映射:编辑/etc/hostname设置主机名(如namenodedatanode1),修改/etc/hosts文件添加IP与主机名对应关系(如192.168.1.10 namenode)。
  • 配置SSH无密码登录:在NameNode上生成密钥(ssh-keygen -t rsa),将公钥复制到所有DataNode(ssh-copy-id datanode1),测试无密码登录(ssh datanode1)。

2. 安装与配置Hadoop

2.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/
创建软链接简化命令:ln -s /usr/local/hadoop-3.3.1 /usr/local/hadoop

2.2 配置环境变量

编辑/etc/profile.d/hadoop.sh文件,添加以下内容:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk  # 根据实际JDK路径调整

使配置生效:source /etc/profile.d/hadoop.sh

2.3 配置核心Hadoop文件

  • core-site.xml(HDFS核心配置):
    <
        configuration>
        
        <
        property>
        
            <
        name>
        fs.defaultFS<
        /name>
        
            <
        value>
        hdfs://namenode:9000<
        /value>
          <
        !-- NameNode地址 -->
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        hadoop.tmp.dir<
        /name>
        
            <
        value>
        /usr/local/hadoop/tmp<
        /value>
          <
        !-- 临时目录 -->
        
        <
        /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/dfs/name<
        /value>
          <
        !-- NameNode数据目录 -->
        
        <
        /property>
        
        <
        property>
        
            <
        name>
        dfs.datanode.data.dir<
        /name>
        
            <
        value>
        /usr/local/hadoop/dfs/data<
        /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>
        
        <
        property>
        
            <
        name>
        yarn.nodemanager.aux-services.mapreduce.shuffle.class<
        /name>
        
            <
        value>
        org.apache.hadoop.mapred.ShuffleHandler<
        /value>
        
        <
        /property>
        
    <
        /configuration>
        
    
  • mapred-site.xml(MapReduce框架绑定YARN):
    若未找到该文件,复制模板生成: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>
        
    
  • slaves文件(指定DataNode节点):
    编辑$HADOOP_HOME/etc/hadoop/slaves,添加所有DataNode的主机名(每行一个,如datanode1datanode2)。

3. 启动HDFS集群

  • 格式化NameNode:在NameNode节点上执行(首次启动必须格式化,清除旧数据):
    hdfs namenode -format
  • 启动HDFS服务:运行start-dfs.sh脚本,启动NameNode、DataNode及SecondaryNameNode(若配置了HA)。
  • 验证HDFS状态
    • 使用jps命令查看进程,应存在NameNodeDataNode(DataNode节点上);
    • 访问HDFS Web界面(默认端口50070):http://namenode:50070,确认集群状态正常。

4. 启动YARN集群

  • 启动YARN服务:在ResourceManager节点上运行start-yarn.sh脚本,启动ResourceManager;在所有DataNode节点上运行yarn-daemon.sh start nodemanager启动NodeManager(或在ResourceManager上运行start-yarn.sh自动启动所有NodeManager)。
  • 验证YARN状态
    • 使用jps命令查看进程,ResourceManager节点应有ResourceManager,DataNode节点应有NodeManager
    • 访问YARN Web界面(默认端口8088):http://namenode:8088,确认资源管理状态正常。

5. 验证集成效果

  • 检查进程状态:在任意节点运行jps,应看到以下进程:
    • NameNode、DataNode(HDFS进程);
    • ResourceManager、NodeManager(YARN进程)。
  • 运行MapReduce测试作业:使用Hadoop自带的WordCount示例,验证数据处理能力:
    hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount /input /output
    
    其中/input为HDFS上的输入目录(需提前创建并上传文本文件),/output为输出目录(需不存在,避免覆盖)。
  • 查看Web界面:通过HDFS Web界面确认文件上传成功,通过YARN Web界面查看作业执行进度与结果。

注意事项

  • 生产环境建议:配置HDFS高可用(HA,多个NameNode)、YARN ResourceManager HA,提升集群可靠性;调整副本数(≥3)、块大小(128MB/256MB)等参数优化性能。
  • 端口开放:确保防火墙开放HDFS(9000、50070等)、YARN(8088、8032等)相关端口,避免网络隔离导致服务不可用。
  • 日志排查:若启动失败,查看$HADOOP_HOME/logs目录下的日志文件(如NameNode.logResourceManager.log),定位具体错误原因。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: HDFS与YARN在CentOS上的集成方法
本文地址: https://pptw.com/jishu/719080.html
CentOS中HDFS的资源管理如何实现 如何在CentOS上使用HDFS API

游客 回复需填写必要信息