打怪升级之小白的大数据之旅(四十三)
Hadoop运行模式(集群搭建)
上次回顾上一章对单个Hadoop服务器环境搭建进行分享,本章对Hadoop集群的搭建以及运行进行分享,集群是Hadoop的核心,所以本章节很重要!很重要!很重要!OK,让我们开始
Hadoop的运行模式&集群的概述Hadoop运行模式概述
Hadoop的运行模式分为本地模式、伪分布式模式和完全分布式模式三种,伪分布式没什么意思,我们也几乎用不到,我就不介绍了,我们的核心是完全分布模式,它就是我们Hadoop的集群
集群的概述
集群是什么?我们可以将它理解为多台服务器,例如我们在学校中的一个局域网,一个网段下,有很多的电脑,每一台电脑就是一台服务器,集群就是由多台服务器组成。
集群有以下几个特点(我自己的理解哈):
服务器之间可以相互连接并且无需登录
服务器间的数据可以共享,当其中一台服务器奔溃并不会使程序中断或数据丢失
可以使用多个服务器完成同一件任务,提高该任务的工作效率
Hadoop的本地模式前面我们搭建好Hadoop后,仅仅只是使用了 version进行了测试,下面我们使用官方的案例来进行本地模式进行Hadoop的测试,看看Hadoop是否正常运行
官网说明文档地址:第一步: 使用官方的wordcount,创建一个wcinput文件夹
# 进入hadoop的根目录下 cd /opt/module/hadoop-3.1.3 # 创建官方案例中需要的文件夹 mkdir wcinput # 在wcinpput文件夹下创建一个wc.txt文件 vim wc.txt # 编写测试数据 H 博 a 主 d 大 o 大 o 真 p 帅 我 ! 来 了 !第二步:回到Hadoop的根目录下,执行官方的程序,这个案例是什么意思我们先不管它,直接复制,后面会讲到
# 回到Hadoop根目录下 cd /opt/module/hadoop-3.1.3 在根目录下创建input文件夹 mkdir input # 使用官方的案例 hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount wcinput wcoutput # 运行结果 ! 1 H 1 a 1 d 1 o 2 p 1 主 1 了 1 博 1 大 2 帅 1 我 1 来 1 真 1 ! 1我来说明一下,这个案例是用来统计一个文本文件中的字符个数的,input存储的是官方案例中需要读取的文件,输出文件夹output,我们在Hadoop的根目录下会看到_SUCCESS和part-r-00000两个文件,part-r-0000这个文件就是运行的结果,sucess代表的就是我们程序运行成功
如果运行结果是上面这个,那么恭喜你,你的hadoop环境配置没有问题,不过要注意一下,当我们再次运行时,需要删除output文件夹或者重新写一个输出的文件夹名称,否则会报错
Hadoop的完全分布模式当我们本地模式没有问题了,接下来就是重点中的重点了—>Hadoop的完全分布模式
还记得上一章介绍的完全分布模式的步骤么?我再来提一下
虚拟机准备
集群分发脚本
SSH无密登录
集群配置
群起集群配置
集群的启动与停止
配置历史服务器
配置集群的时间同步
下面我就根据这几个功能来为大家介绍Hadoop的完全分布模式
虚拟机准备
虚拟机准备就是我们上一章搭建的那三台服务器,其中hadoop102服务器是安装了jdk和hadoop并且设置了环境变量的,再次提醒一下:hadoop103和hadoop104一定记得改hostname和hosts还有静态的ip地址哈
首先先在103和104服务器上安装一下必须安装的那两个插件
yum install -y epel-release yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git好了,虚拟机的基础任务全部就完成了,接下来我来介绍两个小知识点,介绍完就就要进行集群的配置了,它们分别是集群分发脚本和SSH无密登录
集群分发脚本分发脚本的作用是在一台服务器上实现向别的服务器发送文件,我以hadoop102服务器举例:
我可以在hadoop102服务器上发送文件到103服务器或104服务器上
我可以从hadoop103服务器上拉取服务器中的文件到我的hadoop102服务器中
我也可以在hadoop服务器上将hadoop103服务器中的文件发送到hadoop104中
分发脚本有两种实现方式:scp和xsync,我们主要使用xsync,但为了引出xsync我先介绍scp
scpscp全称secure copy 它是安全拷贝
scp可以实现服务器与服务器之间的数据拷贝
注意,我们进行服务器间的拷贝时,运行后需要输入yes,然后输入密码
基本语法scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname 命令 递归 要拷贝的文件路径/名称 目的用户@主机:目的路径/名称
示例:# 在hadoop102上,将hadoop102中/opt/module目录下的软件拷贝到hadoop103上 scp -r /opt/module hadoopuser@hadoop103:/opt/module