向Hadoop Say Hello——初识Hadoop

一、概述

Hadoop这个名字的由来是Hadoopde之父Doug Cutting的孩子给一个棕黄色大象样子的玩具起的名字
Hadoop官网地址http://hadoop.apache.org/

什么是Hadoop?

官网原话:The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
翻译过来:Apache的Hadoop项目是一个可靠的,可拓展的分布式计算开源软件

Hadoop 的功能是利用服务器集群,根据用户自定义业务逻辑对海量数据进行分布式处理。它包括四个核心部分:Hadoop Common、Hadoop Distributed File System(HDFS)、Hadoop YARN、Hadoop MapReduce。

  • Hadoop Commmon:支持其他Hadoop模块的通用功能
  • HDFS:分布式文件系统,可提供对应用程序数据的高吞吐量访问
  • Hadoop YARN:作业调度和集群资源管理的框架
  • Hadoop MapReduce:基于YARN的并行处理大型数据集的框架

狭义Hadoop是指集分布式文件系统(HDFS)和分布式计算(MapReduce)以及集群资源调度管理框架(YARN)的一个软件平台。
广义的Hapdoop指的是Hadoop生态系统,在Hadoop生态中Hadoop是重要和基础的一个部分,生态中包含了很多子系统,每一个子系统只能解决某一个特定的问题域。

Hadoop核心组件HDFS和YARN都是采用主从架构

在一个集群中,会有部分节点充当主服务器的角色,其他服务器是从服务器的角色,这种架构模式就叫主从结构

  • HDFS 的主节点是NameNode,从节点是DataNode
  • YARN 的主节点是ResourceManager,从节点是NodeManager

二、核心组件——HDFS

  • 源自于Google在2003年10月的GFS论文
  • HDFS是GFS的一个开源实现版本

HDFS是一个分布式的文件系统,其设计的核心思想:分散均匀存储 + 备份冗余存储。HDFS会把一个大文件按照blocksize(块大小)的要求将其拆分成多个block(块),并以多副本的方式存储在HDFS集群中的多台服务器的本地硬盘上,通过统一的命名空间来定位文件、由很多服务器联合起来实现其功能。在一个HDFS集群中包含两个重要的部分:NameNodeDateNode

  • NameNode(NN)是HDFS集群的主节点,一个HDFS集群中只有一个NN,负责维护目录结构和文件分块信息,同时还负责接收客户端的请求进行处理
  • SecondaryNameNode(SNN)是NN的一个冷备份,一个HDFS集群中也只有一个SNN,SNN是保证Hadoop高可用和稳定性的设计,在NN无法正常工作时SNN会承担NN的工作继续服务,同时SNN也对NN有一定的辅助作用,它会从NN获取fsimage和edits来进行合并,然后再发送给NN,以减少NN的工作负载

对namenode的操作都放在edits中,相当于一个文件操作的记录
fsimage是namenode中关于元数据的镜像,一般称为检查点

  • DataNode(DN)是HDFS集群的从节点,在一个集群中可以有多个DataNode,它是负责各个文件block的存储管理,执行数据块的读写操作。

特性

  • 文件在物理上是分块并以多副本的方式存储
  • HDFS文件系统给客户端提供统一的抽象目录树,数据切分、多副本、容错等操作对用户是透明的
  • 适用于一次写入多次读出的场景,不支持文件修改
  • 适合存储大文件,不适合存储小文件(每个小文件都是一个block块,存储相同大小的文件,小文件会使用更多的块,增大NN的负担)
  • 分散均匀存储和备份冗余存储的设计思想,保证了存储在HDFS上的数据高可用

劣势

  • 数据访问延迟高
  • 小文件存储不友好
  • 单用户写入不支持修改

三、核心组件——MapReduce

源自于Google在2004年12月发表的MapReduce论文
MapReduce是Google MapReduce的一个开源实现版本

MapReduce是一个分布式计算编程框架,核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个 Hadoop 集群上。

一个MapReduce作业主要分为两部分Map(映射)和Reduce(归约)。首先把输入数据集切分成若干独立数据块,然后将数据块分给多个Map任务并行处理,将map并行处理的结果输入给reduce任务进行处理。

MapReduce作业的输入和输出都会被存储在文件系统中,一般情况下运行MapReduce框架和运行HDFS文件系统的节点通常是在一起的。这种配置允许框架在那些已经存好数据的节点上高效地调度任务,这可以使整个集群的网络带宽被非常高效地利用。当然MapReduce作业读取的数据文件并不一定要求是在HDFS上,这是由用户指定的,默认是HDFS

MapReduce作业的过程描述

  • 输入文件的存储位置

  • InputFormat接口可以设置文件分割的逻辑,对文件进行分割,将分割后的文件输送给Mapper

  • Map读取Input的key-value,根据用户自定义逻辑进行计算,对Key和Value重新映射,产生新的key-value

  • 经过Map后所产生的新的key-value会按key进行分区,并写入一个环形内存缓冲区中

  • 当环形缓冲区存满后,会生成临时文件,将数据写在磁盘上(这个过程叫溢写,本文只是概述不再详细讲解,在后续文章会细讲)

  • Map中所有数据处理完毕后,会将所有临时文件进行合并生成只生成一个数据文件

  • 进入shuffle过程,将map的结果按照key进行分组,将相同的key的数据放在一起

  • 在reduce函数中数据以 key-value 列表输入,根据用户自定义逻辑计算,产生新的key-value数据,将其作为输出结果存储在HDFS上

四、核心组件——YARN

YARN是一个分布式的资源管理和作业调度框架,负责将自己管理的系统资源分配给在集群中运行的应用程序,并调度在不同集群节点上执行的任务。YARN的设计是主从结构,包含两个主要服务:ResourceManager、NodeManager,还有两个重要概念:ApplicationMaster、Container

  • ResourceManager(RM)是YARN的主节点服务,是在系统中的所有应用程序之间仲裁资源的最终权限

  • NodeManager(NM)是YARN服务的从节点,是每个节点上的资源和任务管理器,负责 Containers的启动停止以及运行状态监控,监视其当前节点资源使用情况(CPU,内存,磁盘,网络)并将其报告给 RM

  • ApplicationMaster(AM)是每个用户程序的管理者,每个运行在YARN上的应用程序都有一个AM,负责与RM协商进行资源获取,负责监控、管理Application在各个节点上的具体运行的内部任务

  • Container封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM为AM返回的资源便是使用Container作为单位表示。YARN会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源

五、其他

优势

  • 可靠性

数据存储:数据块多副本,NameNode主备设计
数据计算:失败任务会重新调度计算

  • 可拓展性

可横向的线性拓展集群节点
集群中节点的个数可以数以千计

  • 存储在廉价机器上,成本低

  • 有一个相对成熟的生态圈

常用发行版

  • Apache版本

完全开源
不同版本、不同框架的整合比较麻烦

  • CDH发行版

cloudera manager可视化安装,组件管理方便
cloudera manager不开源,且组件与Apache社区版稍有改动

  • HortonWorks(HDP)

原装Hadoop、纯开源、可以基于页面框架自己定制改造
企业级安全服务不开源

.

文章欢迎转载,转载请注明出处,个人公众号【爱做梦的锤子】,全网同id,个站 http://te-amo.site,欢迎关注,里面会分享更多有用知识,还有我的私密照片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352