hadoop生态系统的详细介绍

大数据

1、Hadoop生态系统概况

Hadoop是一个能够对大量数据进行分布式处理的软件框架。具有可靠、高效、可伸缩的特点。

Hadoop的核心是HDFS和MapReduce,hadoop2.0还包括YARN。

下图为hadoop的生态系统:

大数据

2、HDFS(Hadoop分布式文件系统)

源自于Google的GFS论文,发表于2003年10月,HDFS是GFS克隆版。

是Hadoop体系中数据存储管理的基础。它是一个高度容错的系统,能检测和应对硬件故障,用于在低成本的通用硬件上运行。HDFS简化了文件的一致性模型,通过流式数据访问,提供高吞吐量应用程序数据访问功能,适合带有大型数据集的应用程序。

HDFS这一部分主要有一下几个部分组成:

(1)、Client:切分文件;访问HDFS;与NameNode交互,获取文件位置信息;与DataNode交互,读取和写入数据。

(2)、NameNode:Master节点,在hadoop1.X中只有一个,管理HDFS的名称空间和数据块映射信息,配置副本策略,处理客户端请求。对于大型的集群来讲,Hadoop1.x存在两个最大的缺陷:1)对于大型的集群,namenode的内存成为瓶颈,namenode的扩展性的问题;2)namenode的单点故障问题。

针对以上的两个缺陷,Hadoop2.x以后分别对这两个问题进行了解决。对于缺陷1)提出了Federation namenode来解决,该方案主要是通过多个namenode来实现多个命名空间来实现namenode的横向扩张。从而减轻单个namenode内存问题。

针对缺陷2),hadoop2.X提出了实现两个namenode实现热备HA的方案来解决。其中一个是处于standby状态,一个处于active状态。

(3)、DataNode:Slave节点,存储实际的数据,汇报存储信息给NameNode。

(4)、Secondary NameNode:辅助NameNode,分担其工作量;定期合并fsimage和edits,推送给NameNode;紧急情况下,可辅助恢复NameNode,但Secondary NameNode并非NameNode的热备。

目前,在硬盘不坏的情况,我们可以通过secondarynamenode来实现namenode的恢复。

3、Mapreduce(分布式计算框架)

源自于google的MapReduce论文,发表于2004年12月,Hadoop MapReduce是google MapReduce 克隆版。MapReduce是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。

MapReduce计算框架发展到现在有两个版本的MapReduce的API,针对MR1主要组件有以下几个部分组成:

(1)、JobTracker:Master节点,只有一个,主要任务是资源的分配和作业的调度及监督管理,管理所有作业,作业/任务的监控、错误处理等;将任务分解成一系列任务,并分派给TaskTracker。

(2)、TaskTracker:Slave节点,运行Map Task和Reduce Task;并与JobTracker交互,汇报任务状态。

(3)、Map Task:解析每条数据记录,传递给用户编写的map(),并执行,将输出结果写入本地磁盘。

(4)、Reducer Task:从Map Task的执行结果中,远程读取输入数据,对数据进行排序,将数据按照分组传递给用户编写的reduce函数执行。

在这个过程中,有一个shuffle过程,对于该过程是理解MapReduce计算框架是关键。该过程包含map函数输出结果到reduce函数输入这一个中间过程中所有的操作,称之为shuffle过程。在这个过程中,可以分为map端和reduce端。

Map端:

1)  输入数据进行分片之后,分片的大小跟原始的文件大小、文件块的大小有关。每一个分片对应的一个map任务。

2)  map任务在执行的过程中,会将结果存放到内存当中,当内存占用达到一定的阈值(这个阈值是可以设置的)时,map会将中间的结果写入到本地磁盘上,形成临时文件这个过程叫做溢写。

3)  map在溢写的过程中,会根据指定reduce任务个数分别写到对应的分区当中,这就是partition过程。每一个分区对应的是一个reduce任务。并且在写的过程中,进行相应的排序。在溢写的过程中还可以设置conbiner过程,该过程跟reduce产生的结果应该是一致的,因此该过程应用存在一定的限制,需要慎用。

