图解大数据 | 分布式平台Hadoop与Map-Reduce详解

简介: Hadoop是最基础和场景的开源分布式计算平台,ShowMeAI在本节内容中给大家讲解Hadoop相关知识。

ShowMeAI研究中心

作者:韩信子@ShowMeAI
教程地址http://www.showmeai.tech/tutorials/84
本文地址http://www.showmeai.tech/article-detail/168
声明:版权所有,转载请联系平台与作者并注明出处

收藏ShowMeAI查看更多精彩内容


1.Hadoop快速入门

1)Hadoop简介

Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。

  • Hadoop是基于Java语言开发的,具有很好的跨平台特性,并且可以部署在廉价的计算机集群中;
  • Hadoop的核心是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce;
  • Hadoop被公认为行业大数据标准开源软件,在分布式环境下提供了海量数据的处理能力;
  • 几乎所有主流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、微软、字节跳动、美团点评、淘宝等,都支持Hadoop。

关于Hadoop的搭建与应用案例欢迎大家关注ShowMeAI下列文章:

2)Hadoop发展简史

Hadoop现在已经广泛地应用在大数据任务中,而它最初其实只是由Apache Lucene项目的创始人Doug Cutting开发的文本搜索库。下面是它的发展历程。

分布式平台; Hadoop与Map-reduce详解; Hadoop快速入门; Hadoop发展简史; 2-1

  • Hadoop源自始于2002年的Apache Nutch项目——一个开源的网络搜索引擎,也是Lucene的一部分。
  • 2004年,Nutch项目也模仿GFS开发了自己的分布式文件系统NDFS(Nutch Distributed File System),也就是HDFS的前身。
  • 2004年,谷歌公司又发表了另一篇具有深远影响的论文,阐述了MapReduce分布式编程思想。
  • 2005年,Nutch开源实现了谷歌的MapReduce。
  • 2006年2月,Nutch中的NDFS和MapReduce开始独立出来,成为Lucene项目的一个子项目,称为Hadoop,同时,Doug Cutting加盟雅虎。
  • 2008年1月,Hadoop正式成为Apache顶级项目,Hadoop也逐渐开始被雅虎之外的其他公司使用。
  • 2008年4月,Hadoop打破世界纪录,成为最快排序1TB数据的系统,它采用一个由910个节点构成的集群进行运算,排序时间只用了209秒。
  • 2009年5月,Hadoop更是把1TB数据排序时间缩短到62秒。
  • Hadoop从此名声大震,迅速发展成为大数据时代最具影响力的开源分布式开发平台,并成为事实上的大数据处理标准。

2.Hadoop特性与应用现状

1)Hadoop特性

Hadoop是一个能够对大量数据进行分布式处理的软件框架,并且是以一种可靠、高效、可伸缩的方式进行处理的。它具有以下几个方面的特性:

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop特性; 2-2

2)Hadoop应用现状

Hadoop凭借其突出的优势,已经在各个领域得到了广泛的应用,而互联网领域是其应用的主阵地。

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop应用现状; 2-3

  • 雅虎2007年在Sunnyvale总部建立了M45——一个包含了4000个处理器和1.5PB容量的Hadoop集群系统。
  • Facebook作为全球知名的社交网站,Hadoop是非常理想的选择,Facebook主要将Hadoop平台用于日志处理、推荐系统和数据仓库等方面。
  • 国内主流的互联网及信息公司,包括百度、淘宝、网易、字节、美团点评、华为、中国移动等都采用了Hadoop。

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop应用现状; 2-4

3)Hadoop版本演进

Apache Hadoop版本分为两代:第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。

分布式平台; Hadoop与Map-reduce详解; Hadoop特性&应用; Hadoop版本演进; 2-5

第一代Hadoop包含三个大版本,分别是0.20.x、0.21.x、0.22.x

  • 0.20.x最后演化成1.0.x,变成了稳定版。
  • 0.21.x和0.22.x则增加了NameNode HA等新的重大特性。


第二代Hadoop包含两个大版本,分别是0.23.x、2.x

  • 它们完全不同于Hadoop 1.0,是一套全新的架构,均包含HDFS Federation和YARN两个系统。
  • 相比于0.23.x,2.x增加了NameNode HA和Wire-compatibility两个重大特性。

