首页主机资讯Debian HDFS配置新手指南

Debian HDFS配置新手指南

时间2025-11-20 00:34:04发布访客分类主机资讯浏览1417
导读:Debian 上搭建与配置 HDFS 的简明步骤 一 环境准备与安装 安装 Java(推荐 OpenJDK 11) 执行:sudo apt update && sudo apt install -y openjdk-1...

Debian 上搭建与配置 HDFS 的简明步骤


一 环境准备与安装

  • 安装 Java(推荐 OpenJDK 11
    • 执行:sudo apt update & & sudo apt install -y openjdk-11-jdk
    • 验证:java -versionjavac -version
  • 创建专用用户(推荐 hadoop
    • 执行:sudo adduser --disabled-password --gecos "" hadoop & & sudo usermod -aG sudo hadoop
  • 下载并解压 Hadoop(示例 3.3.15
    • 执行:
      wget https://downloads.apache.org/hadoop/core/hadoop-3.3.15/hadoop-3.3.15.tar.gz
      sudo tar -xzvf hadoop-3.3.15.tar.gz -C /usr/local
      sudo mv /usr/local/hadoop-3.3.15 /usr/local/hadoop
      sudo chown -R hadoop:hadoop /usr/local/hadoop
      
  • 配置环境变量(以 hadoop 用户执行)
    • 编辑 ~/.bashrc/etc/profile
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
      
    • 生效:source ~/.bashrc
  • 主机名与免密登录
    • /etc/hosts 为各节点添加主机名映射(如:192.168.1.10 namenode,192.168.1.11 datanode1)
    • namenode 生成密钥并分发到各 datanode
      ssh-keygen -t rsa -b 2048 -N "" -f ~/.ssh/id_rsa
      ssh-copy-id hadoop@datanode1
      
  • 时间同步
    • 建议安装并启用 NTPsudo apt install -y ntp & & sudo timedatectl set-ntp true

二 核心配置

  • 配置目录与环境
    • 配置文件路径:$HADOOP_HOME/etc/hadoop/
    • 设置 JAVA_HOME:编辑 hadoop-env.sh
      export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
      
  • 基础配置示例
    • core-site.xml
      <
          configuration>
          
        <
          property>
          
          <
          name>
          fs.defaultFS<
          /name>
          
          <
          value>
          hdfs://namenode:8020<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          hadoop.tmp.dir<
          /name>
          
          <
          value>
          /usr/local/hadoop/tmp<
          /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:/usr/local/hadoop/hdfs/namenode<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.datanode.data.dir<
          /name>
          
          <
          value>
          file:/usr/local/hadoop/hdfs/datanode<
          /value>
          
        <
          /property>
          
        <
          property>
          
          <
          name>
          dfs.blocksize<
          /name>
          
          <
          value>
          134217728<
          /value>
           <
          !-- 128MB -->
          
        <
          /property>
          
      <
          /configuration>
      
      
    • 目录准备与权限(以 hadoop 用户执行)
      sudo mkdir -p /usr/local/hadoop/hdfs/{
      namenode,datanode}
          
      sudo chown -R hadoop:hadoop /usr/local/hadoop
      
  • 说明
    • fs.defaultFS 指定默认文件系统地址(RPC 端口通常为 8020)。
    • dfs.replication 为副本数;单机或测试可设为 1
    • dfs.blocksize 为块大小,默认 128MB

三 启动与验证

  • 首次启动前格式化 NameNode(仅一次)
    • 执行:hdfs namenode -format
  • 启动 HDFS
    • namenode 执行:$HADOOP_HOME/sbin/start-dfs.sh
  • 进程与端口检查
    • 进程:jps(应看到 NameNodeDataNode,如配置了 Secondary 还会看到 SecondaryNameNode
    • Web UI:访问 http://namenode:50070
    • 命令行健康检查:hdfs dfsadmin -report
  • 基本文件操作
    hdfs dfs -ls /
    hdfs dfs -mkdir -p /user/hadoop/input
    echo "Hello, HDFS" >
         test.txt
    hdfs dfs -put test.txt /user/hadoop/input/
    hdfs dfs -cat /user/hadoop/input/test.txt
    
  • 常见问题速查
    • 端口被占用:确认 8020/50070 未被占用或已放行
    • Java 路径错误:检查 hadoop-env.shJAVA_HOME
    • 权限问题:确保 Hadoop 目录属主为 hadoop:hadoop
    • 节点不通:核对 /etc/hosts、SSH 免密、防火墙策略

四 常见问题与优化

  • 防火墙与端口
    • 放行常用端口:8020(NameNode RPC)、50070(NameNode Web)、50075(DataNode Web)、50010(DataNode 数据传输)等,或临时关闭防火墙用于排查
  • 时间与时钟偏差
    • 启用 NTP 同步,避免 HDFS 因时间漂移导致异常
  • 副本与容量规划
    • 副本数 dfs.replication 建议与 DataNode 数量匹配;单机测试可设为 1
  • 块大小
    • 大文件场景可适当增大 dfs.blocksize(如 256MB/512MB),减少小文件数量
  • 日志与目录
    • 自定义 hadoop.tmp.dirHADOOP_LOG_DIR 到容量充足的磁盘分区,便于排查与扩容

五 可选扩展 高可用 HA

  • 前置组件
    • 部署 ZooKeeper(建议 3 节点)并启动服务
  • 核心配置思路(在 hdfs-site.xml 中)
    • 定义命名服务:dfs.nameservices=ns1
    • 指定主备 NameNode:dfs.ha.namenodes.ns1=nn1,nn2
    • RPC 与 HTTP 地址:dfs.namenode.rpc-address.ns1.nnXdfs.namenode.http-address.ns1.nnX
    • 共享编辑日志:dfs.namenode.shared.edits.dir=qjournal://nn1:8485; nn2:8485; jn1:8485/ns1
    • 故障转移代理:dfs.client.failover.proxy.provider.ns1=org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
    • 隔离方法:dfs.ha.fencing.methods=sshfence,并配置 dfs.ha.fencing.ssh.private-key-files
    • 自动故障转移:dfs.ha.automatic-failover.enabled=true
  • 初始化与验证
    • 按官方步骤初始化 JournalNode、格式化 ZKFC,启动 ZooKeeperFailoverController,验证主备切换

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


若转载请注明出处: Debian HDFS配置新手指南
本文地址: https://pptw.com/jishu/751781.html
Debian上MinIO的性能调优技巧 如何在Debian上自定义MinIO

游客 回复需填写必要信息