首页主机资讯如何在Ubuntu上部署HDFS集群

如何在Ubuntu上部署HDFS集群

时间2025-11-17 09:43:05发布访客分类主机资讯浏览1423
导读:在 Ubuntu 上部署 HDFS 集群 一 环境准备与规划 准备至少2 台 Ubuntu 16.04+ 服务器,建议3 台及以上便于容错与扩展;同一局域网内,配置静态 IP与主机名解析(/etc/hosts 或 DNS),确保节点间可互...

在 Ubuntu 上部署 HDFS 集群

一 环境准备与规划

  • 准备至少2 台 Ubuntu 16.04+ 服务器,建议3 台及以上便于容错与扩展;同一局域网内,配置静态 IP主机名解析(/etc/hosts 或 DNS),确保节点间可互通。
  • 在所有节点安装 Java 8(Hadoop 3.x 常用版本):sudo apt update & & sudo apt install -y openjdk-8-jdk;验证:java -version。
  • 规划角色:至少 1 个 NameNode(可扩展为 HA)、多个 DataNode、可选 ResourceManager/NodeManager(若需 YARN)、以及用于 HA 的 JournalNodeZooKeeper
  • 配置 SSH 免密登录:在规划为主节点的机器生成密钥(ssh-keygen -t rsa),将公钥分发到所有节点(含自身),以便脚本统一启停守护进程。

二 安装与基础配置

  • 下载并解压 Hadoop(示例版本 3.3.6):
    wget https://downloads.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz
    tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local/
  • 设置环境变量(所有节点一致):
    echo ‘export HADOOP_HOME=/usr/local/hadoop-3.3.6’ > > ~/.bashrc
    echo ‘export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin’ > > ~/.bashrc
    echo ‘export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64’ > > ~/.bashrc
    source ~/.bashrc
  • 配置 Hadoop 环境脚本:在 $HADOOP_HOME/etc/hadoop/hadoop-env.sh 中显式设置 JAVA_HOME 等。
  • 配置 workers(Hadoop 3.x 使用 workers 文件,旧版为 slaves):将所有 DataNode 主机名逐行写入 $HADOOP_HOME/etc/hadoop/workers。

三 核心配置文件

  • 编辑 core-site.xml(指定默认文件系统地址,使用主机名或 IP):
    fs.defaultFS hdfs://namenode:9000
  • 编辑 hdfs-site.xml(示例为 3 副本,生产常用 3;设置本地元数据与数据目录,目录需提前创建并赋权):
    dfs.replication 3 dfs.namenode.name.dir /data/hdfs/namenode dfs.datanode.data.dir /data/hdfs/datanode
  • 若需 YARN,编辑 mapred-site.xmlyarn-site.xml(示例):
    mapred-site.xml:
    mapreduce.framework.name yarn
    yarn-site.xml:
    yarn.resourcemanager.hostname resourcemanager yarn.nodemanager.aux-services mapreduce_shuffle
  • 目录准备与权限(示例):
    sudo mkdir -p /data/hdfs/{ namenode,datanode}
    sudo chown -R $(whoami):$(whoami) /data/hdfs

四 启动与验证

  • 首次启动前在 NameNode 上格式化文件系统:
    hdfs namenode -format
  • 启动 HDFS(在 NameNode 执行):
    start-dfs.sh
    如需 YARN,在 ResourceManager 节点执行:
    start-yarn.sh
  • 验证进程与状态:
    jps(应看到 NameNode/DataNode,若启用 YARN 则还有 ResourceManager/NodeManager
    hdfs dfsadmin -report(查看 DataNode 数量与容量)
    yarn node -list(查看 NodeManager 注册情况)
  • Web 界面(Hadoop 3.x 常用端口):
    HDFS NameNode:http://:9870
    YARN ResourceManager:http://:8088
    注:Hadoop 2.x 常见为 50070/8088

五 常见问题与扩展

  • 常见问题排查
    • 配置不一致:核对所有节点的 core-site.xml/hdfs-site.xml/workers 是否一致。
    • SSH 免密失败:确认 ~/.ssh/authorized_keys 包含主节点公钥,且目录权限正确(700/600)。
    • 防火墙/安全组:放行 9000(HDFS RPC)、9870(NN Web)、8088(RM Web)等端口;云环境需配置安全组规则。
    • 目录权限:确保 dfs.namenode.name.dir/dfs.datanode.data.dir 对运行用户可写。
    • 日志定位:查看 $HADOOP_HOME/logs/ 下对应进程的日志文件。
  • 扩展为高可用 HA(生产推荐)
    • 部署 ZooKeeper 集群(3 台及以上)JournalNode(3 台及以上)
    • hdfs-site.xml 中配置 dfs.nameservices、dfs.ha.namenodes、dfs.namenode.rpc-address、dfs.namenode.shared.edits.dir(QJM)dfs.ha.automatic-failover.enabled=true 等;在 core-site.xml 设置 fs.defaultFS=hdfs://
    • 初始化与启动:hdfs zkfc -formatZK;在各 JournalNode 上启动 hdfs --daemon start journalnode;格式化共享编辑日志并启动 NameNode/ZKFC,通过 hdfs haadmin -getServiceState nn1 检查状态。

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


若转载请注明出处: 如何在Ubuntu上部署HDFS集群
本文地址: https://pptw.com/jishu/748655.html
HDFS数据如何在Ubuntu上进行迁移 Ubuntu如何实现HDFS的高可用性

游客 回复需填写必要信息