Apache Hadoop的重要组成

Hadoop的广义和狭义之分

狭义的Hadoop:指的是一个框架,Hadoop是由三部分组成:HDFS:分布式文件系统–》存储;
MapReduce:分布式离线计算框架–》计算;Yarn:资源调度框架
广义的Hadoop:广义Hadoop是不仅仅包含Hadoop框架,除了Hadoop框架之外还有一些辅助框
架。Flume:日志数据采集,Sqoop:关系型数据库数据的采集;
Hive:深度依赖Hadoop框架完成计算(sql),Hbase:大数据领域的数据库(mysql)
Sqoop:数据的导出
广义Hadoop指的是一个生态圈
大数据的特点
大数据的特点可以用 IBM 曾经提出的 “5V” 来描述,如下
在这里插入图片描述

  • 大量
    采集、存储和计算的数据量都非常大。
    计算机存储单位一般用B,KB,MB,GB,TB,PB,EB,ZB,YB,BB、NB、DB来表示,
    它们之间的关系是
    1GB = 1024 MB
    1TB = 1024 GB
    1PB = 1024 TB
    1EB = 1024 PB
    1ZB = 1024 EB
    1YB = 1024 ZB
    1BB = 1024 YB
    1NB = 1024 BB
    1DB = 1024 NB
    以PB为例,PB级数据量有多大?是怎样的一个概念?
    假如手机播放MP3的速度为平均每分钟1MB,而1首歌曲的平均时长为4分钟,那么1PB存量的歌曲可以连续播放2000年。
    1PB 也相当于50%的全美学术研究图书馆藏书咨询内容
    (1)1986年,全球只有0.02EB也就是约21000TB的数据量
    (2)2007年,全球就是280EB也就是约300000000TB的数据量,翻了14000倍
    (3)近些年,由于移动互联网及物联网的出现,各种终端设备的接入,各种业务形式的普及,平均每40个月,全球的数据量就会翻倍!2012年,每天会产生2.5EB的数据量
    (4)基于IDC的报告预测,从2013年到2020年,全球数据量会从4.4ZB猛增到44ZB!而到了2025年,全球会有163ZB的数据量!
    全球的数据量已经大到爆了!而传统的关系型数据库根本处理不了如此海量的数据
  • 高速
    在大数据时代,数据的创建、存储、分析都要求被高速处理,比如电商网站的个性化推荐尽可能要求实时完成推荐,这也是大数据区别于传统数据挖掘的显著特征。
  • 多样
    数据形式和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音
    频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求
  • 真实
    确保数据的真实性,才能保证数据分析的正确性
  • 低价值
    数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。互联网发展催生了大量数据,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题,也是一个有难度的课题

Hadoop=HDFS(分布式文件系统)+MapReduce(分布式计算框架)+Yarn(资源协调框架)+Common模块

  1. Hadoop HDFS:(Hadoop Distribute File System )一个高可靠、高吞吐量的分布式文件系统
    比如:100T数据存储,
    “分而治之”
    分:拆分–》数据切割,100T数据拆分为10G一个数据块由一个电脑节点存储这个数据块。
    数据切割、制作副本、分散储存
    在这里插入图片描述
    图中涉及到几个角色
  • NameNode(nn):存储文件的元数据,比如文件名、文件目录结构、文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。

  • SecondaryNameNode(2nn):辅助NameNode更好的工作,用来监控HDFS状态的辅助后台程序,每隔一段时间获取HDFS元数据快照。

  • DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验
    注意:NN,2NN,DN这些既是角色名称,进程名称,代指电脑节点名称!

2. Hadoop MapReduce:一个分布式的离线并行计算框架

拆解任务、分散处理、汇整结果
MapReduce计算 = Map阶段 + Reduce阶段
Map阶段就是“分”的阶段,并行处理输入数据;
Reduce阶段就是“合”的阶段,对Map阶段结果进行汇总
在这里插入图片描述

3. Hadoop YARN:作业调度与集群资源管理的框架

在这里插入图片描述
Yarn中有如下几个主要角色,同样,既是角色名、也是进程名,也指代所在计算机节点名称

  • ResourceManager(rm):处理客户端请求、启动/监控ApplicationMaster、监控NodeManager、资源分配与调度
  • NodeManager(nm):单个节点上的资源管理、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
  • ApplicationMaster(am):数据切分、为应用程序申请资源,并分配给内部任务、任务监控与容错。
  • Container:对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息

ResourceManager是老大,NodeManager是小弟,ApplicationMaster是计算任务专员
在这里插入图片描述
4. Hadoop Common:支持其他模块的工具模块(Configuration、RPC、序列化机制、日志操作)

猜你喜欢

转载自blog.csdn.net/ko0491/article/details/109003484