乐趣区

关于大数据:图解大数据-分布式平台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 数学根底:从入门到精通系列教程
  • 图解大数据技术:从入门到精通系列教程

退出移动版