Hadoop3.1.4完全分布式集群搭建

目录

一、.修改主机名

在Centos7中直接使用root用户执行hostnamectl命令修改,重启(reboot)后永久生效。

hostnamectl set-hostname 新主机名

要求:三台主机的名字分别为:master slave1 slave2

二、关闭防火墙

1.查看CentOS 7防火墙状态

systemctl status firewalld.service

2.关闭运行的防火墙

systemctl stop firewalld.service

关闭后,可查看防火墙状态,当显示disavtive(dead)的字样,说明CentOS 7防火墙已经关闭。

但要注意的是,上面的命令只是临时关闭了CentOS 7防火墙,当重启操作系统后,防火墙服务还是会再次启动。如果想要永久关闭防火墙则还需要禁用防火墙服务。

3.禁用防火墙服务

systemctl disable firewalld.service

三、关闭NodeManager服务

NAT模式,修改网卡配置文件后,重启服务出现错误’Job for network.service failed because the control process exited with error code. See “systemctl status network.service” and “journalctl -xe” for details.’
解决方法

1.和 NetworkManager 服务有冲突,关闭 NetworkManger 服务

 systemctl stop NetworkManager

2.禁止开机启动NetworkManager 服务

systemctl disable NetworkManager

3.除此以外,其他相关命令如下:

查看# systemctl status NetworkManager

开启# systemctl start NetworkManager
可用# systemctl enable NetworkManager

四、配置静态ip

使用root用户修改当前启用的网卡配置文件,所在路径为 /etc/sysconfig/network-scriptsCentOS 6系统默认为ifcfg-eth0CentOS 7系统默认为ifcfg-ens32 ,使用vi编辑器编辑ifcfg-ens32文件,所用命令如下:

vi /etc/sysconfig/network-scripts/ifcfg-ens32 

三个节点上的这个文件都需要修改,修改的内容基本一致,如下是需要修改和添加的

#原值为dhcp,修改为static
BOOTPROT="satic"
# 添加IPADDR,对应的值要与原ip在同一网段
IPADDR=xxx.xxx.xxx.xxx
# 添加NETMASK,指定子网掩码,默认为255.255.255.0
NETMASK=255.255.255.0
# 添加GATEWAY,要与虚拟机网卡的设置一致,默认仅主机模式为1,NAT模式为2
GATEWAY=xxx.xxx.xxx.1/2
# 如果需要连入外网,则可以添加DNS1和DNS2配置,通常会将DNS1指定为网关地址
DNS1=网关地址
DNS2=8.8.8.8

注意:配置完成后保存退出,使用systemctl restart network命令重启网卡服务。(如果使用service network restart命令,则需要编辑/etc/resolv.conf文件,添加对应的如下内容:nameserver 8.8.8.8 )

五、克隆虚拟机

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/bb885d161f144af492f151b9312ac8a7.png
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
克隆完成后需要重新设置ip地址和mac地址

mac地址的设置如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动虚拟机,输入

uuidgen

在这里插入图片描述

vi /etc/sysconfig/network-scripts/ifcfg-ens32

在这里插入图片描述
然后重启网络

systemctl restart network

六、ip地址和主机名的映射

在完全分布式部署的Hadoop平台上,为了方便各节点的交互,也为了尽量减少配置的修改,通常在配置文件中都会使用主机名来访问节点,这就需要正确的建立主机名与ip的映射。我们目前已经有了三台配置好网络的机器。现在我们有这样三台机器(master为主节点):

主机名称IP地址
master192.168.233.131
slave1192.168.233.130
slave2192.168.233.128

1.需要使用root用户修改 /etc/hosts 文件,删除原来的内容,在结尾直接追加内容(每台机器):

192.168.233.131 master
192.168.233.130 slave1
192.168.233.128 slave2

2.配置完成后可以使用ping命令一一测试,看看是够能够正确解析出ip地址,得到目标机器的回应(可以每台机器都测试一下:使用Ctrl + C结束)。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.在slave1和slave2 上也修改hosts文件,追加内容和步骤1的内容相同,然后重复步骤2

