首页主机资讯CentOS怎样配置HDFS集群

CentOS怎样配置HDFS集群

时间2026-01-21 08:16:03发布访客分类主机资讯浏览1002
导读:在 CentOS 上配置 HDFS 集群 一 环境准备与规划 节点规划示例:至少准备1 台 NameNode + 多台 DataNode;示例主机名为master、slave1、slave2(可按需扩展)。所有节点需在同一网络,能互相解析...

在 CentOS 上配置 HDFS 集群

一 环境准备与规划

  • 节点规划示例:至少准备1 台 NameNode + 多台 DataNode;示例主机名为master、slave1、slave2(可按需扩展)。所有节点需在同一网络,能互相解析主机名。
  • 基础环境:安装Java 8(OpenJDK 或 Oracle JDK),配置SSH 免密登录(NameNode 能免密登录各 DataNode),建议时间同步(如 chrony/ntp),并准备 Hadoop 发行包(如 Hadoop 3.3.x)。
  • 目录规划:为 HDFS 数据与日志预置本地目录(如 /opt/hadoop/data/namenode、/opt/hadoop/data/datanode),并确保运行用户对这些目录有读写权限。

二 安装与基础配置

  • 安装 Java(所有节点)
    • 命令:sudo yum install -y java-1.8.0-openjdk-devel
  • 安装 Hadoop(建议只在 NameNode 下载后分发)
    • 下载与解压: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
  • 指定 Java(可选,增强稳定性)
    • 编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.shexport JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
  • SSH 免密(NameNode 执行)
    • ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    • 将公钥分发至各节点:ssh-copy-id hadoop@slave1ssh-copy-id hadoop@slave2(如使用 root,则目标用户为 root)

三 配置 HDFS 核心文件

  • 统一在所有节点放置相同配置(建议先在 NameNode 编辑,再同步到各节点)。
  • 配置文件路径:$HADOOP_HOME/etc/hadoop/
  1. core-site.xml
<
    configuration>
    
  <
    property>
    
    <
    name>
    fs.defaultFS<
    /name>
    
    <
    value>
    hdfs://master:9000<
    /value>
    
  <
    /property>
    
  <
    property>
    
    <
    name>
    hadoop.tmp.dir<
    /name>
    
    <
    value>
    /opt/hadoop/data/tmp<
    /value>
    
  <
    /property>
    
<
    /configuration>
    
  1. hdfs-site.xml
<
    configuration>
    
  <
    property>
    
    <
    name>
    dfs.replication<
    /name>
    
    <
    value>
    2<
    /value>
     <
    !-- 小于等于 DataNode 数量 -->
    
  <
    /property>
    
  <
    property>
    
    <
    name>
    dfs.namenode.name.dir<
    /name>
    
    <
    value>
    file:/opt/hadoop/data/namenode<
    /value>
    
  <
    /property>
    
  <
    property>
    
    <
    name>
    dfs.datanode.data.dir<
    /name>
    
    <
    value>
    file:/opt/hadoop/data/datanode<
    /value>
    
  <
    /property>
    
  <
    property>
    
    <
    name>
    dfs.webhdfs.enabled<
    /name>
    
    <
    value>
    true<
    /value>
    
  <
    /property>
    
<
    /configuration>

  1. workers(原 slaves,列出所有 DataNode 主机名)
slave1
slave2
  1. 同步配置到所有节点(示例)
  • rsync -av $HADOOP_HOME/etc/hadoop/ hadoop@slave1:$HADOOP_HOME/etc/hadoop/
  • rsync -av $HADOOP_HOME/etc/hadoop/ hadoop@slave2:$HADOOP_HOME/etc/hadoop/

四 启动与验证

  • 创建本地数据目录(所有节点)
    • mkdir -p /opt/hadoop/data/{ tmp,namenode,datanode}
  • 格式化 NameNode(仅在 NameNode 执行一次)
    • hdfs namenode -format
  • 启动 HDFS(在 NameNode 执行)
    • start-dfs.sh
  • 进程检查
    • NameNode:jps 应看到 NameNode;各 DataNode 应看到 DataNode
  • Web 界面
    • HDFS NameNode UI:http://master:9870(Hadoop 3.x 默认端口;Hadoop 2.x 为 50070
  • 基本操作验证
    • hdfs dfs -mkdir /test
    • hdfs dfs -put /etc/hosts /test/
    • hdfs dfs -ls /test

五 防火墙与常见问题

  • 防火墙放行(示例为 firewalld)
    • sudo firewall-cmd --permanent --add-port=9000/tcp
    • sudo firewall-cmd --permanent --add-port=9870/tcp(Hadoop 3.x;2.x 用 50070
    • sudo firewall-cmd --reload
  • 常见问题与要点
    • 主机名解析:确保所有节点 /etc/hosts 或 DNS 能正确解析 master/slaveX
    • SSH 免密:NameNode 必须能免密登录各 DataNode,否则 DataNode 不会启动。
    • 目录权限:运行用户对 /opt/hadoop/data 及子目录具备读写权限。
    • 副本数:生产环境建议 dfs.replication=3,且不超过 DataNode 数量
    • 时间与 SELinux:建议时间同步;如启用 SELinux,需设置为 permissive 或按需配置策略,避免权限拦截。

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


若转载请注明出处: CentOS怎样配置HDFS集群
本文地址: https://pptw.com/jishu/788326.html
CentOS HDFS配置需要哪些前提条件 CentOS fetchLinux的过程中会报错吗

游客 回复需填写必要信息