端侧大模型实践 - Hadoop + Spark 配置方案

建议统一使用 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

posted @ 2026-02-11 11:07  灰色飘零  阅读(29)  评论(0)    收藏  举报