2026最新Hadoop+Spark+Hive+HBase大数据全生态环境搭建完整教程(避坑版)
一、项目前言
很多大数据专业同学做毕设、课设时,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集群 #大数据毕设 #计算机课设
更多推荐



所有评论(0)