惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
Netflix TechBlog - Medium
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
The Blog of Author Tim Ferriss
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
L
LangChain Blog
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
小众软件
小众软件
WordPress大学
WordPress大学
A
About on SuperTechFans
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
美团技术团队
Jina AI
Jina AI
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
D
Docker

博客园 - 灰色飘零

Hilt 依赖注入实战指南 Android R8适配全流程详解 AI Coding逐步引导式开发,从零到一生成完整技术方案 AI 时代的新项目技术最佳选型 如何建立人类与 AI 的协作习惯 【实战】用 AI 吃透 Git Commit:从代码修改到原理拆解 + 学习规划 端侧大模型实践 - 生成预测模型&模型轻量化&端侧部署 端侧大模型实践-ESC上实现大模型轻量化功能 端侧大模型实践 - 端侧大模型极简版Demo版落地概述 Agent 会重构数字服务入口与分发逻辑,但不会彻底消灭 APP 解构 AICoding 底层逻辑:人的能力定义 AI 边界 告别AI概念混乱!一次性讲透 Agent Skills、Rules、Prompt、MCP AI编程的实践场景与未来可能:一场开发范式的演进 移动端 SDK 开发经验总结及梳理 Android WebView不显示Mixed Content的问题解决方案 Android SDK 组件化 AAR 打包集成 【工信部】App违法违规收集使用个人信息行为认定方法 Git 远程删除分支后,本地 git branch -a 依然能看到的解决办法 Java 安全密码学 Android使用ContentProvider初始化SDK库方案总结
端侧大模型实践 - Hadoop + Spark 配置方案
灰色飘零 · 2026-02-11 · via 博客园 - 灰色飘零

建议统一使用 Ubuntu 20.04(阿里云镜像市场可直接选择),兼容性最好。
image

Ubuntu 20.04 是搭建这类环境的优选系统,无论是伪分布式 Hadoop/Spark 还是 GPU 模型训练都能完美适配;

下面是hadoop + Spark配置方案。


1. 基础环境准备(核心适配 Ubuntu 20.04)

# 1. 更新系统并关闭防火墙(Ubuntu 默认用 ufw)
sudo apt update && sudo apt upgrade -y
sudo ufw disable  # 关闭防火墙,避免端口拦截
sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  # 若有 SELinux 则关闭(Ubuntu 一般默认禁用)

# 2. 安装依赖(Java 8 是 Hadoop/Spark 的标配)
sudo apt install -y openjdk-8-jdk wget vim ssh net-tools

# 3. 配置 Java 环境变量(永久生效)
echo "export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" | sudo tee -a /etc/profile
echo "export PATH=\$PATH:\$JAVA_HOME/bin" | sudo tee -a /etc/profile
source /etc/profile

# 4. 配置免密登录(伪分布式核心,Ubuntu 需确保 ssh 服务启动)
sudo systemctl enable ssh && sudo systemctl start ssh
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  # 一路回车,无密码
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

# 5. 配置主机名(方便识别,可选但推荐)
sudo hostnamectl set-hostname hadoop-spark-node
echo "127.0.0.1 hadoop-spark-node" | sudo tee -a /etc/hosts

2. 安装并配置 HDFS(Hadoop 3.3.4,适配 Ubuntu 20.04)

# 1. 下载并解压 Hadoop
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
sudo tar -zxvf hadoop-3.3.4.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
sudo chown -R $USER:$USER /usr/local/hadoop  # 赋予当前用户权限

# 2. 配置 Hadoop 环境变量
echo "export HADOOP_HOME=/usr/local/hadoop" | sudo tee -a /etc/profile
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" | sudo tee -a /etc/profile
source /etc/profile

# 3. 修改 Hadoop 核心配置文件
# (1) 配置 core-site.xml
sudo vim /usr/local/hadoop/etc/hadoop/core-site.xml
# 写入以下内容(替换原有空配置):
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop-spark-node:9000</value>  # 对应配置的主机名
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>  # 临时目录,需确保权限
    </property>
</configuration>

# (2) 配置 hdfs-site.xml(伪分布式副本数设为 1)
sudo vim /usr/local/hadoop/etc/hadoop/hdfs-site.xml
# 写入以下内容:
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>  # 伪分布式仅1个节点,副本数只能是1
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop-spark-node:50070</value>  # HDFS 网页管理端口
    </property>
</configuration>

# (3) 配置 hadoop-env.sh(指定 Java 路径)
sudo vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
# 添加一行:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

# 4. 格式化 HDFS 并启动
hdfs namenode -format  # 首次启动必须格式化,仅需执行一次
start-dfs.sh  # 启动 HDFS

# 验证 HDFS 启动状态(出现 NameNode、DataNode、SecondaryNameNode 即为成功)
jps

这里启动start-dfs.sh 的时候可能遇到root用户下的用户环境变量定义问题,原因是:Hadoop 从安全角度出发,不建议(甚至禁止)使用 root 用户直接启动 HDFS/YARN 相关守护进程,启动脚本会检查对应的用户环境变量:
HDFS_NAMENODE_USER:启动 namenode 的用户
HDFS_DATANODE_USER:启动 datanode 的用户
HDFS_SECONDARYNAMENODE_USER:启动 secondarynamenode 的用户

解决方案:(注意:生产环境不推荐这样搞)
image

配置好了之后,执行jps,可以看到 NameNode、DataNode、SecondaryNameNode ,说明配置成功了。
image

3. 安装并配置 Spark(3.3.4,适配 Hadoop 3.3.4 和 Ubuntu 20.04)

# 1. 下载并解压 Spark(选择适配 Hadoop 3 的版本)
wget https://archive.apache.org/dist/spark/spark-3.3.4/spark-3.3.4-bin-hadoop3.tgz
sudo tar -zxvf spark-3.3.4-bin-hadoop3.tgz -C /usr/local/
sudo mv /usr/local/spark-3.3.4-bin-hadoop3 /usr/local/spark
sudo chown -R $USER:$USER /usr/local/spark

# 2. 配置 Spark 环境变量
echo "export SPARK_HOME=/usr/local/spark" | sudo tee -a /etc/profile
echo "export PATH=\$PATH:\$SPARK_HOME/bin:\$SPARK_HOME/sbin" | sudo tee -a /etc/profile
source /etc/profile

# 3. 配置 Spark 连接 HDFS
sudo cp /usr/local/spark/conf/spark-env.sh.template /usr/local/spark/conf/spark-env.sh
sudo vim /usr/local/spark/conf/spark-env.sh
# 写入以下内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop  # 关联 HDFS 配置
export SPARK_MASTER_HOST=hadoop-spark-node
export SPARK_WORKER_MEMORY=4g  # 根据服务器内存调整,比如 8G 内存设为 6g

# 4. 启动 Spark 集群
start-all.sh  # 启动 Spark Master 和 Worker

# 验证 Spark 启动状态(出现 Master、Worker 即为成功)
jps

# 5. 验证 HDFS+Spark 联动
# (1) HDFS 验证:创建目录并上传文件
hdfs dfs -mkdir /test
hdfs dfs -put /etc/hosts /test/
hdfs dfs -ls /test  # 能看到 hosts 文件即为 HDFS 正常

# (2) Spark 验证:运行 Pi 计算示例
spark-submit --class org.apache.spark.examples.SparkPi --master local[2] $SPARK_HOME/examples/jars/spark-examples*.jar 10
# 输出 Pi ≈ 3.14 即为 Spark 正常

image