news 2026/11/3 13:55:58

Hadoop3伪分布式环境搭建与配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hadoop3伪分布式环境搭建与配置指南

1. Hadoop3伪分布式环境搭建全指南

作为大数据生态的核心组件,Hadoop的伪分布式模式是每个开发者必须掌握的实验环境。不同于单机模式仅用于功能验证,伪分布式完整模拟了Hadoop集群的各个组件,包括NameNode、DataNode和ResourceManager等守护进程,可以真实体验HDFS文件系统和YARN资源调度的完整工作流程。本指南将基于Ubuntu 22.04 LTS和Hadoop 3.3.5版本,详细演示从零开始的部署过程。

重要提示:伪分布式模式要求主机配置至少4GB内存和20GB磁盘空间,建议使用物理机或配置较高的虚拟机。低于此配置可能导致进程异常退出。

1.1 系统环境准备

首先需要创建专用的hadoop系统用户,避免直接使用root账户带来的权限问题。以下命令会创建用户并赋予sudo权限:

sudo useradd -m hadoop -s /bin/bash # 创建用户目录并指定bash为默认shell sudo passwd hadoop # 设置密码(建议设为hadoop便于记忆) sudo adduser hadoop sudo # 加入sudo组

更新软件源并安装必要工具链:

sudo apt-get update sudo apt-get install -y ssh pdsh vim openjdk-8-jdk

这里选择OpenJDK 8是因为Hadoop 3.3.x版本对其兼容性最好。若需使用Oracle JDK,需手动下载tar包配置JAVA_HOME。

配置SSH免密登录是伪分布式运行的关键:

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa # 生成密钥对 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 添加公钥 chmod 0600 ~/.ssh/authorized_keys # 设置权限

验证SSH配置是否成功:

ssh localhost hostname # 应无密码返回主机名

1.2 Hadoop安装与基础配置

从Apache官网下载二进制包并解压:

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz sudo tar -xzf hadoop-3.3.5.tar.gz -C /usr/local/ sudo chown -R hadoop:hadoop /usr/local/hadoop-3.3.5 sudo ln -s /usr/local/hadoop-3.3.5 /usr/local/hadoop # 创建软链接

配置环境变量(~/.bashrc追加):

export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

1.3 核心配置文件修改

修改$HADOOP_HOME/etc/hadoop/core-site.xml:

<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>

配置hdfs-site.xml(注意副本数设为1):

<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file://${hadoop.tmp.dir}/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file://${hadoop.tmp.dir}/dfs/data</value> </property> </configuration>

修改mapred-site.xml启用YARN:

<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>

配置yarn-site.xml资源管理器:

<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME</value> </property> </configuration>

1.4 初始化与启动集群

格式化HDFS文件系统(仅首次需要):

hdfs namenode -format # 看到successfully formatted提示表示成功

启动所有服务:

start-dfs.sh start-yarn.sh

验证进程是否正常:

jps # 应显示以下关键进程: # NameNode # DataNode # ResourceManager # NodeManager # SecondaryNameNode

通过Web UI验证:

  • HDFS状态:http://localhost:9870
  • YARN管理:http://localhost:8088

2. 伪分布式环境实操演练

2.1 HDFS基础操作

创建用户目录并上传测试文件:

hdfs dfs -mkdir -p /user/hadoop hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/hadoop/input

查看文件列表:

hdfs dfs -ls -R /user # 递归列出目录结构

2.2 运行MapReduce示例

执行经典的wordcount程序:

yarn jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar \ wordcount /user/hadoop/input /user/hadoop/output

查看结果:

