温馨提示×

Hadoop集群Ubuntu版如何搭建

小樊
44
2025-12-06 22:14:00
栏目: 智能运维

Ubuntu 版 Hadoop 集群搭建步骤

一 环境准备与规划

  • 准备至少 3 台 Ubuntu 服务器(建议 16.04+),在同一局域网,能互相 ping 通;规划角色:1 个 NameNode(兼 ResourceManager 可做单点),其余为 DataNode/NodeManager。示例主机名与 IP:
    • master 192.168.1.10
    • worker1 192.168.1.11
    • worker2 192.168.1.12
  • 统一创建 hadoop 用户并加入 sudo(可选):
    • sudo addgroup hadoop && sudo adduser --ingroup hadoop hadoop
    • sudo usermod -aG sudo hadoop
  • 配置 /etc/hosts(三台一致):
    • 192.168.1.10 master
    • 192.168.1.11 worker1
    • 192.168.1.12 worker2
  • 安装 SSH 并测试本机登录:
    • sudo apt update && sudo apt install -y openssh-server
    • sudo systemctl enable --now ssh
    • ssh localhost
  • 安装 Java(Hadoop 3.x 推荐 OpenJDK 8OpenJDK 11):
    • sudo apt install -y openjdk-8-jdk
    • 验证:java -version
    • 记录路径:/usr/lib/jvm/java-8-openjdk-amd64(后续配置用)
  • 建议目录结构:Hadoop 安装到 /usr/local/hadoop,数据目录 /usr/local/hadoop/hdfs/{name,data}/opt/hadoop/tmp/dfs/{name,data}

二 安装 Hadoop 与环境变量

  • 下载并解压(示例 3.3.6 LTS,稳定且兼容性好):
    • 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 mv /usr/local/hadoop-3.3.6 /usr/local/hadoop
    • sudo chown -R hadoop:hadoop /usr/local/hadoop
  • 配置环境变量(~/.bashrc 或 /etc/profile.d/hadoop.sh):
    • export HADOOP_HOME=/usr/local/hadoop
    • export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source ~/.bashrc
  • 验证安装:
    • hadoop version

三 配置 Hadoop 核心文件

  • 配置目录:$HADOOP_HOME/etc/hadoop

  • core-site.xml

    • fs.defaultFS hdfs://master:9000 hadoop.tmp.dir /usr/local/hadoop/tmp
  • hdfs-site.xml

    • dfs.replication 2 dfs.namenode.name.dir /usr/local/hadoop/hdfs/namenode dfs.datanode.data.dir /usr/local/hadoop/hdfs/datanode
  • mapred-site.xml(如文件不存在,先 cp mapred-site.xml.template mapred-site.xml)

    • mapreduce.framework.name yarn
  • yarn-site.xml

    • yarn.resourcemanager.hostname master yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.resource.memory-mb 4096
  • 配置 workers(旧版为 slaves)

    • 写入 worker 主机名(每台一行):
      • worker1
      • worker2

四 SSH 免密登录与目录权限

  • master 生成密钥并分发到所有节点(含本机):
    • ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
    • ssh-copy-id master
    • ssh-copy-id worker1
    • ssh-copy-id worker2
  • 权限安全:
    • chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
  • worker 节点也生成密钥,确保本机 ssh 登录无需密码(Hadoop 启动脚本需要)

五 启动与验证

  • 创建数据目录并赋权(所有节点):
    • sudo mkdir -p /usr/local/hadoop/hdfs/{namenode,data}
    • sudo chown -R hadoop:hadoop /usr/local/hadoop/hdfs
  • 仅在 master 执行:
    • 格式化 NameNode(首次必须):hdfs namenode -format
    • 启动 HDFS:start-dfs.sh
    • 启动 YARN:start-yarn.sh
  • 验证进程(各节点执行 jps):
    • master 应看到:NameNode、ResourceManager
    • worker 应看到:DataNode、NodeManager
  • 访问 Web UI(从浏览器访问任一可达节点 IP):
    • HDFS NameNode:http://master:9870
    • YARN ResourceManager:http://master:8088
  • 常见问题速查:
    • 无法免密登录:检查 ~/.ssh 权限、authorized_keys 内容、/etc/hosts 一致性
    • 端口不通:云服务器需放行 9000/9870/8088;本机防火墙 ufw/iptables 放行
    • DataNode 未启动:检查 dfs.datanode.data.dir 权限与磁盘空间、workers 配置是否包含该节点
    • 版本差异:Hadoop 2.x 的 HDFS Web 端口为 50070,3.x 为 9870

0