Hadoop3集群安装

本文遵循BY-SA版权协议,转载请附上原文出处链接。


本文作者: 黑伴白

本文链接: http://heibanbai.com.cn/posts/2b0ccada/

Hadoop3集群安装

环境说明

操作系统:Kylin V10
Hadoop版本:3.3.6
节点数:3
服务器规划:

主机名 heibanbai01 heibanbai02 heibanbai03
IP地址 199.188.166.111 199.188.166.112 199.188.166.113
HDFS NameNode(NN) Secondary NameNode
DataNode(DN) DataNode(DN) DataNode(DN)
YARN ResourceManager(RM)
NodeManager(NM) NodeManager(NM) NodeManager(NM)

虚拟机安装

使用VMware安装,傻瓜式的,这里就不再赘述了
注:本次Hadoop集群搭建是使用VMware虚拟机进行的,首先创建一个虚拟机,并创建安装用户,本示例中为heibanbai(不建议使用root用户,虽然方便,但和不贴合实际项目)。

基础环境准备

对安装好的虚拟机进行基础环境的配置,主要是JDK的安装和防火墙的关闭

JDK安装配置

各版本JDK下载地址,根据需要自取:openJDK下载地址汇总

本文JDK版本:openlogic-openjdk-8u402-b06-linux-x64
安装路径:/app/

1
2
3
4
5
6
7
8
9
# 编辑用户环境变量文件 配置JDK信息
vim ~/.bash_profile

# 增加jdk配置
export JAVA_HOME=/app/openlogic-openjdk-8u402-b06-linux-x64
export PATH=$JAVA_HOME/bin:$PATH

# 生效环境变量
source /etc/profile

配置完成后,查看是否已经生效,如图:
查看JDK版本信息

关闭防火墙

为防止本机无法访问集群资源,需要关闭防火墙,命令为:

1
systemctl stop firewalld.service

关闭后可查看防火墙状态是否已经正确关闭
查看防火墙状态

虚拟机克隆

在创建好的虚拟机右键,管理—>克隆,根据提示,再创建两台虚拟机,根据自己的习惯重新命下名
克隆虚拟机

虚拟机配置

修改主机名

为更贴近实际,我们修改下主机名,命令如下,将三台机器分别进行命名:

1
2
3
4
5
6
# 第一台虚机
hostnamectl set-hostname heibanbai01
# 第二台虚机
hostnamectl set-hostname heibanbai02
# 第三台虚机
hostnamectl set-hostname heibanbai03

配置地址映射

为方便后续管理及服务器之间的通信,需要进行IP地址映射配置,三台服务器同样操作

1
2
3
4
5
vi /etc/hosts
# 增加如下内容
199.188.166.111 heibanbai01
199.188.166.112 heibanbai02
199.188.166.113 heibanbai03

集群免密登录

具体可参考此文:Linux SSH免密登录配置

Hadoop安装与配置

先在heibanbai01节点进行配置,然后直接分发到其他服务器即可

Hadoop的安装其实就是解压并修改配置文件的过程,Hadoop 主要配置文件如下:

配置文件 功能描述
hadoop-env.sh 配置 Hadoop 运行所需的环境变量
yarn-env.sh 配置 Yarn 运行所需的环境变量
core-site.xml Hadoop 核心全局配置文件,可在其他配置文件中引用该文件
hdfs-site.xml HDFS 配置文件,继承 core-site.xml 配置文件
mapred-site.xml MapReduce 配置文件,继承 core-site.xml 配置文件
yarn-site.xml Yarn 配置文件,继承 core-site.xml 配置文件

解压安装包

1
2
# -C后跟的为解压到指定目录下
tar -zxvf hadoop-3.3.6.tar.gz -C /app

配置环境变量

将解压后的hadoop目录下的bin和sbin加入到用户PATH环境变量中,主要是为了后续操作方便

1
2
3
# hadoop
export HADOOP_HOME=/app/hadoop-3.3.6
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

配置文件修改

Hadoop需要修改的配置文件均在/app/hadoop-3.3.6/etc/hadoop目录下,根据集群规划进行相应修改操作,各文件的配置项有很多,此示例仅配置了常用的几项

hadoop_env.sh

配置Hadoop运行所需的环境变量,主要是指定JAVA_HOME

1
export JAVA_HOME=/app/openlogic-openjdk-8u402-b06-linux-x64

core-site.xml

Hadoop核心全局配置文件,可在其他配置文件中引用

1
2
3
4
5
6
7
8
9
10
11
12
13
<configuration>
<!-- 指定NameNode地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://heibanbai01:8020</value>
</property>

<!-- 指定hadoop数据的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop-3.3.6/data</value>
</property>
</configuration>

