Hadoop 框架介绍以及简介

Hadoop介绍

Hadoop简介

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。能够让用户在不了解分布式底层细节的情况下,开发分布式程序。
其核心组件包括:
–分布式存储系统HDFS (Hadoop Distributed File System )POSIX
• 分布式存储系统
• 提供了 高可靠性、高扩展性和高吞吐率的数据存储服务
–分布式计算框架MapReduce
• 分布式计算框架(计算向数据移动)
•具有 易于编程、高容错性和高扩展性等优点。
–分布式资源管理框架YARN(Yet Another Resource Management)
•负责集群资源的管理和调度
•版本:1.x,2.x,3.x
Hadoop作者Doug cutting,就职Yahoo期间开发了Hadoop项目(之前已经开始实施),目前在Cloudera 公司从事架构工作,顺便一提Hadoop的名字来源于其儿子的玩具大象。
(↓嗯对,就是它)
在这里插入图片描述

Hadoop发展简史

·2003-2004年,Google公开了部分GFS和Mapreduce思想的细节,以此为基础Doug Cutting等人用了2年业余时间实现了DFS和Mapreduce机制,一个微缩版:Nutch
·Hadoop 于 2005 年秋天作为 Lucene的子项目 Nutch的一部分正式引入Apache基金会。
·2006 年 3 月份,Map-Reduce 和 Nutch Distributed File System (NDFS) 分别被纳入称为 Hadoop 的项目

Hadoop特性优点

1.高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖 。
2.高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中 。
3.高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快 。
4.高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配 。
5.低成本。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低 。

Hadoop框架构成

这里主要介绍的是Hadoop框架中的三个重要组成部分:HDFS、Map/Reduce和Yarn

HDFS

HDFS(Hadoop Distributed File System),Hadoop分布式文件系统
架构模型:
一、 NameNode(NN)
1、NameNode主要功能:
(1) 接受客户端的读写服务
(2) 收集DataNode汇报的Block列表信息
2、基于内存存储 :不会和磁盘发生交换(双向)
(1) NameNode只存在内存中
(2) 持久化(单向)
3、NameNode保存metadata信息包括
(1) 文件owership和permissions
(2) 文件大小,时间
(3)(Block列表:Block偏移量),位置信息(持久化不存)
(4) Block每副本位置(由DataNode上报)
二、SecondaryNameNode(SNN)
1、SNN的主要工作是帮助NN合并edits log,减少NN启动时间。虽然它可以作为NN的备份但本质上并不是。
2、SNN执行合并时机
(2)根据配置文件设置的时间间隔fs.checkpoint.period 默认3600秒
(1)根据配置文件设置edits log大小 fs.checkpoint.size 规定edits文件的最大值默认是64MB
三、DataNode(DN)
(1)本地磁盘目录存储数据(Block),文件形式
(2)同时存储Block的元数据信息文件
(3)启动DN时会向NN汇报block信息
(4)通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN
在这里插入图片描述
优点:高容错性、适合批处理、适合大数据处理、可构建在廉价机器上
缺点:低延迟数据访问、小文件存取、并发写入、文件随机修改

Map/Reduce

Map/Reduce分布式计算系统
(1) MapReduce是一个基于集群的高性能并行计算平台(Cluster Infrastructure)。它允许用市场上普通的商用服务器构成一个包含数十、数百至数千个节点的分布和并行计算集群。
(2) MapReduce是一个并行计算与运行软件框架(Software Framework)。它提供了一个庞大但设计精良的并行计算软件框架,能自动完成计算任务的并行化处理,自动划分计算数据和计算任务,在集群节点上自动分配和执行任务以及收集计算结果,将数据分布存储、数据通信、容错处理等并行计算涉及到的很多系统底层的复杂细节交由系统负责处理,大大减少了软件开发人员的负担。
(3) MapReduce是一个并行程序设计模型与方法(Programming Model & Methodology)。它借助于函数式程序设计语言Lisp的设计思想,提供了一种简便的并行程序设计方法,用Map和Reduce两个函数编程实现基本的并行计算任务,提供了抽象的操作和并行编程接口,以简单方便地完成大规模数据的编程和计算处理 。

YARN

yarn是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
(1) yarn由一个ResourceManager和多个NodeManager组成。
(2)ResourceManager负责资源的调度和控制,其主要的职责是接收应用程序的资源请求并控制系统的可用资源并动态地分配。
(3)NodeManager的职责是对集群中各个节点中的资源进行管理并和ResourceManager保持通讯以报告节点的在各个时刻的状态信息。
(4)ResourceManager与NodeManager共同管理整个集群资源,包括内存、CPU等。

猜你喜欢

转载自blog.csdn.net/yizayoyi/article/details/106844532