七、免密登录设置

1.生成公钥密钥对

在3个节点上分别都执行如下命令:

ssh-keygen                  

连续按Enter键确认。

在root目录下输入:ll-a 可以查看当前目录下的所有文件(包含隐藏文件)。

然后进入.ssh隐藏目录,输入ls 命令,如图所示:

在这里插入图片描述

在图中能够看到包含两个文件分别是私钥和公钥,其中id_rsa为生成的私钥,id_rsa.pub为生成的公钥。

2.将子节点的公钥拷贝到主节点并添加进authorized_keys

在master节点上执行如下两行命令:

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

执行时,到了红色框区域,需要输入yes

在这里插入图片描述

3.测试是否成功

为了测试免密设置是否成功,可执行如下命令:

ssh master
ssh slave1
ssh slave2

结果如图所示:

在这里插入图片描述
在这里插入图片描述

八、配置时间同步服务

  • 如果服务器在公网环境(能连接外网),可以不采用集群时间同步,因为服务器会定期和公网时间进行校准;

  • 如果服务器在内网环境,必须要配置集群时间同步,否则时间久了,会产生时间偏差,导致集群执行任务时间不同步。

  • NTP(Network Time Protocol,网络时间协议) 是使计算机时间同步化的一种协议,可以使计算机对其服务器或时钟源进行同步化,提供高精度的时间校正。

  • Hadoop集群对时间要求很高,主节点与各从节点的时间必须同步,因此需要配置时间同步服务。

1.下载安装ntp服务

2.设置master节点为ntp服务主节点

3.从节点配置ntp服务

4.启动ntp服务

九、配置jdk环境

为了规范后续Hadoop集群相关软件和数据的安装配置,这里在虚拟机的根目录下建一些文件夹作为约定,具体如下:

文件夹名作用
/opt/module存放软件
/opt/software存放安装包压缩包

具体需要执行下面3条命令:

mkdir -p  /opt/module
mkdir -p  /opt/software

进入/opt目录下,执行ls命令,如图所示即为成功。
在这里插入图片描述

1.下载jdk安装包和hadoop3.1.4

下载JDK地址 : https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

2.将本地的jdk安装包上传到/opt/software系统中

3.进入/opt/software目录下,解压jdk安装包到/opt/module

执行如下命令:

cd /opt/software
tar -zxvf jdk-8u161-linux-x64.tar.gz -C /opt/module
tar hadoop-3.1.4.tar.gz -C /opt/module/