4)  每一个map端最后都只存在一个临时文件作为reduce的输入,因此会对中间溢写到磁盘的多个临时文件进行合并Merge操作。最后形成一个内部分区的一个临时文件。

Reduce端:

1)  首先要实现数据本地化,需要将远程节点上的map输出复制到本地。

2)  Merge过程,这个合并过程主要是对不同的节点上的map输出结果进行合并。

3)  不断的复制和合并之后,最终形成一个输入文件。Reduce将最终的计算结果存放在HDFS上。

针对MR2是新一代的MR的API。其主要是运行在Yarn的资源管理框架上。

4、Yarn(资源管理框架)

用户喜欢...

Hadoop与Storm的对比

本文介绍一下Hadoop与Storm的对比。...


MongoDB数据库遭大规模勒索攻击,被劫持26000多台服务器

刚刚曝出的大新闻,MongoDB数据库叕被攻击了。就在上周末,三个黑客团伙劫持了MongoDB逾26000多台服务器,其中规模最...


大数据处理框架的类型、比较和选择

前言 说起大数据处理,一切都起源于Google公司的经典论文:《MapReduce:Simplied Data Processing on Large Clus...


从头开始:用Python实现随机森林算法

拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱。bagging(bootstrap aggregating 的缩写...


数据架构简史:转换中的范式

据架构是一系列决定收集哪些数据,如何在数据库系统中使用、处理和存储数据的规则、策略以及模型。例如,数据...


一分钟让你知道Hadoop是什么

作者:kkdelta hadoop是什么?Hadoop是一种分析和处理大数据的软件平台,是Appach的一个用Java语言所实现的开源软件的加框...


PPT:美团点评数据平台融合实践 项目推进经验及技术突破

PPT来源ArchSummit全球架构师峰会2017 美团点评两家公司合并以来,经历了组织架构融合、线上业务融合、数据与基础设...


从拉勾网爬取招聘数据 分析深圳数据分析师的职业前景

作者:真依然很拉风 通过对局部地区某一岗位的总体分析,找出该地区该职位的职业发展前景规律。本文基于拉勾上...


再见Hadoop之父,大数据应用新认知

作者:宋家雨 前不久,有机会再次见到hadoop之父--Doug Cutting先生,与2014年见面稍有不同的是,这次Doug Cutting先生身份...


大数据分析你不能不懂的6个核心技术

目前,大数据领域每年都会涌现出大量新的技术,成为大数据获取、存储、处理分析或可视化的有效手段。大数据技...


数据湖恶化成了数据沼泽?你一定没有注意这3点

作者:谢涛 多年来,在Apache Hadoop等技术的支持下,组织一直在寻求构建数据湖——企业范围的数据管理平台,允许以...


2017年全球大数据产业报告之海外篇

作者:吴极 作为该系列的开篇文章,本期我们将从宏观的角度带你观察大数据行业的整体生态结构,对大数据采集、...


Spark机器学习入门实例——大数据集(30+g)二分类

本篇教程将引领大家,通过使用spark的机器学习性能和 Scala ,练习一个基于超出内存可加载范围的数据集的逻辑回归...


董老师走进斯坦福,聊聊硅谷创业公司和大数据的事儿(附课件PPT下载)

董飞,知乎达人,分享过《哪些硅谷创业公司能给拜访者留下深刻印象》,《美国大数据工程师面试攻略》,《Cour...


首席工程师揭秘:LinkedIn大数据后台是如何运作的?(二)

本文作者:Jay Kreps,linkedin公司首席工程师;文章来自于他在linkedin上的分享;原文标题:The Log: What every soft...


大数据框架Hadoop主要模块介绍

本文涉及到的所有模块,都是属于Apache组织,不包括其他第三方的模块。 核心模块: Hadoop Common: 包括Hadoop常用的工具...