首页主机资讯CentOS与HDFS集成怎样实现

CentOS与HDFS集成怎样实现

时间2026-01-16 13:33:04发布访客分类主机资讯浏览1074
导读:在 CentOS 上集成 HDFS 的完整落地方案 一 环境准备与基础配置 安装 Java(Hadoop 依赖 Java,建议 Java 8): 执行:sudo yum install -y java-1.8.0-openjdk-dev...

在 CentOS 上集成 HDFS 的完整落地方案

一 环境准备与基础配置

  • 安装 Java(Hadoop 依赖 Java,建议 Java 8):
    • 执行:sudo yum install -y java-1.8.0-openjdk-devel
    • 验证:java -version
  • 配置 SSH 免密(Hadoop 启动脚本依赖):
    • 生成密钥:ssh-keygen -t rsa
    • 本机免密:ssh-copy-id localhost
    • 集群环境需将公钥分发到各节点:ssh-copy-id < 目标节点主机名/IP>
  • 主机名与网络:
    • 配置 /etc/hosts 保证各节点可互相解析
    • 关闭或放行防火墙/SELinux(或按需放行端口)
  • 下载并解压 Hadoop(示例版本 3.3.1):
    • 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/ & & mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
  • 环境变量(建议写入 /etc/profile.d/hadoop.sh):
    • export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
    • export HADOOP_HOME=/usr/local/hadoop
    • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source /etc/profile.d/hadoop.sh
  • 目录准备(示例):
    • mkdir -p /usr/local/hadoop/data/{ namenode,datanode}

二 配置 HDFS 核心文件

  • 配置 $HADOOP_HOME/etc/hadoop/core-site.xml
    • 设置默认文件系统(示例为 8020 端口,亦可使用 9000):
      <
          configuration>
          
        <
          property>
          
          <
          name>
          fs.defaultFS<
          /name>
          
          <
          value>
          hdfs://namenode:8020<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
  • 配置 $HADOOP_HOME/etc/hadoop/hdfs-site.xml
    • 示例(单节点或测试环境可将副本设为 1):
      <
          configuration>
          
        <
          property>
          
          <
          name>
          dfs.replication<
          /name>
          
          <
          value>
          1<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.namenode.name.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/data/namenode<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.datanode.data.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/data/datanode<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
  • 可选:配置 YARNMapReduce(如需运行作业)
    • yarn-site.xml:
      <
          configuration>
          
        <
          property>
          
          <
          name>
          yarn.resourcemanager.hostname<
          /name>
          
          <
          value>
          resourcemanager<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          yarn.nodemanager.aux-services<
          /name>
          
          <
          value>
          mapreduce_shuffle<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          yarn.nodemanager.aux-services.mapreduce.shuffle.class<
          /name>
          
          <
          value>
          org.apache.hadoop.mapred.ShuffleHandler<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • mapred-site.xml:
      <
          configuration>
          
        <
          property>
          
          <
          name>
          mapreduce.framework.name<
          /name>
          
          <
          value>
          yarn<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
  • 说明:
    • 生产环境建议将 dfs.replication 设为 3,并确保 dfs.datanode.data.dir 指向多块磁盘以提升吞吐与可靠性。

三 启动与验证

  • 初始化 NameNode(仅首次):
    • hdfs namenode -format
  • 启动服务:
    • 仅 HDFS:start-dfs.sh
    • 含 YARN:start-yarn.sh
  • 进程健康检查:
    • jps(应看到 NameNode、DataNode,如启用 YARN 则还有 ResourceManager、NodeManager
  • 集群与存储状态:
    • hdfs dfsadmin -report
  • Web 管理界面:
    • HDFS NameNode:http://:50070
    • YARN ResourceManager:http://:8088
  • 基本文件操作验证:
    • hdfs dfs -mkdir -p /user/test
    • hdfs dfs -put /path/to/localfile /user/test
    • hdfs dfs -ls /user/test

四 客户端集成与常用操作

  • 作为客户端接入已有集群:
    • 在客户端安装同版本 Hadoop,将 core-site.xmlhdfs-site.xml 配置为与集群一致(尤其是 fs.defaultFS 指向 NameNode
    • 直接使用命令行工具:
      • 列目录:hdfs dfs -ls /
      • 上传:hdfs dfs -put /local/path /hdfs/path
      • 下载:hdfs dfs -get /hdfs/path /local/path
  • 在 Java 应用中访问 HDFS:
    • 添加依赖(示例版本 3.3.1):
      <
          dependency>
          
        <
          groupId>
          org.apache.hadoop<
          /groupId>
          
        <
          artifactId>
          hadoop-client<
          /artifactId>
          
        <
          version>
          3.3.1<
          /version>
          
      <
          /dependency>
          
      
    • 使用 Hadoop API 进行读写(FileSystem、IOUtils 等)。

五 常见问题与优化建议

  • 端口与防火墙:
    • 常见端口包含 8020/9000(RPC)50070(NameNode Web)8088(YARN Web) 等;确保节点间与客户端到集群的访问策略允许这些端口
  • SSH 与主机解析:
    • 启动脚本依赖 SSH 免密;各节点需通过 /etc/hosts 或 DNS 正确解析主机名
  • 时间与权限:
    • 建议 NTP 同步时间;如启用 Kerberos/HDFS ACL,需完成相应安全配置
  • 数据与目录:
    • 确保 dfs.namenode.name.dir / dfs.datanode.data.dir 所在磁盘健康且有足够空间;生产环境使用多副本(如 3)与多磁盘
  • 高可用(HA)与扩展:
    • 生产集群建议引入 Zookeeper 实现 NameNode HA,并配合 JournalNode 等组件保障元数据一致性与故障切换能力。

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


若转载请注明出处: CentOS与HDFS集成怎样实现
本文地址: https://pptw.com/jishu/781443.html
CentOS上HDFS监控工具有哪些 hdfs配置在centos上有哪些限制

游客 回复需填写必要信息