Hadoop2.x学习笔记-1(Hadoop架构+NTP集群时间同步配置)

news/2024/5/20 2:31:54 标签: hadoop, hdfs, yum, mapreduce, yarn

一、前言

        本人认为,学习一门技术首先需要系统的了解技术整个框架,才能让自己对这门技术的理解更进一步。同时,先有理论,后有技术的出现。这代表着,我们需要在学习好理论基础的前提上完成实践的操作,这样才能算上入门。而本人的学习笔记,主要先结合网络资源对理论进行深入理解,后在此基础上实践。

一、前言

二、Hadoop框架

2.1 Google的三驾马车

 2.2 Hadoop的组成

2.2.1 HDFS架构

2.2.3 MapReduce架构

2.3 大数据技术生态体系

三、NTP集群时间同步配置

3.1 Yum配置

3.2 NTP配置


二、Hadoop框架

2.1 Google的三驾马车

        了解Hadoop组成框架之前,我们需要认识Google公司的三架马车。Google公司最出名的,不只是开发了一个强悍的搜索引擎,还在于Google公司创造了三种革命性技术,即Google三架马车:GFS、MapReduce、BigTable。并且,Google公司在04到06年还发表了关于这三种技术的重要论文,极大普及了大众对大量数据进行分布式处理的知识盲区,进而促进了Hadoop出现。

 2.2 Hadoop的组成

        对于Hadoop2.x而言,主要的框架以及功能为:

MapReduce负责计算
HDFS负责数据存储
Yarn负责资源调度
Common辅助工具

        无论是2.x或者是3.x版本中,Hadoop的框架中始终有YarnMapReduceHDFS的存在。由此可见,它们对于Hadoop的意义。因此,我们需要深入了解这三种 “ 功能 ” 。

2.2.1 HDFS架构

        HDFS包含了NameNodeDataNodeSecondaryNameNode,分别对应着Hadoop集群启动时各个节点的部分启动项。同时,在通过JPS语句查询Hadoop启动项时,我们可以看到Hadoop集群只启动了1个NameNode节点和N个DataNode,以及1个ScondaryNameNode,其中N代表的是集群节点数。同时通过各节点的启动项,我们也能反向推出HDFS是属于主/从结构的模型。

         HDFS各个Node的功能,可以理解为:

NameNode存储文件的元数据
DataNode存储文件块数据,以及数据的校验和
SecondaryNameNode监控HDFS状态的辅助后台程序

        其中,NameNode与DataNode都储存着文件的数据。不过,NameNode是存储的是描述DataNode的数据的数据,而DataNode存储的是以块存储的数据,即我们需要的数据。

        Tips:在HDFS中会将超过默认值128MB的文件进行分块储存。因此,当我们需要人为的处理块储存数据时,只需要将所有块中的文件进行组合拼接即可。

         SecondaryNameNode,顾名思义就是作为NameNode的备份,但是它不同于其他备份逻辑,SecondaryNameNode的备份逻辑是冷备份

        冷备份是指,NameNode在每一次ShutDown后通过操作系统命令对数据进行备份,类似于我们在Vmare虚拟机上面对操作系统进行快照的备份。因此,我们可以将SecondaryNameNode这种冷备份理解为每隔一段时间获得NameNode的快照

2.2.2 YARN架构

        YARN包含了ResourceManagerNodeManagerApplicationMasterContainer。我们在启动Hadoop集群中,会发现在JPS命令结果中有1个ResourceManager和N个NodeManage。在NodeManage中存在着ApplicationMaster负责分配工作,并与ResourceManager协商调用资源Container。

         ResourceManager的功能理解:

ResourceManager
处理客户端请求
监控NodeManager
启动或监控ApplicationMaster
资源的分配与调度

        NodeManager的功能理解:

NodeManager
管理单个节点上的资源
处理ResourceManager的命令
处理ApplicationMaster的命令

        ApplicationMaster的功能理解:

ApplicationMaster
Container管理
为应用程序(实例)申请空间,分配工作
工作的监控与容错

        Container的功能理解:作为YARN中的抽象资源,封装了节点上多维度数据。

2.2.3 MapReduce架构

        MapReduce在各种现代高级编程语言当中都有其身影,而在这所有编程语言当中它都是始终分为MapReduce。在Hadoop集群中,MapReduce并不存在于JPS查询后的启动项中,它由YARN架构调用。

        通过上图,其实我们不难理解Map阶段就是对job中的数据进行并行化处理,再通过Reduce阶段对结果进行汇总

        并行化处理:MapReduce根据Job对数据矢量进行切片,多个Map进行相间操作。

        理解完MapReduce的基本逻辑,我们接下来需要回答一个问题,在上文并行化处理中提及的Job是什么?

        本人认为现阶段基本上计算机的很多技术都是可以通过英文翻译得到它的大致,那么Job在中文中的意思为工作,所以我们就可以大致认为Job在整个Hadoop集群中就是一个工作的意思。因此,根据我们对工作的理解,就可以认为Client(客户端)调用job.waitForCompletion方法,跟Hadoop集群去提交一个作业MapReduce能够在Hadoop集群中进行作业,所以Client提交的是一个MapReduce作业。Client提交完作业后,需要跟ResourceManager申请一个ID去分清属于自己提交的作业,ResourceManager会返回作业ID、Job资源提交路径,并将Job添加到容器调度器中