hdfs dfs -cat /user/hadoop/output/*

2.3 资源限制调整

修改yarn-site.xml增加资源分配:

<property> <name>yarn.nodemanager.resource.memory-mb</name> <value>2048</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>1024</value> </property>

3. 故障排查与优化建议

3.1 常见问题解决方案

问题1:NameNode无法启动

  • 检查日志:$HADOOP_HOME/logs/hadoop-hadoop-namenode-*.log
  • 常见原因:端口冲突或存储目录权限错误
  • 解决方案:
    sudo lsof -i:9000 # 检查端口占用 chmod -R 755 $HADOOP_HOME/tmp # 修复权限

问题2:DataNode进程消失

  • 检查datanode日志中的磁盘空间报错
  • 解决方案:
    hdfs dfsadmin -report # 查看各节点状态 df -h # 检查磁盘空间

3.2 性能优化参数

在hadoop-env.sh中调整JVM参数:

export HADOOP_HEAPSIZE_MAX=1024m export HADOOP_NAMENODE_OPTS="-Xmx1024m" export HADOOP_DATANODE_OPTS="-Xmx512m"

3.3 安全关闭流程

正确停止集群的顺序:

stop-yarn.sh stop-dfs.sh

4. 进阶配置指南

4.1 启用历史服务器

配置mapred-site.xml:

<property> <name>mapreduce.jobhistory.address</name> <value>localhost:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>localhost:19888</value> </property>

启动服务:

mr-jobhistory-daemon.sh start historyserver

4.2 日志聚合配置

在yarn-site.xml中添加:

<property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <property> <name>yarn.nodemanager.remote-app-log-dir</name> <value>/tmp/logs</value> </property>

查看聚合日志:

yarn logs -applicationId <app_id>

经过上述步骤,您已经建立起完整的Hadoop伪分布式环境。这个环境可以用于开发测试MapReduce程序、学习YARN调度机制以及体验HDFS分布式存储特性。对于生产环境,还需要考虑高可用配置、安全认证等更多因素。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 13:55:39

AB1568头戴耳机开发实战:ANC切换、NVkey固化与UI Shell事件框架

简介&#xff1a;这份PDF资料面向从事Airoha洛达AB1568蓝牙耳机固件与应用开发的工程师&#xff0c;系统梳理该芯片平台从底层启动到上层功能实现的完整知识脉络&#xff0c;帮助开发者快速建立工程认知、定位关键代码入口。内容围绕headset工程展开&#xff0c;涵盖上电后执行…

作者头像 李华
网站建设 2026/11/3 13:54:30

硬件测试入门指南:从检视到可靠性,建立完整测试闭环

简介&#xff1a;这是一份面向测试工程师入门与进阶的硬件测试技术培训教材&#xff0c;以PPT形式系统梳理硬件测试的理念、目的、方法与流程&#xff0c;适合刚接触硬件测试的工程师、研发转测试人员及需要建立测试规范的技术管理者参考。压缩包内共1个PPT文件&#xff0c;约7…

作者头像 李华
网站建设 2026/11/3 13:54:29

AB1568蓝牙耳机SDK开发实战:从工程配置到ANC调试与量产固化

简介&#xff1a;这份PDF资料面向从事Airoha洛达AB1568蓝牙耳机固件与应用开发的工程师&#xff0c;系统梳理从硬件启动到应用层功能实现的完整知识链路&#xff0c;适合具备一定嵌入式基础、希望快速上手该芯片平台的中高级开发者。资源包内仅含1个PDF文件&#xff0c;大小约9…

作者头像 李华
网站建设 2026/11/3 13:54:29

HarmonyOS6 RcText组件:分布式文本渲染与智能排版实战

1. HarmonyOS6与RcText组件概述 去年发布的HarmonyOS6系统在开发者工具层面做了大量优化&#xff0c;其中RcText组件作为文本显示的核心控件&#xff0c;经过长达半年的迭代开发终于正式亮相。作为一名参与过多个HarmonyOS应用开发的前端工程师&#xff0c;我发现这个看似简单的…

作者头像 李华
网站建设 2026/11/3 13:53:39

高性能计算中的异构编程技术与优化实践

1. 高性能计算异构编程概述 在当今计算密集型应用领域&#xff0c;传统单一架构的计算设备已难以满足日益增长的性能需求。异构编程作为一种突破性的计算范式&#xff0c;通过协同利用CPU、GPU、FPGA等不同架构处理器的优势&#xff0c;为高性能计算提供了全新的解决方案。我在…

作者头像 李华
网站建设 2026/11/3 13:53:14

MPC在自动泊车系统中的应用与优化实践

1. 项目概述&#xff1a;当MPC遇见自动泊车 在停车场里看着新手司机反复揉库的场景&#xff0c;你是否有过"要是车子能自己停进去就好了"的念头&#xff1f;这正是MPC&#xff08;模型预测控制&#xff09;在智能驾驶领域最接地气的应用——自动泊车与跟踪系统。不同…

作者头像 李华