准备工作
1、准备三台虚拟机,参考:CentOS7集群环境搭建(3台)-CSDN博客
2、配置虚拟机之间免密登录,参考:CentOS7集群配置免密登录-CSDN博客
3、虚拟机分别安装jdk,参考:CentOS7集群安装JDK1.8-CSDN博客
4、下载Hadoop安装包,下载地址:链接:https://pan.baidu.com/s/1f1DmqNNFBvBDKi5beYl3Jg?pwd=6666
搭建Hadoop集群
集群部署规划

一、上传并解压Hadoop安装包
1、将hadoop3.3.4.tar.gz使用XFTP上传到opt目录下面的software文件夹下面
2、进入到Hadoop安装包路径
bash
cd /opt/software
3、解压安装文件到/opt/moudle下面
bash
tar -zxvf hadoop-3.3.4.tar.gz -C /opt/moudle/

4、查看是否解压成功
bash
cd /opt/moudle
ll

5、重命名
bash
mv hadoop-3.3.4/ hadoop

6、将Hadoop添加到环境变量
1、获取Hadoop安装路径
进入Hadoop目录下输入
bash
pwd
#输出
opt/moudle/hadoop

2、打开/etc/profile.d/my_env.sh文件
bash
sudo vim /etc/profile.d/my_env.sh
在profile文件末尾添加hadoop路径:(shitf+g)
bash
#HADOOP_HOME
export HADOOP_HOME=/opt/moudle/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

3、保存后退出
esc键然后
:wq
4、分发环境变量文件
分发脚本之前配置的有可以去前面的文章看看
bash
sudo /home/user/bin/xsync /etc/profile.d/my_env.sh
5、source 使之生效(3台节点)
user@hadoop102 module\]$ source /etc/profile.d/my_env.sh
\[user@hadoop103 module\]$ source /etc/profile.d/my_env.sh
\[user@hadoop104 module\]$ source /etc/profile.d/my_env.sh
#### 二、配置集群
1、核心配置文件
配置core-site.xml
```bash
cd $HADOOP_HOME/etc/hadoop
```
```bash
vim core-site.xml
```
文件内容如下(在\
bash
hdfs --daemon start namenode
5、格式化zkfc(102)
zookeeper必须先启动
zk.sh start具体参考zookeeper集群安装
bash
hdfs zkfc -formatZK
6、在所有nn节点(102、103)启动zkfc
bash
hdfs --daemon start zkfc
7、在所有节点上(3台),启动datanode
bash
hdfs --daemon start datanode
8、第二次启动可以在NameNode所在节点执行start-dfs.sh启动HDFS所有进程
(这一步不用管)关闭之时,提示我权限不够,我直接用root用户操作,然后在hadoop-env.sh中加入以下几行
bash
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_JOURNALNODE_USER="root"
export HDFS_ZKFC_USER="root"
在yarn-env.sh中加入了以下几行 :然后分发给三台机器
bash
export YARN_NODEMANAGER_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
bash
start-dfs.sh
stop-dfs.sh
9、在ResourceMamager所在节点执行start-yarn.sh 启动yarn所有进程
bash
start-yarn.sh
stop-yarn.sh
10、部署完成可以通过start-all.sh和stop-all.sh控制Hadoop-HA所有节点的启停
bash
start-all.sh
stop-all.sh
Hadoop群起脚本
1、在/home/user/bin目录下创建hdp.sh
2、写入以下内容
bash
#!/bin/bash
if [ $# -lt 1 ]
then
echo "No Args Input..."
exit ;
fi
case $1 in
"start")
echo " =================== 启动 hadoop集群 ==================="
echo " --------------- 启动 hdfs 和 yarn ---------------"
ssh hadoop102 "/opt/moudle/hadoop/sbin/start-all.sh"
echo " --------------- 启动 historyserver ---------------"
ssh hadoop102 "/opt/moudle/hadoop/bin/mapred --daemon start historyserver"
;;
"stop")
echo " =================== 关闭 hadoop集群 ==================="
echo " --------------- 关闭 historyserver ---------------"
ssh hadoop102 "/opt/moudle/hadoop/bin/mapred --daemon stop historyserver"
echo " --------------- 关闭 hdfs 和 yarn ---------------"
ssh hadoop102 "/opt/moudle/hadoop/sbin/stop-all.sh"
;;
*)
echo "Input Args Error..."
;;
esac
3、增加(+x指的是增加可以运行权限)权限
bash
chmod +x hdp.sh
4、启动集群
bash
hdp.sh start
查看进程
bash
xcall.sh jps
5、关闭集群
bash
hdp.sh stop
查看进程
bash
xcall.sh jps

UI
http://hadoop102:9870/dfshealth.html#tab-overview

http://hadoop102:8088/clusterhttp://hadoop102:8088/cluster

至此Hadoop集群就顺利搭建完成,遇见错误可以私我,共勉~