首页主机资讯Debian如何实现HDFS集群配置

Debian如何实现HDFS集群配置

时间2025-12-05 20:35:05发布访客分类主机资讯浏览910
导读:在 Debian 上搭建 HDFS 集群的完整步骤 一 环境准备与规划 节点规划 NameNode 1 台:管理元数据 DataNode N 台:存储数据块 可选:ResourceManager 1 台、NodeManager N 台...

在 Debian 上搭建 HDFS 集群的完整步骤


一 环境准备与规划

  • 节点规划
    • NameNode 1 台:管理元数据
    • DataNode N 台:存储数据块
    • 可选:ResourceManager 1 台NodeManager N 台(如需 YARN)
  • 软件要求
    • Java 8 或 11(Hadoop 3.x 推荐 8/11)
    • OpenSSH 服务器
    • Hadoop 3.x 稳定版(所有节点安装相同版本与路径)
  • 网络与主机名
    • 建议使用静态 IP,并在所有节点配置 /etc/hosts 解析主机名
    • 确保节点间免密 SSH互通(便于启动与维护)

二 安装与基础配置

  • 系统更新与 Java
    • 执行:sudo apt update & & sudo apt upgrade -y
    • 安装 Java(二选一):sudo apt install openjdk-11-jdk -ysudo apt install openjdk-8-jdk -y
    • 验证:java -version
  • 创建专用用户与目录
    • sudo adduser hadoop & & sudo usermod -aG sudo hadoop
    • 建议数据目录:sudo mkdir -p /opt/hadoop/hdfs/{ name,data}
  • 安装 Hadoop
    • 下载并解压(示例):wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
    • 解压:sudo tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
    • 软链:sudo ln -sfn /usr/local/hadoop-3.3.6 /usr/local/hadoop
  • 环境变量(推荐统一到 /etc/profile.d/hadoop.sh)
    • 内容:
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
    • 生效:source /etc/profilesource /etc/profile.d/hadoop.sh
  • SSH 免密
    • 在每台机器生成密钥:ssh-keygen -t rsa -b 4096
    • master 上分发公钥:ssh-copy-id hadoop@node1ssh-copy-id hadoop@node2
    • 验证:ssh hadoop@node1 无需密码

三 HDFS 核心配置

  • 目录与文件
    • 配置目录:$HADOOP_HOME/etc/hadoop/
    • 关键文件:core-site.xml、hdfs-site.xml、hadoop-env.sh
  • 配置示例
    • hadoop-env.sh
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
      export HADOOP_HOME=/usr/local/hadoop
      
    • core-site.xml
      <
          configuration>
          
        <
          property>
          
          <
          name>
          fs.defaultFS<
          /name>
          
          <
          value>
          hdfs://master:9000<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
    • hdfs-site.xml
      <
          configuration>
          
        <
          property>
          
          <
          name>
          dfs.replication<
          /name>
          
          <
          value>
          3<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.namenode.name.dir<
          /name>
          
          <
          value>
          file:///opt/hadoop/hdfs/name<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.datanode.data.dir<
          /name>
          
          <
          value>
          file:///opt/hadoop/hdfs/data<
          /value>
          
        <
          /property>
          
      <
          /configuration>
          
      
  • 主机名解析
    • 编辑 /etc/hosts(示例)
      192.168.1.100 master
      192.168.1.101 node1
      192.168.1.102 node2
      
  • 目录权限
    • sudo chown -R hadoop:hadoop /opt/hadoop/hdfs

四 启动与验证

  • 格式化 NameNode(仅首次)
    • 切换 hadoop 用户:su - hadoop
    • 执行:hdfs namenode -format
  • 启动 HDFS
    • start-dfs.sh
  • 验证
    • 进程检查:jps(应看到 NameNode、DataNode 等)
    • Web 界面:http://master:9870(HDFS NameNode Web UI)
    • 基本操作:
      hdfs dfs -mkdir -p /user/hadoop
      hdfs dfs -put $HADOOP_HOME/README.txt /user/hadoop/
      hdfs dfs -ls /user/hadoop
      
  • 常见问题排查
    • 无法免密 SSH:检查 ~/.ssh/authorized_keys 权限为 600
    • 端口不通:确认 9000/9870 未被占用且防火墙放行
    • 目录权限:确保 /opt/hadoop/hdfs 属主为 hadoop:hadoop
    • DataNode 未注册:检查 /etc/hosts、SSH、NameNode 与 DataNode 的 dfs.datanode.data.dir 一致性与可写性

五 扩展与高可用(可选)

  • YARN 基础配置(如需)
    • yarn-site.xml
      <
          configuration>
          
        <
          property>
          
          <
          name>
          yarn.resourcemanager.hostname<
          /name>
          
          <
          value>
          master<
          /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>
          
      
    • 启动:start-yarn.sh
  • HDFS 高可用 HA(QJM + ZooKeeper)
    • 部署 ZooKeeper 集群(3 或 5 节点)
    • 配置 core-site.xmlhdfs-site.xml:定义 nameservicesdfs.ha.namenodesJournalNodesFailoverZKFC
    • 初始化与启动 ZKFC、格式化 ZooKeeper、启动 JournalNodeNameNode,验证 Active/Standby 切换

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


若转载请注明出处: Debian如何实现HDFS集群配置
本文地址: https://pptw.com/jishu/765096.html
Debian HDFS配置常见问题及解决方法 HDFS配置中Debian系统要求是什么

游客 回复需填写必要信息