温馨提示×

centos hdfs设置方法

小樊
37
2025-12-29 13:56:45
栏目: 智能运维

CentOS 上 HDFS 设置方法

一 环境准备

  • 操作系统建议使用 CentOS 7/8,确保节点间网络互通(可解析主机名或配置 /etc/hosts),并准备一个用于部署的普通用户(如 hadoop)。
  • 安装 Java 8(Hadoop 3.x 常用版本):
    sudo yum install -y java-1.8.0-openjdk-devel
    java -version
  • 安装并启用 SSH 服务,配置 SSH 免密登录(至少 NameNode 能免密登录各 DataNode):
    sudo yum install -y openssh-server
    sudo systemctl start sshd && sudo systemctl enable sshd
    ssh-keygen -t rsa
    ssh-copy-id hadoop@<目标节点IP或主机名>
  • 建议做 NTP 时间同步,避免分布式环境时钟漂移导致异常。
  • 防火墙与安全策略:测试环境可临时关闭防火墙或放行端口;生产环境按需放行端口(如 9000、50070、8088 等)。

二 安装与环境变量

  • 下载并解压 Hadoop 3.3.1(亦可选择其他稳定版本):
    wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
    sudo tar -xzvf hadoop-3.3.1.tar.gz -C /usr/local
    sudo mv /usr/local/hadoop-3.3.1 /usr/local/hadoop
  • 配置环境变量(推荐写入 /etc/profile.d/hadoop.sh):
    sudo tee /etc/profile.d/hadoop.sh <<‘EOF’
    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
    EOF
    source /etc/profile.d/hadoop.sh
    hadoop version
  • $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式设置 JAVA_HOME(与上一致)。

三 配置 HDFS 核心文件

  • 编辑 core-site.xml(指定默认文件系统与临时目录):


    fs.defaultFS
    hdfs://namenode:9000


    hadoop.tmp.dir
    /usr/local/hadoop/tmp

  • 编辑 hdfs-site.xml(副本数与本地数据目录,目录需提前创建并赋权给部署用户):


    dfs.replication
    3


    dfs.namenode.name.dir
    /usr/local/hadoop/data/namenode


    dfs.datanode.data.dir
    /usr/local/hadoop/data/datanode

  • 如需使用 YARN(可选,便于后续 MapReduce/Spark 提交作业):
    • mapred-site.xml:


      mapreduce.framework.name
      yarn

    • yarn-site.xml:


      yarn.nodemanager.aux-services
      mapreduce_shuffle


      yarn.nodemanager.aux-services.mapreduce.shuffle.class
      org.apache.hadoop.mapred.ShuffleHandler


      yarn.resourcemanager.hostname
      namenode

  • 目录准备与权限(以 hadoop 用户为例):
    sudo mkdir -p /usr/local/hadoop/{data/namenode,data/datanode,tmp}
    sudo chown -R hadoop:hadoop /usr/local/hadoop

四 启动与验证

  • NameNode 上格式化文件系统(仅首次执行):
    hdfs namenode -format
  • 启动 HDFS:
    start-dfs.sh
    如需 YARN:
    start-yarn.sh
  • 常用验证:
    • 进程检查:
      jps
      应看到 NameNode/DataNode(以及 ResourceManager/NodeManager,若启用 YARN)。
    • 集群报告:
      hdfs dfsadmin -report
    • Web 界面:
      • NameNode:http://<namenode_ip>:50070
      • ResourceManager:http://<namenode_ip>:8088
  • 基本操作示例:
    hdfs dfs -mkdir -p /user/hadoop
    hdfs dfs -put $HADOOP_HOME/README.txt /user/hadoop/
    hdfs dfs -ls /user/hadoop

五 常见问题与优化

  • 防火墙与端口:测试环境可临时关闭防火墙;生产环境放行 HDFS RPC 9000NameNode Web 50070YARN Web 8088 等端口,或按最小暴露原则配置。
  • SSH 免密:确保 NameNode → 所有 DataNode 可免密登录,避免启动脚本卡住。
  • 时间与主机名:启用 NTP 同步,确保 /etc/hosts 或 DNS 正确解析各节点主机名。
  • 目录与权限:确保 dfs.namenode.name.dir/dfs.datanode.data.dir 所在目录存在且属主为部署用户,避免因权限导致启动失败。
  • 资源与副本:单机或测试环境可将 dfs.replication 调为 1;生产环境根据节点数设置(如 3)。

0