关于大数据:图解大数据-分布式平台Hadoop与Mapreduce详解

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

1.Hadoop疾速入门

1)Hadoop简介

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

  • Hadoop是基于Java语言开发的,具备很好的跨平台个性,并且能够部署在便宜的计算机集群中;
  • Hadoop的外围是分布式文件系统HDFS(Hadoop Distributed File System)和MapReduce;
  • Hadoop被公认为行业大数据规范开源软件,在分布式环境下提供了海量数据的解决能力;
  • 简直所有支流厂商都围绕Hadoop提供开发工具、开源软件、商业化工具和技术服务,如谷歌、微软、字节跳动、美团点评、淘宝等,都反对Hadoop。

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

  • 实操案例-Hadoop零碎搭建与环境配置
  • 实操案例-利用map-reduce进行大数据统计

2)Hadoop倒退简史

Hadoop当初曾经宽泛地利用在大数据工作中,而它最后其实只是由Apache Lucene我的项目的创始人Doug Cutting开发的文本搜寻库。上面是它的倒退历程。

  • 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是一个可能对大量数据进行分布式解决的软件框架,并且是以一种牢靠、高效、可伸缩的形式进行解决的。它具备以下几个方面的个性:

2)Hadoop利用现状

Hadoop凭借其突出的劣势,曾经在各个领域失去了宽泛的利用,而互联网畛域是其利用的主阵地。

  • 雅虎2007年在Sunnyvale总部建设了M45——一个蕴含了4000个处理器和1.5PB容量的Hadoop集群零碎。
  • Facebook作为寰球出名的社交网站,Hadoop是十分现实的抉择,Facebook次要将Hadoop平台用于日志解决、举荐零碎和数据仓库等方面。
  • 国内支流的互联网及信息公司,包含百度、淘宝、网易、字节、美团点评、华为、中国移动等都采纳了Hadoop。

3)Hadoop版本演进

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

第一代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生态的我的项目架构,蕴含以下组件,层级构造与外围性能见图。

组件 性能
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)分布式文件系统

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

2)HDFS的长处与局限

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

  • 兼容便宜的硬件设施
  • 流数据读写
  • 大数据集
  • 简略的文件模型
  • 弱小的跨平台兼容性

HDFS非凡的设计,在实现上述低劣个性的同时,也使得本身具备一些利用局限性,次要包含以下几个方面:

  • 不适宜低提早数据拜访
  • 无奈高效存储大量小文件
  • 不反对多用户写入及任意批改文件

3)HDFS块及其劣势

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

HDFS采纳形象的块概念能够带来以下几个显著的益处:

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

4)HDFS次要组件的性能

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后续内容哦~

集群计算面对的问题&计划

问题1:节点故障。如何保持数据的持续性,即在某些节点故障的情景下不影响仍旧可能应用数据?在运行工夫较长的集群运算中,如何应答节点故障呢?

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

问题2:网络带宽瓶颈

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

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

解决办法:简略的程序模型暗藏所有的复杂度。

6.参考资料

  • [美] 汤姆,怀特(Tom White),《Hadoop权威指南:大数据的存储与剖析(第4版)》,清华大学出版社,2017
  • [美] Donald Miner,Adam Shook 著,《MapReduce设计模式》,人民邮电出版社,2014
  • Hadoop集群搭建教程(具体): https://blog.csdn.net/fanxin\_i/article/details/80425461
  • 总结:具体解说MapReduce过程(整顿补充): https://blog.csdn.net/mrlevo520/article/details/76781186

ShowMeAI相干文章举荐

  • 图解大数据 | 导论:大数据生态与利用
  • 图解大数据 | 分布式平台:Hadoop与Map-reduce详解
  • 图解大数据 | 实操案例:利用map-reduce进行大数据统计
  • 图解大数据 | 实操案例:Hive搭建与利用案例
  • 图解大数据 | 海量数据库与查问:Hive与HBase详解
  • 图解大数据 | 大数据分析开掘框架:Spark初步
  • 图解大数据 | Spark操作:基于RDD的大数据处理剖析
  • 图解大数据 | Spark操作:基于Dataframe与SQL的大数据处理剖析
  • 图解大数据 | 综合案例:应用spark剖析美国新冠肺炎疫情数据
  • 图解大数据 | 综合案例:应用Spark剖析开掘批发交易数据
  • 图解大数据 | 综合案例:应用Spark剖析开掘音乐专辑数据
  • 图解大数据 | 流式数据处理:Spark Streaming
  • 图解大数据 | Spark机器学习(上)-工作流与特色工程
  • 图解大数据 | Spark机器学习(下)-建模与超参调优
  • 图解大数据 | Spark GraphFrames:基于图的数据分析开掘

ShowMeAI系列教程举荐

  • 图解Python编程:从入门到精通系列教程
  • 图解数据分析:从入门到精通系列教程
  • 图解AI数学根底:从入门到精通系列教程
  • 图解大数据技术:从入门到精通系列教程

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理