首页主机资讯Ubuntu上Hadoop的分布式计算如何实现

Ubuntu上Hadoop的分布式计算如何实现

时间2025-11-17 10:26:04发布访客分类主机资讯浏览833
导读:在 Ubuntu 上实现 Hadoop 分布式计算 一、架构与组件 存储层:HDFS(NameNode + DataNode),负责数据分块、多副本存储与容错。 计算调度层:YARN(ResourceManager + NodeManag...

在 Ubuntu 上实现 Hadoop 分布式计算

一、架构与组件

  • 存储层:HDFS(NameNode + DataNode),负责数据分块、多副本存储与容错。
  • 计算调度层:YARN(ResourceManager + NodeManager),负责资源管理与任务调度。
  • 计算模型:MapReduce,将作业拆分为 Map 与 Reduce 阶段在多节点并行执行。
  • 典型拓扑:至少 1 个 NameNode + 多个 DataNode,以及 1 个 ResourceManager + 多个 NodeManager;生产环境建议 NameNode 高可用(QJM/NFS)。

二、环境准备与集群规划

  • 节点与网络:准备 3 台 Ubuntu(示例:ubuntu1/ubuntu2/ubuntu3),配置 主机名解析SSH 免密登录(主节点可免密登录所有从节点)。
  • Java:安装 JDK 8(所有节点版本一致),并正确设置 JAVA_HOME
  • Hadoop:下载解压至统一路径(如 /usr/local/hadoop),配置环境变量 HADOOP_HOME/PATH
  • 目录规划:为 NameNode/DataNode 指定本地数据目录(如 /data/hdfs/namenode/data/hdfs/datanode),并确保目录存在且权限正确。

三、关键配置步骤

  • 配置 SSH 免密登录(主节点执行)
    • 生成密钥:ssh-keygen -t rsa
    • 分发公钥:ssh-copy-id user@ubuntu2;ssh-copy-id user@ubuntu3
  • 配置 Hadoop 环境变量(所有节点)
    • /etc/profile~/.bashrc 中添加:
      • export HADOOP_HOME=/usr/local/hadoop
      • export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    • 使生效:source /etc/profile
  • 核心配置文件($HADOOP_HOME/etc/hadoop)
    • core-site.xml
      • fs.defaultFShdfs://ubuntu1:9000
    • hdfs-site.xml
      • dfs.replication3
      • dfs.namenode.name.dir/data/hdfs/namenode
      • dfs.datanode.data.dir/data/hdfs/datanode
    • mapred-site.xml(若不存在先 cp mapred-site.xml.template)
      • mapreduce.framework.nameyarn
    • yarn-site.xml
      • yarn.nodemanager.aux-servicesmapreduce_shuffle
      • yarn.nodemanager.aux-services.mapreduce.shuffle.classorg.apache.hadoop.mapred.ShuffleHandler
    • workers(Hadoop 3.x)或 slaves(Hadoop 2.x)
      • 写入工作节点主机名:ubuntu2、ubuntu3
  • 分发与权限
    • 将 Hadoop 目录与 /etc/profile 分发至各节点(如 scp -r …),统一 JAVA_HOME 与路径。
    • hadoop-env.sh 中显式设置 JAVA_HOME,并按需设置 HDFS/YARN 运行用户日志目录(示例:root;生产建议专用用户)。

四、启动与验证

  • 首次启动前格式化 HDFS(仅一次)
    • 主节点执行:hdfs namenode -format
  • 启动集群
    • 方式一:start-all.sh
    • 方式二:start-dfs.sh 与 start-yarn.sh 分别启动
  • 进程校验
    • 主节点 jps:NameNode、ResourceManager、SecondaryNameNode
    • 从节点 jps:DataNode、NodeManager
  • 集群状态
    • HDFS:hdfs dfsadmin -report(查看 Live datanodes、容量、副本等)
    • YARN:yarn node -list
  • Web UI
    • HDFS NameNode:http://< 主节点IP> :9870
    • YARN ResourceManager:http://< 主节点IP> :8088
  • 运行测试作业(WordCount)
    • 上传数据:hdfs dfs -mkdir -p /input;hdfs dfs -put sample.txt /input
    • 提交作业:hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output
    • 查看结果:hdfs dfs -cat /output/part-r-00000。

五、常见问题与优化建议

  • 常见故障
    • JAVA_HOME 未设置:在 hadoop-env.sh 显式导出正确的 JDK 路径。
    • 端口访问拒绝:确认防火墙放行 9870/8088 等端口,或临时关闭防火墙测试。
    • 集群 ID 不匹配:异常关机/多次格式化导致,清理 DataNode 数据目录后重启,或确保只格式化一次。
    • SSH 免密失败:检查 ~/.ssh/authorized_keys 权限与内容,确保主节点能无密登录所有从节点。
  • 优化与安全
    • 资源与堆内存:在 hadoop-env.sh 设置 HADOOP_HEAPSIZE(如 1024),按节点内存合理分配。
    • 生产建议:启用 NameNode HA(QJM)、启用 Kerberos 认证、为 HDFS/YARN 配置专用系统用户与最小权限、开启审计日志与监控告警。

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


若转载请注明出处: Ubuntu上Hadoop的分布式计算如何实现
本文地址: https://pptw.com/jishu/748698.html
Hadoop在Ubuntu上的网络配置要求是什么 Hadoop在Ubuntu上的故障排查方法有哪些

游客 回复需填写必要信息