3.Hadoop生态项目架构

分布式平台; Hadoop与Map-reduce详解; Hadoop生态项目架构; 组件与功能; 2-6

如上图罗列了Hadoop生态的项目架构,包含以下组件,层级结构与核心功能见图。

组件 功能
HDFS 分布式文件系统
MapReduce 分布式并行编程模型
YARN 资源管理和调度器
Tez 运行在YARN之上的下一代Hadoop查询处理框架
Hive Hadoop上的数据仓库
HBase Hadoop上的非关系型的分布式数据库
Pig 一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin
Sqoop 用于在Hadoop与传统数据库之间进行数据传递
Oozie Hadoop上的工作流管理系统
Zookeeper 提供分布式协调一致性服务
Storm 流计算框架
Flume 一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
Ambari Hadoop快速部署工具,支持Apache Hadoop集群的供应、管理和监控
Kafka 一种高吞吐量的分布式发布订阅消息系统,可以处理消费者规模的网站中的所有动作流数据
Spark 类似于Hadoop MapReduce的通用并行框架

4.HDFS介绍

1)分布式文件系统

分布式文件系统,把文件分布存储到多个计算机节点上,成千上万的计算机节点构成计算机集群。与之前使用多个处理器和专用高级硬件的并行化处理装置不同的是,目前的分布式文件系统所采用的计算机集群,都是由普通硬件构成的,这就大大降低了硬件上的开销。

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; 分布式文件系统; 2-7

2)HDFS的优点与局限

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS的优点与局限; 2-8

总体而言,HDFS要实现以下目标:

  • 兼容廉价的硬件设备
  • 流数据读写
  • 大数据集
  • 简单的文件模型
  • 强大的跨平台兼容性


HDFS特殊的设计,在实现上述优良特性的同时,也使得自身具有一些应用局限性,主要包括以下几个方面:

  • 不适合低延迟数据访问
  • 无法高效存储大量小文件
  • 不支持多用户写入及任意修改文件

3)HDFS块及其优势

块(Block):HDFS默认一个块64MB,一个文件被分成多个块,以块作为存储单位。块的大小远远大于普通文件系统,可以最小化寻址开销。

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS块及其优势; 2-9

HDFS采用抽象的块概念可以带来以下几个明显的好处:

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS块的优势; 2-10

  • 支持大规模文件存储:文件以块为单位进行存储,一个大规模文件可以被分拆成若干个文件块,不同的文件块可以被分发到不同的节点上,因此,一个文件的大小不会受到单个节点的存储容量的限制,可以远远大于网络中任意节点的存储容量。
  • 简化系统设计:首先,大大简化了存储管理,因为文件块大小是固定的,这样就可以很容易计算出一个节点可以存储多少文件块;其次,方便了元数据的管理,元数据不需要和文件块一起存储,可以由其他系统负责管理元数据。
  • 适合数据备份:每个文件块都可以冗余存储到多个节点上,大大提高了系统的容错性和可用性。

4)HDFS主要组件的功能

分布式平台; Hadoop与Map-reduce详解; HDFS介绍; HDFS主要组件功能; 2-11

HDFS包含Name Node和Data Node,具体的功能和特点对比如上图所示。

Name Node Data Node
存储元数据 存储文件内容
元数据保存在内存中 文件内容保存在磁盘
保存文件、block、datanode之间的映射关系 维护了 block id 到 datanode 本地文件的映射关系

5.Map-Reduce分布式数据处理

HDFS很好地解决了分布式文件存储的问题,而hadoop利用一套Map-Reduce的计算框架,也解决了大数据处理的难题。下面整理了大数据计算所面对的问题,以及一些解决思路(也是map-reduce的核心思想)。

我们后面的内容会以实操的方式,带大家一起看hadoop的组件与Map-Reduce应用的案例,这里大家先做一个简单了解,具体的应用实操接着看ShowMeAI后续内容哦~

集群计算面对的问题&方案

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群计算面对的问题及方案; 2-12

问题1:节点故障。如何保持数据的持续性,即在某些节点故障的情形下不影响依旧能够使用数据?在运行时间较长的集群运算中,如何应对节点故障呢?

