一、项目前言

很多大数据专业同学做毕设、课设时,80%的时间都浪费在环境搭建报错上:版本不兼容、进程闪退、DataNode启动失败、Hive元数据报错、HMaster自动关闭、Spark集群连接失败等。

大数据项目无论做日志分析、用户画像、推荐系统、可视化大屏,前提必须拥有一套可运行的完整集群

本篇文章整理一次性成功搭建流程,所有命令、配置文件均已实测可用,规避99%新手坑,适合所有大数据毕设、课设项目打底使用。

适用人群:大数据专业课设/毕设学生、零基础大数据入门、需要快速搭建集群做项目开发的同学。

环境版本(2026稳定顶配组合)

  • 操作系统:CentOS 7.9

  • JDK:1.8.0_371

  • Hadoop:3.3.6

  • Zookeeper:3.8.3

  • Hive:3.1.3

  • HBase:2.5.5

  • Spark:3.4.1

  • MySQL:8.0.33(Hive元数据存储)

二、集群整体架构(三节点)

节点

IP

主机名

核心角色

Master

192.168.88.100

master

NameNode、ResourceManager、HMaster、SparkMaster

Slave1

192.168.88.101

slave1

DataNode、NodeManager、RegionServer、ZK Leader

Slave2

192.168.88.102

slave2

DataNode、NodeManager、RegionServer、ZK Follower

三、基础环境全局配置(三台机器统一操作)

3.1 主机名与hosts映射

分别修改三台主机名


hostnamectl set-hostname master hostnamectl set-hostname slave1 hostnamectl set-hostname slave2

三台统一配置hosts


vim /etc/hosts 192.168.88.100 master 192.168.88.101 slave1 192.168.88.102 slave2

3.2 关闭防火墙与SELinux


systemctl stop firewalld systemctl disable firewalld sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0

3.3 SSH免密登录(仅Master执行)


ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa ssh-copy-id master ssh-copy-id slave1 ssh-copy-id slave2

3.4 JDK环境统一部署

卸载系统自带OpenJDK


rpm -qa | grep java | xargs rpm -e --nodeps 2>/dev/null

解压JDK并配置环境变量 /etc/profile


export JAVA_HOME=/opt/module/jdk1.8.0_371 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

生效并验证


source /etc/profile java -version

四、Zookeeper集群搭建(优先搭建)

4.1 解压与环境变量


tar -zxvf /opt/software/apache-zookeeper-3.8.3-bin.tar.gz -C /opt/module/ mv /opt/module/apache-zookeeper-3.8.3-bin /opt/module/zookeeper-3.8.3

添加环境变量


export ZK_HOME=/opt/module/zookeeper-3.8.3 export PATH=$ZK_HOME/bin:$PATH

4.2 核心配置 zoo.cfg


tickTime=2000 initLimit=10 syncLimit=5 dataDir=/opt/module/zookeeper-3.8.3/zkData dataLogDir=/opt/module/zookeeper-3.8.3/zkLog clientPort=2181 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888

4.3 节点myid配置(关键避坑)

master:echo -n 1 > zkData/myid

slave1:echo -n 2 > zkData/myid

slave2:echo -n 3 > zkData/myid

4.4 集群启动与验证


zkServer.sh start zkServer.sh status

正常结果:一主两从(1个leader、2个follower)

五、Hadoop3.3.6 集群完整搭建

5.1 环境变量与目录创建


export HADOOP_HOME=/opt/module/hadoop-3.3.6 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

5.2 七大核心配置文件(可直接覆盖)

core-site.xml


<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/opt/module/hadoop-3.3.6/tmp</value> </property> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> </configuration>

hdfs-site.xml


<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/opt/module/hadoop-3.3.6/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/opt/module/hadoop-3.3.6/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.http-address</name> <value>master:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave1:50090</value> </property> </configuration>

yarn-site.xml


<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>master</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> </configuration>

mapred-site.xml


<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property> </configuration>

workers


master slave1 slave2

hadoop-env.sh 关键配置


export JAVA_HOME=/opt/module/jdk1.8.0_371 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

5.3 集群初始化与启动


hdfs namenode -format start-dfs.sh start-yarn.sh mapred --daemon start historyserver

访问地址:

  • HDFS:http://192.168.88.100:50070

  • YARN:http://192.168.88.100:8088

六、MySQL8.0 安装(Hive元数据库)


wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm rpm -ivh mysql80-community-release-el7-3.noarch.rpm yum install -y mysql-community-server systemctl start mysqld systemctl enable mysqld

获取临时密码并修改权限


grep 'temporary password' /var/log/mysqld.log mysql -uroot -p SET GLOBAL validate_password.policy=LOW; SET GLOBAL validate_password.length=6; ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; CREATE DATABASE hive_metastore DEFAULT CHARACTER SET utf8mb4; CREATE USER 'hive'@'%' IDENTIFIED BY 'hive123'; GRANT ALL PRIVILEGES ON hive_metastore.* TO 'hive'@'%'; FLUSH PRIVILEGES;