hdfs-site.xml

HDFS配置文件,继承core-site.xml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
<configuration>
<!-- 指定NameNode web-->
<property>
<name>dfs.namenode.http-address</name>
<value>heibanbai01:9870</value>
</property>

<!-- second name node web -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>heibanbai03:9868</value>
</property>
</configuration>

mapred-site.xml

MapReduce配置文件,继承core-site.xml配置文件

1
2
3
4
5
6
7
<configuration>
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

yarn-site.xml

Yarn配置文件,继承core-site.xml配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<configuration>
<!-- Site specific YARN configuration properties -->
<!-- 指定 MR shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

<!-- ResourceManager addr-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>heibanbai02</value>
</property>
</configuration>

workers

如果配置了works文件,并且配置ssh免密登录, 可以使用 start-dfs.sh 启动 HDFS集群, works配置的为DataNode节点的主机名或IP

1
2
3
heibanbai01
heibanbai02
heibanbai03

集群文件分发

通过命令,将配置好的hadoop分发到其他服务器

1
2
3
4
5
[heibanbai@heibanbai01 ~]$ cd /app
# 分发到服务器 heibanbai02
[heibanbai@heibanbai01 app]$ scp -r hadoop-3.3.6 heibanbai02:/app
# 分发到服务器 heibanbai03
[heibanbai@heibanbai01 app]$ scp -r hadoop-3.3.6 heibanbai03:/app

服务启动与验证

Hadoop服务启动

格式化NameNode

如果集群是第一次启动,需要在主节点格式化 NameNode,本文中为heibanbai01服务器

注意:

格式化 NameNode,会产生新的集群 id,导致 NameNode 和 DataNode 的集群 id 不一致,集群找不到已往数据。

如果集群在运行过程中报错,需要重新格式化 NameNode 的话,一定要先停 止 namenode 和 datanode 进程,并且要删除所有机器的 data 和 logs 目录,然后再进行格式化

格式化命令如下:

1
[heibanbai@heibanbai01 ~]$ hdfs namenode -format

启动HDFS

NameNode所在节点启动,本文中为heibanbai01

1
[heibanbai@heibanbai01 ~]$ start-dfs.sh

启动Yarn

ResourceManager所在节点启动,本文中为heibanbai02

1
[heibanbai@heibanbai02 ~]$ start-yarn.sh

Hadoop服务验证

后台命令查看

可通过jps命令查看服务是否存在,可以看到和预期规划一致

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 服务器 heibanbai01
[heibanbai@heibanbai01 ~]$ jps
14774 NodeManager
7975 DataNode
15103 Jps
7791 NameNode

# 服务器 heibanbai02
[heibanbai@heibanbai02 ~]$ jps
13329 NodeManager
6641 DataNode
13925 Jps
13192 ResourceManager

# 服务器 heibanbai03
[heibanbai@heibanbai03 ~]$ jps
14417 Jps
14022 NodeManager
7037 SecondaryNameNode
6878 DataNode

登录Web查看

登录HDFS

HDFS登录地址:http://199.188.166.111:9870/

image-20240306163143837

登录Yarn

Yarn登录地址:http://199.188.166.112:8088/
image-20240306163120761

Hadoop2.x/3.x常用端口号对比

NameNode端口

2.x端口 3.x端口 name desc
50470 9871 dfs.namenode.https-address The namenode secure http server address and port.
50070 9870 dfs.namenode.http-address The address and the base port where the dfs namenode web ui will listen on.
8020 9820 fs.defaultFS 指定HDFS运行时nameNode地址

SecondaryNameNode端口

2.x端口 3.x端口 name desc
50091 9869 dfs.namenode.secondary.https-address The secondary namenode HTTPS server address and port
50090 9868 dfs.namenode.secondary.http-address The secondary namenode HTTPS server address and port

DataNode端口

2.x端口 3.x端口 name desc
50020 9867 dfs.datanode.ipc.address The datanode ipc server address and port.
50010 9866 dfs.datanode.address The datanode server address and port for data transfer.
50475 9865 dfs.datanode.https.address The datanode secure http server address and port
50075 9864 dfs.datanode.http.address The datanode http server address and por

Yarn端口

2.x端口 3.x端口 name desc
8088 8088 yarn.resourcemanager.webapp.address http服务端口

收官

至此,集群搭建完成!

注:关于配置的其他说明,请参考其他文章~


蚂蚁🐜再小也是肉🥩!


Hadoop3集群安装
http://heibanbai.com.cn/posts/2b0ccada/
作者
黑伴白
发布于
2024年3月6日
许可协议

“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信二维码

微信支付

支付宝二维码

支付宝支付