1. Hadoop完全分布式环境搭建概述Hadoop作为Apache基金会旗下的开源分布式计算框架已经成为大数据处理领域的事实标准。完全分布式模式是Hadoop在生产环境中的标准部署方式它能够充分发挥分布式计算的威力实现真正的水平扩展。对于零基础的学习者来说搭建一个完全分布式的Hadoop集群是掌握大数据技术的重要第一步。2. 环境准备与规划2.1 硬件需求建议至少准备3台物理机或虚拟机作为集群节点1台作为NameNode和JobTracker主节点2台作为DataNode和TaskTracker从节点 每台机器建议配置4核CPU8GB内存100GB存储空间2.2 软件需求所有节点需要安装Linux操作系统推荐CentOS 7或Ubuntu 18.04 LTSJava JDK 1.8必须使用Oracle JDK或OpenJDKSSH服务用于节点间通信3. 系统配置3.1 基础环境设置在所有节点上执行以下操作配置主机名和hosts文件sudo hostnamectl set-hostname node1 # 主节点 sudo hostnamectl set-hostname node2 # 从节点1 sudo hostnamectl set-hostname node3 # 从节点2 # 编辑/etc/hosts文件添加所有节点的IP和主机名映射 192.168.1.101 node1 192.168.1.102 node2 192.168.1.103 node3配置SSH免密登录# 在主节点生成密钥 ssh-keygen -t rsa -P -f ~/.ssh/id_rsa # 将公钥复制到所有节点包括自己 cat ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys ssh-copy-id -i ~/.ssh/id_rsa.pub node1 ssh-copy-id -i ~/.ssh/id_rsa.pub node2 ssh-copy-id -i ~/.ssh/id_rsa.pub node33.2 Java环境安装在所有节点上安装Java# 对于CentOS sudo yum install java-1.8.0-openjdk-devel # 对于Ubuntu sudo apt-get install openjdk-8-jdk # 设置JAVA_HOME环境变量 echo export JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk ~/.bashrc source ~/.bashrc4. Hadoop安装与配置4.1 下载与解压在主节点下载并解压Hadoopwget https://archive.apache.org/dist/hadoop/core/hadoop-2.10.1/hadoop-2.10.1.tar.gz tar -xzvf hadoop-2.10.1.tar.gz -C /opt/ mv /opt/hadoop-2.10.1 /opt/hadoop4.2 配置环境变量在所有节点上配置Hadoop环境变量echo export HADOOP_HOME/opt/hadoop ~/.bashrc echo export PATH$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ~/.bashrc source ~/.bashrc4.3 核心配置文件修改编辑$HADOOP_HOME/etc/hadoop/目录下的配置文件core-site.xmlconfiguration property namefs.defaultFS/name valuehdfs://node1:9000/value /property property namehadoop.tmp.dir/name value/opt/hadoop/tmp/value /property /configurationhdfs-site.xmlconfiguration property namedfs.replication/name value2/value /property property namedfs.namenode.name.dir/name value/opt/hadoop/hdfs/namenode/value /property property namedfs.datanode.data.dir/name value/opt/hadoop/hdfs/datanode/value /property /configurationmapred-site.xmlconfiguration property namemapreduce.framework.name/name valueyarn/value /property /configurationyarn-site.xmlconfiguration property nameyarn.nodemanager.aux-services/name valuemapreduce_shuffle/value /property property nameyarn.resourcemanager.hostname/name valuenode1/value /property /configurationslaves文件列出所有从节点node2 node35. 集群启动与验证5.1 格式化HDFS在主节点执行hdfs namenode -format5.2 启动Hadoop集群在主节点执行start-dfs.sh start-yarn.sh5.3 验证集群状态检查进程jps # 主节点应显示NameNode, ResourceManager # 从节点应显示DataNode, NodeManager访问Web UINameNode: http://node1:50070ResourceManager: http://node1:80886. 运行测试作业6.1 创建HDFS目录hdfs dfs -mkdir /input hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input6.2 运行MapReduce示例hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep /input /output dfs[a-z.]6.3 查看结果hdfs dfs -cat /output/*7. 常见问题与解决方案7.1 SSH连接问题如果遇到SSH连接问题检查以下几点确保sshd服务正在运行sudo systemctl status sshd检查防火墙设置sudo systemctl stop firewalld测试环境验证密钥权限chmod 600 ~/.ssh/authorized_keys7.2 节点无法加入集群检查slaves文件配置是否正确查看DataNode日志tail -f $HADOOP_HOME/logs/hadoop-*-datanode-*.log确保所有节点时间同步sudo ntpdate pool.ntp.org7.3 Web UI无法访问检查相关进程是否运行jps查看端口监听状态netstat -tulnp | grep java检查防火墙设置8. 集群管理与维护8.1 安全关闭集群stop-yarn.sh stop-dfs.sh8.2 添加新节点在新节点上重复环境配置步骤将新节点主机名加入slaves文件在新增节点上单独启动DataNode和NodeManagerhadoop-daemon.sh start datanode yarn-daemon.sh start nodemanager8.3 监控与优化定期检查HDFS使用情况hdfs dfsadmin -report监控YARN资源使用yarn node -list调整配置参数根据硬件配置调整mapreduce.map.memory.mb和mapreduce.reduce.memory.mb根据数据量调整dfs.replication9. 实际应用建议生产环境建议使用专用硬件而非虚拟机配置RAID提高数据可靠性设置监控告警系统性能优化技巧合理设置HDFS块大小默认为128MB根据数据特点选择合适压缩格式优化Mapper和Reducer数量数据安全考虑定期备份NameNode元数据启用HDFS权限控制考虑使用Kerberos认证10. 学习资源推荐官方文档Hadoop官网https://hadoop.apache.orgHDFS架构指南MapReduce教程进阶学习YARN资源管理HBase、Hive等生态系统组件Spark与Hadoop集成实践建议尝试不同规模的数据集模拟节点故障恢复测试不同配置下的性能表现
企业数字化 ERP 产品动态
相关推荐
OpenRig开放机架组装全攻略:从设计思路到实战踩坑 OpenRig 这个名字,我第一次看到是在某个硬件爱好者的群里,当时第一反应以为是某个开源云渲染项目,聊了几句才明白,大家口中的 openrig 其实就是开放式机架工作站的简称——一台不装进封闭机箱、直接以金属框架为骨架的 PC。这玩意… · 2026/11/2 14:14:22
软件架构设计模板:4+1视图与五层分层落地指南 简介:本资源是一份专业、完整的架构设计标准化模板文档,面向中高级软件工程师、系统架构师及技术团队负责人,解决项目初期缺乏统一设计规范、架构决策记录缺失、质量属性难以对齐等常见痛点。文档采用Word格式(.doc)&a… · 2026/11/2 14:14:22
Vue Router同名路由404问题解决方案 1. Vue Router 同名路由404问题深度解析 最近在项目中使用Vue Router时遇到了一个棘手的问题:当两个路由使用相同名称时,页面跳转会出现404错误。这个问题看似简单,实则涉及Vue Router的核心工作机制。经过反复排查和官方文档研究,… · 2026/11/2 14:14:22
免费AutoHotkey教程:如何编写并运行第一个Windows自动化热键脚本 免费AutoHotkey教程:如何编写并运行第一个Windows自动化热键脚本 【免费下载链接】AutoHotkey AutoHotkey - macro-creation and automation-oriented scripting utility for Windows. 项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey
回复同一封确… · 2026/11/3 2:12:22
LunaTranslator 快速上手:视觉小说实时翻译工具的版本选择、部署与启动指南 LunaTranslator 快速上手:视觉小说实时翻译工具的版本选择、部署与启动指南 【免费下载链接】LunaTranslator 视觉小说翻译器 / Visual Novel Translator 项目地址: https://gitcode.com/GitHub_Trending/lu/LunaTranslator
LunaTranslator 是一款面向视觉小… · 2026/11/3 2:12:22
Linux系统相关检测与Shell脚本了解 文章目录Linux文件下载器wget文件下载器cutl多功能文件下载器Linux防火墙查看iptables静态防火墙状态查看firewalld动态防火墙状态防火墙安装指令Linux防火墙关闭与启动服务了解shell脚本编辑器常见的shell与shell的区别如何写shell脚本与使用可用TRAE CN平台,生成A… · 2026/11/3 2:12:22
OpenCode + tmux 三窗格终端布局,让“写、问、跑“不用切窗口 OpenCode tmux 三窗格终端布局,让"写、问、跑"不用切窗口 【免费下载链接】termai A powerful AI coding agent. Built for the terminal. 项目地址: https://gitcode.com/gh_mirrors/te/termai
改一行代码,报错、问 AI、回去改&#… · 2026/11/3 2:12:22
AMQP协议简介 一、消息开发传统的应用开发一般都采用的是快速的 “请求-响应” 处理模式,即当用户向服务端发出了一个请求之后,那么服务端会立即对该请求进行处理,如图1所示。但是当请求并发量较大时,这样的处理模式就有可能造成服务端程序的崩… · 2026/11/3 2:12:22
TaskManager Pro版功能解析:如何解锁网络监控和电池健康检测 【免费下载链接】TaskManager A Task Manager for android 项目地址: https://gitcode.com/gh_mirrors/taskmanager17/TaskManager 点击查看 免费下载 TaskManager 是一款开源的 Android 任务管理器(Task Manager),可免费使用 CP… · 2026/11/3 2:11:21
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18
STM32F411RE与MAX14431实现SPI隔离:工业现场抗共模干扰实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
ESP32+大模型AI硬件开发:从Demo到产品的8个工程问题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
基于MAX14431BAEE+与PIC18F85J10的SPI隔离方案设计与实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/3 1:01:59
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 13:10:28
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 4:42:45
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/2 5:17:18