首页主机资讯HDFS集群在CentOS如何配置

HDFS集群在CentOS如何配置

时间2025-12-16 17:37:04发布访客分类主机资讯浏览608
导读:在CentOS上配置HDFS集群 一 环境准备 操作系统与网络 建议使用CentOS 7/8,节点间通过主机名互通,统一配置**/etc/hosts**;确保SSH可用(安装并启动服务)。 Java 安装OpenJDK 8(或Or...

在CentOS上配置HDFS集群

一 环境准备

  • 操作系统与网络
    • 建议使用CentOS 7/8,节点间通过主机名互通,统一配置**/etc/hosts**;确保SSH可用(安装并启动服务)。
  • Java
    • 安装OpenJDK 8(或Oracle JDK 8):sudo yum install -y java-1.8.0-openjdk-devel。
  • Hadoop
    • 下载并解压(示例版本3.3.4):
      wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
      tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
      sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
  • 无密码SSH
    • 在各节点生成密钥并将公钥分发至集群所有节点:
      ssh-keygen -t rsa
      ssh-copy-id hadoop@node2
      ssh-copy-id hadoop@node3
  • 时间同步
    • 建议启用NTP或chrony,保证节点时间一致。

二 安装与基础配置

  • 环境变量
    • 新建文件**/etc/profile.d/hadoop.sh**:
      export HADOOP_HOME=/usr/local/hadoop
      export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source /etc/profile.d/hadoop.sh
  • 配置Hadoop环境脚本
    • 编辑**$HADOOP_HOME/etc/hadoop/hadoop-env.sh**:
      export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
  • 核心配置文件
    • core-site.xml:
      fs.defaultFS hdfs://namenode:9000
    • hdfs-site.xml:
      dfs.replication 3 dfs.namenode.name.dir /usr/local/hadoop/data/namenode dfs.datanode.data.dir /usr/local/hadoop/data/datanode
    • mapred-site.xml(可选,若需MapReduce):
      mapreduce.framework.name yarn
    • yarn-site.xml(可选,若需YARN):
      yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.aux-services.mapreduce.shuffle.class org.apache.hadoop.mapred.ShuffleHandler
  • 目录准备
    • 在对应节点创建数据目录并赋权(示例用户hadoop):
      sudo mkdir -p /usr/local/hadoop/data/{ namenode,datanode}
      sudo chown -R hadoop:hadoop /usr/local/hadoop

三 启动与验证

  • 格式化NameNode(仅首次)
    • NameNode执行:hdfs namenode -format
  • 启动HDFS
    • NameNode执行:start-dfs.sh(脚本会自动在DataNode节点拉起进程)。
  • 进程与端口检查
    • 使用jps查看进程:应见到NameNode/DataNode(若启用YARN,还会有ResourceManager/NodeManager)。
  • Web UI
    • NameNode:http://namenode:50070
    • 若启用YARN:ResourceManager http://resourcemanager:8088
  • 基础验证
    • 创建目录并上传测试文件:
      hdfs dfs -mkdir -p /user/hadoop
      echo “Hello HDFS” | hdfs dfs -put - /user/hadoop/hello.txt
      hdfs dfs -cat /user/hadoop/hello.txt
  • 防火墙与端口
    • 开放必要端口(示例):9000(HDFS RPC)、50070(NN Web)、8088(RM Web);或临时停用防火墙用于测试。

四 高可用HA配置(可选)

  • 架构组件
    • Active/Standby NameNode ×2、JournalNode ×3(建议奇数)、ZooKeeper 集群(建议奇数)。
  • ZooKeeper部署
    • 下载解压并配置conf/zoo.cfg
      dataDir=/var/lib/zookeeper
      clientPort=2181
      server.1=zk1:2888:3888
      server.2=zk2:2888:3888
      server.3=zk3:2888:3888
    • 各节点写入myid并启动ZK。
  • Hadoop HA关键配置
    • core-site.xml:
      fs.defaultFS hdfs://mycluster
    • hdfs-site.xml(要点):
      dfs.nameservices mycluster dfs.ha.namenodes.mycluster nn1,nn2 dfs.namenode.rpc-address.mycluster.nn1 nn1:8020 dfs.namenode.rpc-address.mycluster.nn2 nn2:8020 dfs.namenode.http-address.mycluster.nn1 nn1:50070 dfs.namenode.http-address.mycluster.nn2 nn2:50070 dfs.namenode.shared.edits.dir qjournal://jn1:8485; jn2:8485; jn3:8485/mycluster dfs.journalnode.edits.dir /usr/local/hadoop/data/journalnode dfs.client.failover.proxy.provider.mycluster org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider dfs.ha.fencing.methods sshfence dfs.ha.fencing.ssh.private-key-files /home/hadoop/.ssh/id_rsa
  • 初始化与启动顺序
    • 启动所有JournalNode
    • nn1执行:hdfs namenode -format;
    • nn1启动NameNode,在nn2执行:hdfs namenode -bootstrapStandby;
    • 启动两台NameNode;
    • 通过**ZKFailoverController(ZKFC)**启用自动故障转移(配合ZooKeeper)。

五 常见问题与优化

  • 权限与用户
    • 建议使用专用用户hadoop运行集群,目录与文件属主保持一致。
  • 防火墙与端口
    • 生产环境请按需放行端口(如9000/50070/8088/8485/2181),避免直接关闭防火墙。
  • 时间与DNS
    • 保证NTP时间同步;使用**/etc/hosts**或内网DNS确保主机名解析稳定。
  • 数据目录与磁盘
    • dfs.datanode.data.dir配置为多个磁盘目录(逗号分隔)以提升吞吐与容量。
  • 副本与容量规划
    • 结合节点数设置dfs.replication(常用3),确保数据可靠性与集群容量平衡。

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


若转载请注明出处: HDFS集群在CentOS如何配置
本文地址: https://pptw.com/jishu/773002.html
HDFS与CentOS集成配置指南 centos中fetchlinux如何操作

游客 回复需填写必要信息