Hadoop集群完全分布式安装
Hadoop集群完全分布式安装
环境说明
操作系统:CentOS 8 x86_64
Hadoop版本:2.10.1
节点数:3
服务器规划:
node1 | node2 | node3 |
---|---|---|
199.188.166.111 | 199.188.166.112 | 199.188.166.113 |
NameNode(NN) | Secondary NameNode | |
ResourceManager(RM) | ||
DataNode(DN) | DataNode(DN) | DataNode(DN) |
NodeManager(NM) | NodeManager(NM) | NodeManager(NM) |
虚拟机安装
使用VMware安装,傻瓜式的,这里就不再赘述了
注:本次Hadoop集群搭建是使用VMware虚拟机进行的,首先创建一个虚拟机,因为只是用来搭建hadoop环境,创建虚机时就用hadoop用户,实际也是用hadoop用户来进行搭建(不建议使用root用户,虽然方便,但和不贴合实际项目)。
基础环境准备
对安装好的虚拟机进行基础环境的配置,主要是JDK的安装和防火墙的关闭
JDK安装配置
JDK版本:1.8.0_181
安装路径:/app/java/jdk1.8.0_181 (从官网下载tar.gz包直接解压即可为方便管理,所有app均安装在了/app目录下)
配置环境变量:为了方便,直接配置了全局,对所有用户生效
1 |
|
配置完成后,查看是否已经生效,如图:
关闭防火墙
为防止本机无法访问集群资源,需要关闭防火墙,命令为:systemctl stop firewalld.service
关闭后可查看防火墙状态是否已经正确关闭
虚拟机克隆
在创建好的虚拟机右键,管理—>克隆,根据提示,再创建两台虚拟机,根据自己的习惯重新命下名
虚拟机配置
修改主机名
为更贴近实际,我们修改下主机名,命令如下,将三台机器分别进行命名:
1 |
|
配置地址映射
为方便后续管理及服务器之间的通信,需要进行IP地址映射配置,三台服务器同样操作
1 |
|
集群免密登录
因为三台服务器组成了一个集群,如果不配置免密访问,那么在集群启动时会N多次提示要输入密码,操作如下(三台服务器均如此操作):
生成密钥:
1 |
|
复制密钥到其他服务器:
1 |
|
Hadoop安装与配置
先在node1节点进行安装配置,然后直接分发到其他服务器即可
Hadoop安装
Hadoop的安装其实就是解压并修改配置文件的过程
- 解压安装包:tar -zxvf hadoop-2.10.1.tar.gz
- 将解压后的hadoop目录下的bin加入到用户PATH环境变量中,主要是为了后续操作方便:export PATH=/app/hadoop-2.10.1/bin:$PATH
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 配置文件 |
Hadoop需要修改的配置文件均在/app/hadoop-2.10.1/etc/hadoop目录下,根据集群规划进行相应修改操作,各文件的配置项有很多,此示例仅配置了常用的几项
修改hadoop_env.sh:配置Hadoop运行所需的环境变量,此集群主要是指定JAVA_HOME
1
2# The java implementation to use.
export JAVA_HOME=/app/java/jdk1.8.0_181修改core-site.xml:Hadoop核心全局配置文件,可在其他配置文件中引用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<configuration>
<!-- 指定NameNode地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 指定hadoop数据的临时存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>file:/app/hadoop-2.10.1/tmp</value>
</property>
</configuration>修改hdfs-site.xml:HDFS配置文件,继承core-site.xml配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/app/hadoop-2.10.1/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/app/hadoop-2.10.1/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.http.address</name>
<value>node1:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50071</value>
</property>
</configuration>修改mapred-site.xml:MapReduce配置文件,继承core-site.xml配置文件
1
2
3
4
5
6<configuration>
<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<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>node1</value>
</property>
</configuration>修改slaves,在slaves文件里所列出的所有结点上启动一个tasktracker
hadoop3.0以后slaves更名为workers
1 |
|
- 修改masters,masters设置的是运行secondary namenode的结点,并且可以在masters里面设置多个结点来运行secondary namenode
1
node2
集群文件分发
通过命令,将配置好的hadoop分发到其他服务器
1 |
|
服务启动与验证
Hadoop服务启动
登录主节点node1,按照如下命令启动:
1 |
|
Hadoop服务验证
可通过jps命令查看服务是否存在
主节点服务:
从节点服务:
登录web查看是否正常:
http://199.188.166.111:50070/
收官
至此,集群搭建完成!
注:关于配置的其他说明,请参考其他文章~
蚂蚁🐜再小也是肉🥩!
“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”
微信支付
支付宝支付