当前位置: 首页 > news >正文

hadoop伪分布式模式

  以下是 Hadoop 伪分布式模式(Pseudo-Distributed Mode)的环境搭建步骤。伪分布式模式下,Hadoop 的各个组件(如 HDFS、YARN、MapReduce)以独立进程运行,但所有服务均部署在单台机器上,模拟多节点集群的行为。这是学习和开发中最常用的模式。

环境准备

  操作系统:Linux(如 Ubuntu/CentOS)或 macOS(Windows 需通过 WSL 或虚拟机)。

  前置条件

     (1)完成 Hadoop 单机模式 的安装(JDK 和 Hadoop 解压配置)。

单机模式可以参考本人博客:

Hadoop 单机模式(Standalone Mode)部署与 WordCount 测试-CSDN博客

     (2) 配置 SSH 免密登录(用于启动 Hadoop 服务)。

配置 SSH 免密登录:

  Hadoop 需要通过 SSH 启动本地进程

# 生成 SSH 密钥(如果已有密钥可跳过)
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa# 将公钥添加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys# 测试免密登录本机
ssh localhost# 输入 exit 退出

1.修改 Hadoop 配置文件

注意:

接下来配置四个文件,格式严谨,一定不能配置错,否则初始化会出问题,第一次启动hadoop需要初始化,只有一次机会,出现下图即是成功

(1)进入配置目录
cd /opt/hadoop/etc/hadoop
(2)编辑 core-site.xml
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/tmp/hadoop-tmp</value></property>
</configuration>

(3)编辑 hdfs-site.xml

  配置 HDFS 副本数(伪分布式设为 1):

<configuration><property><name>dfs.replication</name><value>1</value></property><!-- 启用 Web 访问接口 --><property><name>dfs.namenode.http-address</name><value>localhost:9870</value></property>
</configuration>

(4)编辑 mapred-site.xml

  指定 MapReduce 使用 YARN 框架

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

(5)编辑 yarn-site.xml

  配置 YARN 资源管理:

<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.resourcemanager.hostname</name><value>localhost</value></property>
</configuration>

2.初始化 HDFS(*)

  首次启动前需格式化 NameNode:

hdfs namenode -format

 3.编辑 Hadoop 环境配置文件

 里面原本的内容全部删掉,修改成下面这个

vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
export JAVA_HOME=/opt/jdk1.8  # 替换为你的实际路径

4.启动或停止服务的相关命令

# 启动 hdfs服务
$HADOOP_HOME/sbin/start-dfs.sh# yarn启动
$HADOOP_HOME/sbin/start-yarn.sh# 启动所有服务
$HADOOP_HOME/sbin/start-all.sh# 停止所有服务
$HADOOP_HOME/sbin/stop-all.sh# 停止 YARN
$HADOOP_HOME/sbin/stop-yarn.sh# 停止 HDFS
$HADOOP_HOME/sbin/stop-dfs.sh# 验证进程是否终止
jps
# 应仅剩余 Jps 进程(或无 Hadoop 相关进程)

停止启动命令存放位置

补充:linux里是sh,windows里是cmd

5.启动并查看

根据上一步进入到sbin中,启动所有服务:

./start-all.sh

  查看:输入jps

(jps就是java里面的进程)

6.网页验证

https://10.1.1.100:9870

hdfs安装成功就可以进入下面页面(因为前面的一个配置文件hdfs-site.xml)

目前为止,hadoop的伪分布式环境部署完成

问题与解决
  • 问题 1:首次格式化后启动失败,日志报错 Cannot lock storage directory
    原因:重复格式化导致存储目录冲突。
    解决:删除 /tmp/hadoop-tmp 目录后重新格式化。

  • 问题 2:Web UI 端口无法访问。
    原因:防火墙未关闭或 SELinux 限制。
    解决:执行 systemctl stop firewalld 和 setenforce 0 临时禁用安全策略。

  • 问题 3jps 缺少某些进程(如 SecondaryNameNode)。
    原因:未正确配置 hdfs-site.xml 中的辅助节点地址。
    解决:添加 <dfs.namenode.secondary.http-address> 配置并重启服务。

实验结论
  1. 成功部署:Hadoop 伪分布式环境所有服务(HDFS、YARN、MapReduce)均正常运行,验证了分布式存储和计算的基本功能。

  2. 配置文件关键性:核心配置文件(如 hdfs-site.xml)的格式和参数必须严格匹配,否则会导致服务启动失败。

  3. 网络与权限:SSH 免密登录和防火墙/SELinux 设置是服务正常访问的前提条件。

  4. 适用场景:伪分布式模式适合开发测试,但需注意单点故障风险(如所有进程运行在同一台机器)。

http://www.xdnf.cn/news/225721.html

相关文章:

  • 【操作系统】进程和线程的区别
  • Dify 获取天气数据并以echarts图表显示
  • SPSS PCA+判别分析
  • Axure疑难杂症:全局变量跨页面赋值、中继器交互(玩转全局变量)
  • 4:QT联合HALCON编程—机器人二次程序抓取开发(九点标定)
  • [特殊字符] Spring Cloud 微服务配置统一管理:基于 Nacos 的最佳实践详解
  • windows远程服务器数据库的搭建和远程访问(Mysql忘记密码通过Navicat连接记录解密密码)
  • Android学习总结之设计场景题
  • 当插入排序遇上“凌波微步“——希尔排序的奇幻漂流
  • 单体项目到微服务的架构演变与K8s发展是否会代替微服务
  • 华为云汪维敏:AI赋能应用现代化,加速金融生产力跃升
  • “BYD SHENZHEN”启运,搭载超7000台比亚迪新能源车前往巴西
  • 金融风控的“天眼”:遥感技术的创新应用
  • H.264添加 SEI 信息技术文档
  • MySQL bin目录下的可执行文件
  • 零基础学Java——第八章:Java网络编程(下)
  • 数据资产管理与AI融合:物联网时代的新征程
  • 【KWDB 创作者计划】_存储引擎深度解析
  • 核心技能:ArcGIS洪水灾害普查、风险评估及淹没制图
  • MT6765 android上层获取VCM lens位置
  • macOS 安装了Docker Desktop版终端docker 命令没办法使用
  • ‌阿里云dns服务器不可用怎么办?dns可以随便改吗?
  • Dockerfile最佳实践:构建高效、安全的容器镜像
  • AI生成Flutter UI代码实践(一)
  • 学习记录:DAY21
  • EasyRTC嵌入式音视频实时通话SDK技术,打造低延迟、高安全的远程技术支持
  • 【JavaEE】网络原理之初识(1.0)
  • M1 Mac pip3 install错误记录
  • 算法基础学习|03整数二分
  • 【工具变量】地级市李白消费指数及预期指数数据集(2012-2022年)