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

目录

一、修改主机名

二、关闭防火墙

[1.查看CentOS 7防火墙状态](#1.查看CentOS 7防火墙状态)

2.关闭运行的防火墙

3.禁用防火墙服务

三、关闭NetworkManger服务

解决方法:

四、配置静态ip

五、克隆虚拟机

mac地址的设置如下:

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

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

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

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

七、免密登录设置

1.生成公钥密钥对

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

3.测试是否成功

​编辑八、配置时间同步服务

1.下载安装ntp服务

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

3.从节点配置ntp服务

4.启动ntp服务

九、配置jdk环境

​编辑1.下载jdk安装包和hadoop3.1.4

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

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

十、Hadoop集群配置

1.修改core-site.xml文件

2.修改hdfs-site.xml文件

3.修改mapred-site.xml文件

4.修改yarn-site.xml文件

[5 修改workers文件](#5 修改workers文件)

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

十一、格式化文件系统

十二、启动和关闭集群

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

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

验证平台搭建是否成功

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

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

[2.在浏览器中输入 master:9870](#2.在浏览器中输入 master:9870)

十四、配置时间同步服务

1.下载安装ntp服务

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

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

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

5.启动ntp服务

[6.使用命令ntpdate master去同步master节点的时间](#6.使用命令ntpdate master去同步master节点的时间)

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

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

1.yum常用的命令

2.参数

3.配置本地yum源

注意事项:


一、修改主机名

在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

三、关闭NetworkManger服务

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-scripts ,CentOS 6 系统默认为ifcfg-eth0,CentOS 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 )

五、克隆虚拟机

克隆完成后需要重新设置ip地址和mac地址

mac地址的设置如下:

启动虚拟机,输入

复制代码
uuidgen
复制代码
vi /etc/sysconfig/network-scripts/ifcfg-ens32

然后重启网络

复制代码
systemctl restart network

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

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

主机名称 IP地址
master 192.168.233.131
slave1 192.168.233.130
slave2 192.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 -zxvf 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完全分布式集群各节点进程角色分配如下表所示:

master slave1 s;ave2
namenode resourcemanager secondarynamenode
datanode datanode datanode
nodemanager nodemanager nodemanager

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文件夹)


版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.csdn.net/Allwordhuier/article/details/137229515

相关推荐
Acrel12348 分钟前
安科瑞防逆流方案在内蒙古中高绿能能源7MW分布式光伏项目的应用
分布式·能源
塞尔维亚大汉23 分钟前
OpenHarmony之分布式软总线json.payload.c(三)
分布式·嵌入式·harmonyos
镜舟科技24 分钟前
迈向云原生:理想汽车 OLAP 引擎变革之路
大数据·数据库·云原生
山山而川粤29 分钟前
SSM考研信息查询系统
java·大数据·运维·服务器·开发语言·数据库·考研
rkshangan2 小时前
软考高级:探寻易考科目与高效备考之路
大数据·网络
FLGB2 小时前
Kafka延迟队列实现分级重试
分布式·kafka
莹雨潇潇4 小时前
大数据时代的隐私与自由(演讲稿)
大数据
dogplays4 小时前
Doris Streamloader安装教程
大数据
哲讯智能科技11 小时前
智慧能源新篇章:SAP如何赋能光伏行业数字化转型
大数据·人工智能
java1234_小锋12 小时前
Kafka中的消息是如何存储的?
分布式·kafka