解决方法:在多节点上冗余地存储数据。分布式文件存储系统提供全局的文件命名空间,冗余度和可获取性。例如:Google的GFS、Hadoop的HDFS。

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群运算时问题的解决方案; 2-13


问题2:网络带宽瓶颈

解决方法:数据以“块状”形式在多台机器上存储。每个数据块都会重复地在多台机器上存储,保证数据的持续性和随时可取性。

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群运算时问题的解决方案; 2-14


问题3:分布式编程非常复杂。需要一个简单的模型能够隐去所有的复杂性。

解决方法:简单的程序模型隐藏所有的复杂度。

分布式平台; Hadoop与Map-reduce详解; Map-Reduce分布式数据处理; Map-Reduce集群运算时问题的解决方案; 2-15

参考资料

【大数据技术与处理】推荐阅读

ShowMeAI 系列教程推荐

ShowMeAI用知识加速每一次技术成长

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
数据采集 人工智能 分布式计算
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
阿里云推出的MaxFrame是链接大数据与AI的分布式Python计算框架,提供类似Pandas的操作接口和分布式处理能力。本文从部署、功能验证到实际场景全面评测MaxFrame,涵盖分布式Pandas操作、大语言模型数据预处理及企业级应用。结果显示,MaxFrame在处理大规模数据时性能显著提升,代码兼容性强,适合从数据清洗到训练数据生成的全链路场景...
753 5
MaxFrame:链接大数据与AI的高效分布式计算框架深度评测与实践!
|
人工智能 分布式计算 大数据
MaxFrame 产品评测:大数据与AI融合的Python分布式计算框架
MaxFrame是阿里云MaxCompute推出的自研Python分布式计算框架,支持大规模数据处理与AI应用。它提供类似Pandas的API,简化开发流程,并兼容多种机器学习库,加速模型训练前的数据准备。MaxFrame融合大数据和AI,提升效率、促进协作、增强创新能力。尽管初次配置稍显复杂,但其强大的功能集、性能优化及开放性使其成为现代企业与研究机构的理想选择。未来有望进一步简化使用门槛并加强社区建设。
611 8
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
473 7
|
SQL 分布式计算 DataWorks
MaxCompute MaxFrame评测 | 分布式Python计算服务MaxFrame(完整操作版)
在当今数字化迅猛发展的时代,数据信息的保存与分析对企业决策至关重要。MaxCompute MaxFrame是阿里云自研的分布式计算框架,支持Python编程接口、兼容Pandas接口并自动进行分布式计算。通过MaxCompute的海量计算资源,企业可以进行大规模数据处理、可视化数据分析及科学计算等任务。本文将详细介绍如何开通MaxCompute和DataWorks服务,并使用MaxFrame进行数据操作。包括创建项目、绑定数据源、编写PyODPS 3节点代码以及执行SQL查询等内容。最后,针对使用过程中遇到的问题提出反馈建议,帮助用户更好地理解和使用MaxFrame。
|
机器学习/深度学习 分布式计算 数据挖掘
MaxFrame 性能评测:阿里云MaxCompute上的分布式Pandas引擎
MaxFrame是一款兼容Pandas API的分布式数据分析工具,基于MaxCompute平台,极大提升了大规模数据处理效率。其核心优势在于结合了Pandas的易用性和MaxCompute的分布式计算能力,无需学习新编程模型即可处理海量数据。性能测试显示,在涉及`groupby`和`merge`等复杂操作时,MaxFrame相比本地Pandas有显著性能提升,最高可达9倍。适用于大规模数据分析、数据清洗、预处理及机器学习特征工程等场景。尽管存在网络延迟和资源消耗等问题,MaxFrame仍是处理TB级甚至PB级数据的理想选择。
319 6
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
552 2
|
缓存 NoSQL Java
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
291 3
大数据-50 Redis 分布式锁 乐观锁 Watch SETNX Lua Redisson分布式锁 Java实现分布式锁
|
机器学习/深度学习 分布式计算 算法
【大数据分析&机器学习】分布式机器学习
本文主要介绍分布式机器学习基础知识,并介绍主流的分布式机器学习框架,结合实例介绍一些机器学习算法。
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。