七、Hive3.1.3 数据仓库搭建

7.1 解压与环境变量


tar -zxvf /opt/software/apache-hive-3.1.3-bin.tar.gz -C /opt/module/ mv /opt/module/apache-hive-3.1.3-bin /opt/module/hive-3.1.3 export HIVE_HOME=/opt/module/hive-3.1.3 export PATH=$HIVE_HOME/bin:$PATH

7.2 hive-site.xml 完整配置


<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/hive_metastore?useSSL=false&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>hive123</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property> <property> <name>hive.cli.print.header</name> <value>true</value> </property> </configuration>

7.3 初始化元数据 & 启动


schematool -dbType mysql -initSchema hdfs dfs -mkdir -p /user/hive/warehouse hdfs dfs -chmod -R 777 /user/hive/warehouse hdfs dfs -mkdir -p /tmp hdfs dfs -chmod -R 777 /tmp nohup hiveserver2 > /dev/null 2>&1

八、HBase2.5.5 分布式集群搭建

8.1 核心配置 hbase-site.xml


<configuration> <property> <name>hbase.rootdir</name> <value>hdfs://master:9000/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>master,slave1,slave2</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/opt/module/zookeeper-3.8.3/zkData</value> </property> <property> <name>hbase.unsafe.stream.capability.enforce</name> <value>false</value> </property> </configuration>

hbase-env.sh 关键修改


export JAVA_HOME=/opt/module/jdk1.8.0_371 export HBASE_MANAGES_ZK=false

8.2 启动集群


start-hbase.sh

九、Spark3.4.1 集群搭建(集成Hive)

9.1 spark-env.sh 核心配置


export JAVA_HOME=/opt/module/jdk1.8.0_371 export HADOOP_HOME=/opt/module/hadoop-3.3.6 export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export SPARK_MASTER_HOST=master export SPARK_MASTER_PORT=7077 export HIVE_HOME=/opt/module/hive-3.1.3 export SPARK_WORKER_MEMORY=1024m export SPARK_WORKER_CORES=1

拷贝Hive配置让Spark支持HiveSQL


cp /opt/module/hive-3.1.3/conf/hive-site.xml /opt/module/spark-3.4.1/conf/

9.2 启动Spark集群


start-all.sh

Spark WebUI:http://192.168.88.100:8080

十、大数据集群一键启停脚本(终极神器)

start-all-cluster.sh


#!/bin/bash echo "===== 启动Zookeeper =====" ssh master 'zkServer.sh start' ssh slave1 'zkServer.sh start' ssh slave2 'zkServer.sh start' sleep 3 echo "===== 启动HDFS&YARN =====" start-dfs.sh start-yarn.sh mapred --daemon start historyserver sleep 5 echo "===== 启动HiveServer2 =====" nohup hiveserver2 > /dev/null 2>&1 & sleep 3 echo "===== 启动HBase =====" start-hbase.sh sleep 5 echo "===== 启动Spark =====" /opt/module/spark-3.4.1/sbin/start-all.sh echo "===== 集群全部启动完成 ====="

stop-all-cluster.sh


#!/bin/bash /opt/module/spark-3.4.1/sbin/stop-all.sh stop-hbase.sh ps -ef | grep hiveserver2 | grep -v grep | awk '{print $2}' | xargs kill -9 stop-yarn.sh stop-dfs.sh ssh master 'zkServer.sh stop' ssh slave1 'zkServer.sh stop' ssh slave2 'zkServer.sh stop' echo "集群全部停止完成"

十一、全网高频报错避坑总结

  • DataNode启动失败:多次格式化导致clusterID不一致,删除所有节点 dfs/data、dfs/name 重新格式化

  • Hive初始化失败:MySQL未开启远程权限,务必授权 'hive'@'%'

  • HMaster闪退:未关闭自带ZK,设置 HBASE_MANAGES_ZK=false

  • Spark找不到Hive类:未拷贝 hive-site.xml 到Spark conf

  • 虚拟机内存报错:关闭YARN虚拟内存检查 vmem-check-enabled=false

十二、文末资源与技术辅导

本文涵盖大数据全套集群环境从零搭建、完整配置文件、一键启停脚本、报错解决方案、集群验证方案,适合作为大数据毕设、课设的基础环境教程。

需要全套打包资源(配置文件合集、脚本文件、环境搭建文档、问题排查手册)可以直接站内私信领取。

针对大数据课程设计、毕业设计,本人提供全流程技术辅导:环境搭建调试、大数据项目开发、数据清洗分析、可视化开发、论文思路梳理、答辩指导,全程一对一协助落地,帮同学们顺利完成毕设交付。有需求可直接CSDN站内私信沟通。

文章标签

#大数据环境搭建 #Hadoop3.3.6 #Spark集群搭建 #Hive数据仓库 #HBase集群 #大数据毕设 #计算机课设

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