作者:韩信子 @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 数学根底:从入门到精通系列教程
- 图解大数据技术:从入门到精通系列教程