解压后在/opt/module目录下使用ll命令查看:!](https://img-blog.csdnimg.cn/direct/6327133fd6d3457a896f36b2e32b3873.png)

在这里插入图片描述

4.配置环境变量

使用vi编辑器编辑etc文件夹下的profile文件,键盘按下大写字母G,即可将光标移动到文章的末尾。

 vi /etc/profile.d/my_env.sh

将如下内容添加到末尾

#jdk环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_161
export PATH=$JAVA_HOME/bin:$PATH
#hadoop环境变量
export HADOOP_HOME=/opt/module/hadoop-3.1.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

刷新环境变量

 source /etc/profile

使用命令测试jdk环境变量的配置

java -version

在这里插入图片描述

使用命令测试hadoop环境变量的配置

hadoop version

在这里插入图片描述

十、Hadoop集群配置

hadoop完全分布式集群各节点进程角色分配如下表所示:

masterslave1s;ave2
namenoderesourcemanagersecondarynamenode
datanodedatanodedatanode
nodemanagernodemanagernodemanager

1.修改core-site.xml文件

<!-- 指定 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value>
</property>
<!-- 指定 hadoop 数据的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.4/data</value>
</property>
<!-- 配置 HDFS 网页登录使用的静态用户为 atguigu -->
<property>
<name>hadoop.http.staticuser.user</name>
<value>root</value>
</property>

这里的data文件夹需要我们自己创建,进入到对应的目录

cd /opt/module/hadoop-3.1.4/
mkdir data

2.修改hdfs-site.xml文件

<!-- nn web 端访问地址-->
<property>
<name>dfs.namenode.http-address</name>
<value>master:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave2:9868</value>
</property>
<!--HDFS 中是否启用权限检查-->
<property>
    <name>dfs.permissions</name>    
    <value>false</value>
</property>

3.修改mapred-site.xml文件

<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<!-- 历史服务器 web 端地址 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>

4.修改yarn-site.xml文件

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>slave1</value>
</property>
<!--是否将对容器实施虚拟内存限制-->
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>

在任意目录下输入:hadoop classpath,复制返回的信息,并添加到如下value标签中

<property>
 <name>yarn.application.classpath</name>
 <value>输入刚才返回的Hadoop classpath路径</value>
 </property>

5 修改workers文件

master
slave1
slave2

6.修改环境变量相关设置

vi /etc/profile.d/my_env.sh

添加hadoop为root用户,否则启动的HDFS的时候可能会报错.
添加如下内容:

export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_JOURNALNODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

十一、格式化文件系统

初次启动HDFS集群时,必须对主节点进行格式化处理

格式化文件系统指令如下:

hdfs namenode -format

十二、启动和关闭集群

1.hdfs的启动和关闭:(在主节点master上执行)

启动:start-dfs.sh
关闭:stop-dfs.sh

2.启动yarn:(在主节点slave1上执行)

启动:start-yarn.sh
关闭:stop-yarn.sh

验证平台搭建是否成功

需要在三台节点上分别敲入jps命令,如下图所示,说明搭建成功
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十三、通过UI界面查看Hadoop集群运行状态

windows系统下通过浏览器输入master节点的ip地址+端口号可以进入HDFS的UI监控界面

1.windows操作系统下,配置hosts映射

进入C:\Windows\System32\drivers\etc,可以删掉hosts文件,然后在桌面新建一个文本文档,将映射关系写入后保存为文件名为hosts,然后复制粘贴到etc目录下。
192.168.15.130 master
192.168.15.131 slave1
192.168.15.132 slave2

2.在浏览器中输入 master:9870

在这里插入图片描述

十四、配置时间同步服务

NTP(Network Time Protocol)网络时间协议,使计算机时间同步的一种协议

1.下载安装ntp服务

yum install -y ntp

2.设置master节点为ntp服务的主节点

vi /etc/ntp.conf
注释掉server开头的行
添加如下内容:
restrict 192.168.15.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 10

3.分别在slave1和slave2节点中配置ntp服务

(1)通过scp -r命令将ntp.conf传给slave1和slave2
(2)在ntp.conf文件中添加如下内容:
server master

4.关闭和禁用防火墙服务

关闭防火墙:systemctl stop firewalld.service
查看防火墙状态: systemctl status firewalld.service
移除防火墙: systemctl disable firewalld.service

5.启动ntp服务

(1)在master节点上使用
systemctl start ntpd 启动ntp服务
systemctl enable ntpd 永久开启ntp服务

6.使用命令ntpdate master去同步master节点的时间

7.在slave1和slave2节点上启动ntp服务

systemctl start ntpd 启动ntp服务
systemctl enable ntpd永久开启ntp服务

十五、配置本地yum源及安装常用软件

1.yum常用的命令

install 安装RPM软件包
remove 删除RPM软件包(卸载)

2.参数

-y 对所有的提问都回答yes

3.配置本地yum源

(1)cd /etc/yum.repos.d/ 进入对应的配置目录
(2)查看目录的下的文件:ll
(3)将除了 CentOS-Media.repo这个文件以外的其他文件都加.bak后缀
(4)vi CentOS-Media.repo
将baseurl的值修改为file:///media/
将gpgcheck的值修改为0
将enabled的值修改为1
(4)使用 mount /dev/sr0 /media/ 命令挂在本地yum源
(5)yum clean all 更新yum源

注意事项:
二次格式化hdfs,需要将data文件夹下的内容清空(直接删除data文件夹),还要删除logs文件夹下的内容(直接删除logs文件夹)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会编程的李较瘦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值