尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

生产搭建Hadoop

生产搭建Hadoop
📅 发布时间:2026/6/17 19:42:13

数据存储依赖:Hadoop 包含 HDFS(分布式文件系统)和 MapReduce(计算框架)等组件,而 Spark 本身主要是一个计算引擎,没有自带分布式文件系统。在很多场景下,Spark 会依赖 HDFS 来存储海量数据。

前提检查
确认 Spark 已正常运行(jps 能看到 Master 和 Worker 进程)
记录 Spark 占用的端口(默认:Master 7077/8080,Worker 8081)
确保服务器有足够内存(建议至少 8GB,避免两者内存竞争)

步骤 1:下载并安装 Hadoop

下载 Hadoop 3.3.6(稳定版本)

wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

解压到 /opt 目录

sudo tar -zxvf hadoop-3.3.6.tar.gz -C /opt/
sudo mv /opt/hadoop-3.3.6 /opt/hadoop

设置权限(替换为你的用户名)

sudo chown -R root:root /opt/hadoop

步骤 2:配置 Hadoop 环境变量

编辑环境变量文件

vim ~/.bashrc

添加以下内容(与 Spark 环境变量区分开)

export HADOOP_HOME=/opt/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

生效配置

source ~/.bashrc

验证安装(显示版本即正常)

hadoop version
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64
export PATH=$JAVA_HOME/bin:$PATH
配置完Java后【~/.bashrc】,hadoop version才正常

步骤 3:修改 Hadoop 配置文件(核心:避免端口冲突)
需要修改 4 个关键配置文件,重点调整可能与 Spark 冲突的端口:

3.1 配置 core-site.xml

vim $HADOOP_HOME/etc/hadoop/core-site.xml 【添加内容(使用 9000 端口,与 Spark 不冲突):】



fs.defaultFS
hdfs://172.18.48.186:9000



hadoop.tmp.dir
/opt/hadoop/tmp

mkdir -p /opt/hadoop/tmp # 创建临时目录
chmod 755 /opt/hadoop/tmp # 赋予权限

3.2 配置 hdfs-site.xml

vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml 【添加内容(单节点伪分布式配置):】

dfs.replication1dfs.namenode.http-address0.0.0.0:9870dfs.datanode.address0.0.0.0:9865

3.3 配置 mapred-site.xml

直接创建并编辑 mapred-site.xml

vim $HADOOP_HOME/etc/hadoop/mapred-site.xml 【添加内容(指定 MapReduce 运行在 YARN 上):】

mapreduce.framework.nameyarnmapreduce.jobhistory.webapp.address0.0.0.0:19888

3.4 配置 yarn-site.xml

vim $HADOOP_HOME/etc/hadoop/yarn-site.xml 【添加内容(关键:修改 YARN 端口避免与 Spark 冲突):】

yarn.nodemanager.aux-servicesmapreduce_shuffleyarn.resourcemanager.hostname0.0.0.0yarn.resourcemanager.webapp.address0.0.0.0:8088yarn.nodemanager.resource.memory-mb4096 yarn.scheduler.maximum-allocation-mb4096

步骤 4:配置 SSH 免密登录(Hadoop 启动需要)

生成 SSH 密钥(一路回车即可)

ssh-keygen -t rsa -P ""

将公钥添加到授权列表

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

测试免密登录本地(首次需输入 yes)

ssh localhost

步骤 5:初始化 HDFS 并启动 Hadoop

格式化 HDFS(仅首次执行)

hdfs namenode -format

启动 HDFS

start-dfs.sh

(可选)启动 YARN(若需使用 MapReduce 等依赖 YARN 的组件)

start-yarn.sh

步骤 6:验证 Hadoop 启动且与 Spark 无冲突

查看进程(应包含以下进程,且与 Spark 的 Master/Worker 共存)

jps

预期结果(包含但不限于):

NameNode、DataNode、ResourceManager、NodeManager、Master、Worker

访问网页控制台验证端口是否正常