2.3 大数据技术生态体系

        了解完基本的Hadoop架构后,我们再了解一下大数据技术生态体系。

(图源来自尚硅谷) 

         其中,Hive、Mahout、Spark Mlib、Spark R、Spark Sql都属于非实时数据处理;而Spark Streaming和Storm属于实时数据处理。

        每篇一个小知识:现如今比较火的Flink对标的是Spark

        非实时数据处理,并不是指本意上的非实时,而是批处理。而实时数据处理,指的是流处理

        文件日志,我们可以理解为User的每一步操作形成日志。

        无论我们配置Kafka,或者是Hadoop,我们都会发现网络上大部分教程都需要我们配置Zookeeper。这是因为Zookeeper在集群配置信息上,为我们提供了简便的操作。类似于之前的外卖需要我们记住每家商家的电话号码,而现在我们只需要打开美团、饿了么等App即可购买一样,它为我们配置集群提供一致性服务。

三、NTP集群时间同步配置

        了解上文中的Hadoop架构后,我们可以清晰的认识到一个贯穿于Hadoop集群的东西,时间。可以说当Client开始提交一个作业时,Hadoop就开始记录下Client请求过程的时间戳。因此,对于Hadoop集群来说,需要有一个统一时间来避免时间差距过大导致的Hadoop集群报错。

3.1 Yum配置

        在所有节点(master、slave1、slave2)上输入

yum clean all
yum makecache
yum -y install ntp

        如果没有报错,恭喜你在NTP配置中已经完成了一半了。如果报错了,则需要将Yum重新卸载后重装。

3.2 NTP配置

        在所有节点下,对server.*进行注释,用#注释

        在master节点下输入,并添加master主机的network地址作为每一次时间同步的根据。

vim /etc/ntp.conf            #编辑


restrict 127.0.0.1                       #添加
restrict ::1                             #添加

restrict 192.168.x.0 mask 255.255.255.0   #添加Master主机的NETWORK地址
server 127.127.1.0                 #添加
fudge 127.127.1.0 stratum 10       #添加

        在slave1和slave2节点下,添加

vim /etc/ntp.conf     #编辑



restrict 127.0.0.1
restrict ::1

server 192.168.x.y        #192.168.x.y是master主机IP地址

        对所有节点,进行重启ntp服务

systemctl restart ntpd

        在某个节点下,查看NTP服务状态

ntpq -p

 

 -------------------------------------------------------------结束------------------------------------------------------------
Hadoop2.7.7集群配置icon-default.png?t=L892https://blog.csdn.net/Libre813/article/details/120296824


http://www.niftyadmin.cn/n/1800027.html

相关文章

ubuntu 监控网卡流量

Ubuntu Server下用ethstatus可以监控实时的网卡带宽占用。用 sudo apt-get install ethstatus 命令安装好软件之后,用 ethstatus -i eth0 来查看eth0网卡。显示如下:这个软件能显示当前网卡的 RX 和 TX 速率,单位是Byte。另外要进行总流量的统…

机器学习-笔记-持续更新

简要 该文是为了梳理机器学习的相关知识,让自己对机器学习有所了解,因此在学习阶段会不断更新每一章节的内容。同时有错误的地方,请在留言处指出,我会不断更新文章并修改。 参考书籍:《机器学习》周志华版&#xff0c…

HTML5 Boilerplate 标准的HMTL5网站模板

网页设计通常需要预先考虑很多因素,如何提高效率其实是一个比较烦人的问题。一个可行方式就是使用预先准备好的框架和模板。HTML5框架、模板是一个很好的解决方案,可以大大简化很多工作量。目前,基于HTML5的模版框架有很多,这里介…

详细教程-阿里网盘部署本机

概述 阿里网盘提供了免费的100G不限流网盘资源本人有备份文件的习惯和分享文件的需求DockerHub提供了对应的资源,可以实现挂载阿里网盘 应用需求 挂载软件Mountain Duck或其他Docker管理器Docker Desktop(可有可无)浏览器Edge或其他 具体操…

禁止复制页面内容

假如你自己原创的文章不想让别人转载怎么办?可以在body标签里加上下面代码οncοpy"alert(禁止转载);return false;"同理,onpaste代表禁止粘帖转载于:https://blog.51cto.com/2172768/767788

学习教程-获取51job数据

学习教程-获取51job数据 需要的环境为: 虚拟环境:Mac为conda(本文所使用的),Windows为anacondaPython环境:3.9以上编程环境:jupyter notebook 或者是 Pycharm浏览器驱动器:根据个人…

领悟JavaScript

2019独角兽企业重金招聘Python工程师标准>>> Javascript是一门极易上手却难于精通的语言,有人说javascript是一门基于对象的语言,并不是一门面向对象的语言,但是这门语言的发明者明确告诉了我们,这是一门面向对象的语言…

(收藏)Wp7 软件常用网站

http://answers.microsoft.com/en-us/winphone/forum/wp7-wptips/windows-phone-7-call-block-list/8a58b61a-af7d-4be8-a988-483bcf99d7df1. D.cn当乐wp7门户http://wp.d.cn/2.Windows Phone 微风市场http://ntexe.com/10571.html3. 历趣http://www.liqucn.com/rj/4.http://wp…