端侧大模型实践 - Hadoop + Spark 配置方案
建议统一使用 Ubuntu 20.04(阿里云镜像市场可直接选择),兼容性最好。

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 的用户
解决方案:(注意:生产环境不推荐这样搞)

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

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 正常


浙公网安备 33010602011771号