HDFS 管理界面:http://localhost:9870

YARN 管理界面:http://localhost:8088

Spark Master 界面:http://localhost:8080(之前已存在)

关键冲突处理
如果出现端口冲突(启动失败或进程异常退出):
查看错误日志($HADOOP_HOME/logs/ 或 $SPARK_HOME/logs/)
找到冲突的端口,修改对应配置文件:
Spark 端口修改:$SPARK_HOME/conf/spark-env.sh 中设置 SPARK_MASTER_WEBUI_PORT 等
Hadoop 端口修改:在上述 4 个 XML 配置文件中调整对应端口参数
通过以上步骤,即可在同一台服务器上同时运行 Spark Standalone 和 Hadoop 伪分布式集群,且两者能协同工作(例如 Spark 可以读取 HDFS 上的数据)。

从日志来看,HDFS 格式化已经成功(关键日志:Storage directory /opt/hadoop/tmp/dfs/name has been successfully formatted),但启动 start-dfs.sh 时报错,原因是 Hadoop 不允许直接用 root 用户启动服务,且未配置对应的用户环境变量。
解决方法是在 Hadoop 的启动脚本配置中,添加 root 用户的环境变量声明,具体步骤如下

声明 HDFS 和 YARN 各组件的运行用户为 root

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

配置 HDFS 组件运行用户(解决 namenode/datanode 启动报错)

export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"

配置 YARN 组件运行用户(后续启动 YARN 时会用到,提前配置避免后续报错)

export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"

重新启动HDFS服务 start-dfs.sh

jps 只看到NameNode没看到DataNode

vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh 【export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-arm64】

查看 DataNode 启动日志,定位失败原因
tail -n 100 /opt/hadoop/logs/hadoop-root-datanode-iZwz92800vffoao9eb64l1Z.log

常见原因:
端口被占用(如 9864 端口被其他进程占用)
之前格式化 HDFS 后,/opt/hadoop/tmp 目录残留旧数据导致冲突

stop-dfs.sh
rm -rf /opt/hadoop/tmp
hdfs namenode -format
start-dfs.sh

9864端口换成9865

启动历史服务器

mapred --daemon start historyserver

1. 开放 9870 端口(TCP 协议,HDFS Web 服务用 TCP)

ufw allow 9870/tcp
ufw allow 8088/tcp

2. 重启防火墙使配置生效

ufw reload

3. 验证端口是否已开放(输出 "9870/tcp ALLOW Anywhere" 即成功)

ufw status

HDFS 管理界面:http://localhost:9870

YARN 管理界面:http://localhost:8088

Spark Master 界面:http://localhost:8080(之前已存在)

相关新闻

  • 生产搭建Rabbitmq
  • macOS Tahoe 26 RC (25A353) Boot ISO 原版可引导镜像下载
  • 企业如何选型低代码平台?4款产品测评

最新新闻

  • 2026 安徽哪所学校护理升学强?5大高升学率中职招生名单 - 小途xt
  • NXP DPAA硬件加速实战:报文头操作与CAAM加密引擎配置详解
  • 2026年论文写作AI工具怎么用?豆包等工具详细使用教程 - 掌桥科研-AI论文写作
  • 2026滁州家长注意!离南京这么近,孩子学建筑去这所公办中职,比在南京打工强 - 我叫小周
  • 50行Python实现人脸检测:OpenCV+Haar级联原理与实战
  • 2026重庆高端珠宝首饰回收排行 权威鉴定实测靠谱商家榜单 - 名奢变现站

日新闻

  • 2026年不锈钢卷板厂家推荐排行榜:冷轧热轧/304/201不锈钢卷板,高颜值耐腐蚀源头厂家实力精选 - 企业推荐官【官方】
  • FLUX.1-dev FP8模型实战指南:24GB以下显卡高效部署方案
  • 2026佛山长途搬家价目表:跨省跨市搬家费用完整计算指南 - 从来都是英雄出少年

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号