SlideShare a Scribd company logo
1 of 38
Hadoop系统架构
课程内容
 Hadoop发展简介
 Hadoop的特性
 Hadoop系统架构
 Hadoop的组件
© ZTE All rights reserved
Hadoop的简历
 Apache Nutch项目(开源搜索引擎,
Lucene项目(文本检索引擎)的一
部分)的一部分:Spider
 诞生于2004年
 创作者:
 Doug Cutting & Michael J.Cafarella
 名字&形象代言人:Doug Cutting
自己儿子的玩具——小黄象
Hadoop
Lucene
Nutch
Hadoop
© ZTE All rights reserved
Hadoop是什么?
 一个分布式文件系统和并行执行环境;
 让用户便捷地处理海量数据;
 Hadoop是大数据领域的事实标准;
 用Java编写,支持多种编程语言,
如:Python、C++
 借鉴了Google的分布式分件系统和分布
式编程思想。
HDFS
MapReduce
© ZTE All rights reserved
Hadoop大事记
 2004年-- 最初的版本(现在称为HDFS和MapReduce)由Doug Cutting和Mike Cafarella
开始实施。
 2006年2月-- Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。
 2006年5月-- 雅虎建立了一个300个节点的Hadoop研究集群。
 2007年4月-- 研究集群达到两个1000个节点的集群。
 2008年4月-- 赢得世界最快1 TB数据排序在900个节点上用时209秒,由雅虎研究团队完
成。
 2008年10月-- 研究集群每天装载10 TB的数据。
 2009年3月-- 17个集群总共24 000台机器。
 2009年4月-- 赢得每分钟排序,59秒内排序500 GB(在1400个节点上)和173分钟内排序
100 TB数据(在3400个节点上)。
课程内容
 Hadoop发展简介
 Hadoop的特性
 Hadoop系统架构
 Hadoop的组件
© ZTE All rights reserved
Hadoop的特性
 扩容能力:能可靠地存储和处理千兆字节(PB)数据。
 成本低:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达
数千个节点。
 高效率:通过分发数据,hadoop可以在数据所在的节点上并行地处理它们,这使得处理
非常的快速。
 易于管理:磁盘和节点自动管理。
 可靠性:hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署计
算任务。
 通用性强:可以用于各种类型数据的处理,MapReduce几乎就是标准接口。
 社区活跃,衍生产品多。
课程内容
 Hadoop发展简介
 Hadoop的特性
 Hadoop系统架构
 Hadoop的组件
© ZTE All rights reserved
Hadoop生态体系架构
© ZTE All rights reserved
Hadoop的常见应用
© ZTE All rights reserved
Hadoop工作流示例
© ZTE All rights reserved
Hadoop集群结构
DataNode NodeManager
Slave
NameNode ResourceManager
Master
DataNode NodeManager
Slave
DataNode NodeManager
Slave
NameNode ResourceManager
Standby
ZooKeeper
ZooKeeper
ZooKeeper
© ZTE All rights reserved
物理分布的Hadoop集群
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
Zookeeper
Rack
Switch
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
Zookeeper
Rack
Switch
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
NodeManager/
DataNode
Zookeeper
ResourceManager/
NameNode
ResourceManager/
NameNode
Rack
Switch
Switch
© ZTE All rights reserved
Hadoop物理节点部署
Server
Linux OS
Hadoop
Utility
JVM
Browser NameNode
Resource
Manager
History
Server
Server
Linux OS
JVM
DataNode
Node
Manager
Master Node
Slave Node
© ZTE All rights reserved
Hadoop的各种版本选择
 Apache Hadoop
 Hortonworks
 Cloudera(CDH:Cloudera
Distribution Hadoop)
 MapR
 ……
 选择 Hadoop版本的考虑因素:
 是否开源(即是否免费)
 是否有稳定版
 是否经实践检验
 是否有强大的社区支持
课程内容
 Hadoop发展简介
 Hadoop的特性
 Hadoop系统架构
 Hadoop的组件
© ZTE All rights reserved
HDFS简介
 HDFS——Hadoop分布式文件系统;
 是Hadoop体系中数据存储管理的基础;
 为了做到可靠性,创建了多份数据块的副本,并将它们放置在服务器群的计算节点中,
MapReduce就可以在它们所在的节点上处理这些数据了。
© ZTE All rights reserved
HDFS的主要特点
 HDFS主要特点:
 使用低成本存储和服务器构建;
 存放PB级别的海量数据;
 高可扩展性,实际生产环境扩展至4000
个节点;
 高可靠性和容错性,数据自动复制,可
自我修复;
 高带宽,高并发访问,对于延迟不敏感;
 面向批处理。
 HDFS不适合:
 存储小文件 (不建议使用)
 大量的随机读 (不建议使用)
 需要对文件的修改 (不支持)
© ZTE All rights reserved
HDFS体系结构
© ZTE All rights reserved
什么是MapReduce
 MapReduce为离线数据分析
而设计,基本上是个利用数据并
行性进行分布运算而后汇总结
果的计算框架;
 适合超大规模且格式复杂的数
据处理。
 MapReducev1框架图
© ZTE All rights reserved
MapReduce流程
 Map(映射):对一些独立元素组成的
列表的每一个元素进行指定的操作,
可以高度并行。
 Reduce(化简):对一个列表的元素进
行合并。
 一个简单的MapReduce程序只需
要指定map()、reduce()、输入和输
出,剩下的事(并行化、容错、数据
分布、负载均衡的等)由框架帮你
搞定。
© ZTE All rights reserved
MapReduce示例——WordCount
© ZTE All rights reserved
Apache Hadoop的版本演进
© ZTE All rights reserved
Yarn
资源管理
任务调度
原JobTracker
功能
ResourceManager
ApplicationMaster
原TaskTracker NodeManager
任务监控
Master端
Slave端
YARN架构思路:将原JobTacker三大功能拆分
 Hadoop2.0以后,
MapReduce1.0中的资源管
理调度功能,被单独分离出
来形成了YARN,它是一个
纯粹的资源管理调度框架。
 被剥离了资源管理调度功能
的MapReduce 框架就变成
了MapReduce2.0,它是运
行在YARN之上的一个纯粹
的计算框架。
YARN
© ZTE All rights reserved
Yarn的框架与功能
 JobTracker 和 TaskTracker 已从 YARN 中删
除,取而代之的是一组对应用程序不可知的
新守护程序。
 YARN 分层结构的本质是 ResourceManager。
这个实体控制整个集群并管理应用程序向基
础计算资源的分配。ResourceManager 将各
个资源部分(计算、内存、带宽等)精心安
排给基础 NodeManager(YARN 的每节点
代理)。ResourceManager 还与
ApplicationMaster 一起分配资源,与
NodeManager 一起启动和监视它们的基础
应用程序。
 Yarn框架图
© ZTE All rights reserved
ZooKeeper
 Zookeeper:动物管理员,可以管理大数据生态系统中的小动物,如:
hadoop(大象)、pig(小猪)、hive(蜂巢)等组件,是一种分布式
应用协调系统,可以为分布式应用系统中的不同组件提供协调服务,具
体的,有如下常见应用场景:
 为分布式应用系统提供统一的配置管理信息(configuration)
 为分布式应用系统提供统一的命名服务(naming)
 提供基于简单原语的分布式同步操作(distributed synchronization)
 集群管理(group service)
© ZTE All rights reserved
ZooKeeper基本架构
© ZTE All rights reserved
Hbase
 HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据。
 HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列
元素组成的数据表。
ETL工具 BI报表 RDBMS
Pig Hive Sqoop
MapReduce
HBase
HDFS
(Hadoop Distributed File System)
Zookeeper
Avro
Hadoop生态系统
Hadoop生态系统中HBase与其他部分的关系
© ZTE All rights reserved
Hive
 Hive是一个构建于Hadoop顶层的数据
仓库工具。
 支持大规模数据存储、分析,具有良好
的可扩展性;
 依赖分布式文件系统HDFS存储数据;
 依赖分布式并行计算模型MapReduce处
理数据;
 定义了简单的类似SQL 的查询语言——
HiveQL;
 用户可以通过编写的HiveQL语句运行
MapReduce任务。
应用层 报表中心 在线业务 BI
Hadoop
数据仓库
Hive Pig HBase Mahout
Hadoop
MapReduce
HDFS
© ZTE All rights reserved
Impala
Cloudera Impala是用来进行大数据查询的补充工具。
Cloudera Impala可以直接为存储在HDFS或Hbase中的Hadoop
数据提供快速、交互式的SQL查询。
除了使用相同的存储平台,Impala与Hive一样也使用了相同的元
数据,SQL语法(Hive SQL),ODBC驱动和用户接口,这就很
方便的为用户提供了一个相似并且统一的平台来进行批量和实时
查询。
Impala主要用于实时查询。
 实时查询,秒级返回结果
• Cloudera开发并开源
• MPP模型的分布查询引擎
Hive
Hadoop
Impala
 简化查询逻辑的表达
 问题:难以满足探索式分析
 存储、处理大量数据
 问题:编写查询逻辑的工作
量较大
© ZTE All rights reserved
Flume
 Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
© ZTE All rights reserved
Kafka
 Kafka——分布式发布-订阅消息系统,一般作为企业大数据分析平台的数据交换枢纽,不
同类型的分布式系统可以统一接入到Kafka,实现和Hadoop各个组件之间的不同类型数
据的实时高效交换。它主要处理活跃的流式数据。
特点:
• 高吞吐量:同时为发布和订阅提供高
吞吐量,每秒可生产约25万消息
(50MB),处理55万消息
(110MB)。
• 支持online和offline场景。
© ZTE All rights reserved
Spark
 Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于2009年开发,是基于
内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。
 Spark在2014年打破了Hadoop保持的基准排序纪录
 Spark/206个节点/23分钟/100TB数据
 Hadoop/2000个节点/72分钟/100TB数据
 Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度
Hadoop与Spark执行逻辑回归的时间对比
© ZTE All rights reserved
Spark生态体系
应用场景 时间跨度 其他框架 Spark生态系统中的组件
复杂的批量数据处理 小时级 MapReduce、Hive Spark
基于历史数据的交互
式查询
分钟级、秒级 Impala 、 Dremel 、
Drill
Spark SQL
基于实时数据流的数
据处理
毫秒、秒级 Storm、S4 Spark Streaming
基于历史数据的数据
挖掘
- Mahout MLlib
图结构数据的处理 - Pregel、Hama GraphX
© ZTE All rights reserved
Spark Streaming
 Spark Streaming 是一个对实时数据流进行高吞吐、高容错的流式处理系统,可以对多种数据源(如
Kafka、Flume、Twitter 和ZeroMQ 等)进行类似Map、Reduce 和Join 等复杂操作,并将结果保存
到外部文件系统、数据库或应用到实时仪表盘。应用:实时流量分析、实时日志分析。
© ZTE All rights reserved
Storm
 Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持
续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要
求。Storm经常用于在实时分析、在线机器学习、持续计算、分布式远
程调用和ETL等领域。
 应用:
 一淘-实时分析系统pora:实时分析用户的属性,并反馈给搜索引擎。实时分析用户
的行为日志,能够为用户展现最贴近其当前需求的结果。
 携程-网站性能监控:实时分析系统监控携程网的网站性能,通过历史数据对比等判
断规则,触发预警事件。
© ZTE All rights reserved
Spark与Storm对比
 应用场景:
 Storm
 需要纯实时,不能忍受1秒以上延
迟的场景下使用,比如实时金融系
统要求实时金融交易与分析。实时
性更强!
 Spark
 一个项目除了实时计算之外,还包
括了离线批处理、交互式查询等业
务功能,那么就应该首选Spark。
综合处理能力强,吞吐量大!
比较点 Storm Spark
Streaming
实时计算模型 纯实时 准实时
实时计算延迟 毫秒级 秒级
吞吐量 低 高
事务机制 支持完善 支持,但不够完善
健壮性/容错性 非常强 一般
动态调整并行度 支持 不支持
谢谢!

More Related Content

Similar to Hadoop系统架构

Java 与 云计算
Java 与 云计算Java 与 云计算
Java 与 云计算kevin huang
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Wei-Yu Chen
 
大数据漫谈-bilibili
大数据漫谈-bilibili大数据漫谈-bilibili
大数据漫谈-bilibili不持
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012James Chen
 
Hadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWHadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWJazz Yao-Tsung Wang
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践isnull
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验Hanborq Inc.
 
Hadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research InstituteHadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research InstituteXu Wang
 
選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲Herman Wu
 
Hadoop yarn 基本架构和发展趋势
Hadoop yarn 基本架构和发展趋势Hadoop yarn 基本架构和发展趋势
Hadoop yarn 基本架构和发展趋势Xicheng Dong
 
淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践Min Zhou
 
Introduction of Spark by Wang Haihua
Introduction of Spark by Wang HaihuaIntroduction of Spark by Wang Haihua
Introduction of Spark by Wang HaihuaWang Haihua
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on HadoopSchubert Zhang
 
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsightKuo-Chun Su
 
DRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCDRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCYu-Chin Tsai
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us Simon Hsu
 
Hadoop与数据分析
Hadoop与数据分析Hadoop与数据分析
Hadoop与数据分析George Ang
 
Hadoop开发者入门专刊
Hadoop开发者入门专刊Hadoop开发者入门专刊
Hadoop开发者入门专刊liangxiao0315
 

Similar to Hadoop系统架构 (20)

Java 与 云计算
Java 与 云计算Java 与 云计算
Java 与 云计算
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計
 
大数据漫谈-bilibili
大数据漫谈-bilibili大数据漫谈-bilibili
大数据漫谈-bilibili
 
Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012Hadoop的典型应用与企业化之路 for HBTC 2012
Hadoop的典型应用与企业化之路 for HBTC 2012
 
Hadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TWHadoop Deployment Model @ OSDC.TW
Hadoop Deployment Model @ OSDC.TW
 
淘宝分布式数据处理实践
淘宝分布式数据处理实践淘宝分布式数据处理实践
淘宝分布式数据处理实践
 
Hadoop大数据实践经验
Hadoop大数据实践经验Hadoop大数据实践经验
Hadoop大数据实践经验
 
Hadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research InstituteHadoop development in China Mobile Research Institute
Hadoop development in China Mobile Research Institute
 
選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲選擇正確的Solution 來建置現代化的雲端資料倉儲
選擇正確的Solution 來建置現代化的雲端資料倉儲
 
Hadoop yarn 基本架构和发展趋势
Hadoop yarn 基本架构和发展趋势Hadoop yarn 基本架构和发展趋势
Hadoop yarn 基本架构和发展趋势
 
淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践淘宝Hadoop数据分析实践
淘宝Hadoop数据分析实践
 
Introduction of Spark by Wang Haihua
Introduction of Spark by Wang HaihuaIntroduction of Spark by Wang Haihua
Introduction of Spark by Wang Haihua
 
RockStor - A Cloud Object System based on Hadoop
RockStor -  A Cloud Object System based on HadoopRockStor -  A Cloud Object System based on Hadoop
RockStor - A Cloud Object System based on Hadoop
 
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
 
DRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLCDRBL-live-hadoop at TSLC
DRBL-live-hadoop at TSLC
 
What could hadoop do for us
What could hadoop do for us What could hadoop do for us
What could hadoop do for us
 
Hadoop与数据分析
Hadoop与数据分析Hadoop与数据分析
Hadoop与数据分析
 
Mapreduce
MapreduceMapreduce
Mapreduce
 
Hadoop开发者入门专刊
Hadoop开发者入门专刊Hadoop开发者入门专刊
Hadoop开发者入门专刊
 
Hadoop
HadoopHadoop
Hadoop
 

More from ssuser220dc6

WM Topology for Jendela
WM Topology for JendelaWM Topology for Jendela
WM Topology for Jendelassuser220dc6
 
IT集成项目交付总结
IT集成项目交付总结IT集成项目交付总结
IT集成项目交付总结ssuser220dc6
 
中兴通讯xPON ONT产品介绍_20180829.pptx
中兴通讯xPON ONT产品介绍_20180829.pptx中兴通讯xPON ONT产品介绍_20180829.pptx
中兴通讯xPON ONT产品介绍_20180829.pptxssuser220dc6
 
huawei company profile
huawei company profile  huawei company profile
huawei company profile ssuser220dc6
 
1130-15-Feb-23-Frank-Yuan-Huawei.pdf
1130-15-Feb-23-Frank-Yuan-Huawei.pdf1130-15-Feb-23-Frank-Yuan-Huawei.pdf
1130-15-Feb-23-Frank-Yuan-Huawei.pdfssuser220dc6
 
Tejas company profile
Tejas company profileTejas company profile
Tejas company profilessuser220dc6
 
雄安广电案例
雄安广电案例雄安广电案例
雄安广电案例ssuser220dc6
 
华为智慧农业解决方案
华为智慧农业解决方案华为智慧农业解决方案
华为智慧农业解决方案ssuser220dc6
 
Huawei cloud computing
Huawei cloud computingHuawei cloud computing
Huawei cloud computingssuser220dc6
 
The_Key_to_Tomorrows_smart_cities
The_Key_to_Tomorrows_smart_citiesThe_Key_to_Tomorrows_smart_cities
The_Key_to_Tomorrows_smart_citiesssuser220dc6
 
震有产品架构简介
震有产品架构简介震有产品架构简介
震有产品架构简介ssuser220dc6
 
承载IP网络容量提升方案
承载IP网络容量提升方案承载IP网络容量提升方案
承载IP网络容量提升方案ssuser220dc6
 
eLTE Tranking Product
eLTE Tranking ProducteLTE Tranking Product
eLTE Tranking Productssuser220dc6
 
Orange Essential 2020
Orange Essential 2020Orange Essential 2020
Orange Essential 2020ssuser220dc6
 
ZTE Leading 5G Innovations
ZTE Leading 5G InnovationsZTE Leading 5G Innovations
ZTE Leading 5G Innovationsssuser220dc6
 
ZTE Video conferconce Product introduction
ZTE  Video conferconce Product introductionZTE  Video conferconce Product introduction
ZTE Video conferconce Product introductionssuser220dc6
 

More from ssuser220dc6 (20)

vBNG-for-Partners
vBNG-for-PartnersvBNG-for-Partners
vBNG-for-Partners
 
WM Topology for Jendela
WM Topology for JendelaWM Topology for Jendela
WM Topology for Jendela
 
IT集成项目交付总结
IT集成项目交付总结IT集成项目交付总结
IT集成项目交付总结
 
中兴通讯xPON ONT产品介绍_20180829.pptx
中兴通讯xPON ONT产品介绍_20180829.pptx中兴通讯xPON ONT产品介绍_20180829.pptx
中兴通讯xPON ONT产品介绍_20180829.pptx
 
huawei company profile
huawei company profile  huawei company profile
huawei company profile
 
1130-15-Feb-23-Frank-Yuan-Huawei.pdf
1130-15-Feb-23-Frank-Yuan-Huawei.pdf1130-15-Feb-23-Frank-Yuan-Huawei.pdf
1130-15-Feb-23-Frank-Yuan-Huawei.pdf
 
Tejas company profile
Tejas company profileTejas company profile
Tejas company profile
 
雄安广电案例
雄安广电案例雄安广电案例
雄安广电案例
 
华为智慧农业解决方案
华为智慧农业解决方案华为智慧农业解决方案
华为智慧农业解决方案
 
Huawei cloud computing
Huawei cloud computingHuawei cloud computing
Huawei cloud computing
 
The_Key_to_Tomorrows_smart_cities
The_Key_to_Tomorrows_smart_citiesThe_Key_to_Tomorrows_smart_cities
The_Key_to_Tomorrows_smart_cities
 
Huawei WiFi6
Huawei WiFi6Huawei WiFi6
Huawei WiFi6
 
震有产品架构简介
震有产品架构简介震有产品架构简介
震有产品架构简介
 
5G Readiness
5G Readiness5G Readiness
5G Readiness
 
承载IP网络容量提升方案
承载IP网络容量提升方案承载IP网络容量提升方案
承载IP网络容量提升方案
 
eLTE Tranking Product
eLTE Tranking ProducteLTE Tranking Product
eLTE Tranking Product
 
5G Marketting
5G  Marketting5G  Marketting
5G Marketting
 
Orange Essential 2020
Orange Essential 2020Orange Essential 2020
Orange Essential 2020
 
ZTE Leading 5G Innovations
ZTE Leading 5G InnovationsZTE Leading 5G Innovations
ZTE Leading 5G Innovations
 
ZTE Video conferconce Product introduction
ZTE  Video conferconce Product introductionZTE  Video conferconce Product introduction
ZTE Video conferconce Product introduction
 

Hadoop系统架构

  • 2. 课程内容  Hadoop发展简介  Hadoop的特性  Hadoop系统架构  Hadoop的组件
  • 3. © ZTE All rights reserved Hadoop的简历  Apache Nutch项目(开源搜索引擎, Lucene项目(文本检索引擎)的一 部分)的一部分:Spider  诞生于2004年  创作者:  Doug Cutting & Michael J.Cafarella  名字&形象代言人:Doug Cutting 自己儿子的玩具——小黄象 Hadoop Lucene Nutch Hadoop
  • 4. © ZTE All rights reserved Hadoop是什么?  一个分布式文件系统和并行执行环境;  让用户便捷地处理海量数据;  Hadoop是大数据领域的事实标准;  用Java编写,支持多种编程语言, 如:Python、C++  借鉴了Google的分布式分件系统和分布 式编程思想。 HDFS MapReduce
  • 5. © ZTE All rights reserved Hadoop大事记  2004年-- 最初的版本(现在称为HDFS和MapReduce)由Doug Cutting和Mike Cafarella 开始实施。  2006年2月-- Apache Hadoop项目正式启动以支持MapReduce和HDFS的独立发展。  2006年5月-- 雅虎建立了一个300个节点的Hadoop研究集群。  2007年4月-- 研究集群达到两个1000个节点的集群。  2008年4月-- 赢得世界最快1 TB数据排序在900个节点上用时209秒,由雅虎研究团队完 成。  2008年10月-- 研究集群每天装载10 TB的数据。  2009年3月-- 17个集群总共24 000台机器。  2009年4月-- 赢得每分钟排序,59秒内排序500 GB(在1400个节点上)和173分钟内排序 100 TB数据(在3400个节点上)。
  • 6. 课程内容  Hadoop发展简介  Hadoop的特性  Hadoop系统架构  Hadoop的组件
  • 7. © ZTE All rights reserved Hadoop的特性  扩容能力:能可靠地存储和处理千兆字节(PB)数据。  成本低:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达 数千个节点。  高效率:通过分发数据,hadoop可以在数据所在的节点上并行地处理它们,这使得处理 非常的快速。  易于管理:磁盘和节点自动管理。  可靠性:hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署计 算任务。  通用性强:可以用于各种类型数据的处理,MapReduce几乎就是标准接口。  社区活跃,衍生产品多。
  • 8. 课程内容  Hadoop发展简介  Hadoop的特性  Hadoop系统架构  Hadoop的组件
  • 9. © ZTE All rights reserved Hadoop生态体系架构
  • 10. © ZTE All rights reserved Hadoop的常见应用
  • 11. © ZTE All rights reserved Hadoop工作流示例
  • 12. © ZTE All rights reserved Hadoop集群结构 DataNode NodeManager Slave NameNode ResourceManager Master DataNode NodeManager Slave DataNode NodeManager Slave NameNode ResourceManager Standby ZooKeeper ZooKeeper ZooKeeper
  • 13. © ZTE All rights reserved 物理分布的Hadoop集群 NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode Zookeeper Rack Switch NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode Zookeeper Rack Switch NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode NodeManager/ DataNode Zookeeper ResourceManager/ NameNode ResourceManager/ NameNode Rack Switch Switch
  • 14. © ZTE All rights reserved Hadoop物理节点部署 Server Linux OS Hadoop Utility JVM Browser NameNode Resource Manager History Server Server Linux OS JVM DataNode Node Manager Master Node Slave Node
  • 15. © ZTE All rights reserved Hadoop的各种版本选择  Apache Hadoop  Hortonworks  Cloudera(CDH:Cloudera Distribution Hadoop)  MapR  ……  选择 Hadoop版本的考虑因素:  是否开源(即是否免费)  是否有稳定版  是否经实践检验  是否有强大的社区支持
  • 16. 课程内容  Hadoop发展简介  Hadoop的特性  Hadoop系统架构  Hadoop的组件
  • 17. © ZTE All rights reserved HDFS简介  HDFS——Hadoop分布式文件系统;  是Hadoop体系中数据存储管理的基础;  为了做到可靠性,创建了多份数据块的副本,并将它们放置在服务器群的计算节点中, MapReduce就可以在它们所在的节点上处理这些数据了。
  • 18. © ZTE All rights reserved HDFS的主要特点  HDFS主要特点:  使用低成本存储和服务器构建;  存放PB级别的海量数据;  高可扩展性,实际生产环境扩展至4000 个节点;  高可靠性和容错性,数据自动复制,可 自我修复;  高带宽,高并发访问,对于延迟不敏感;  面向批处理。  HDFS不适合:  存储小文件 (不建议使用)  大量的随机读 (不建议使用)  需要对文件的修改 (不支持)
  • 19. © ZTE All rights reserved HDFS体系结构
  • 20. © ZTE All rights reserved 什么是MapReduce  MapReduce为离线数据分析 而设计,基本上是个利用数据并 行性进行分布运算而后汇总结 果的计算框架;  适合超大规模且格式复杂的数 据处理。  MapReducev1框架图
  • 21. © ZTE All rights reserved MapReduce流程  Map(映射):对一些独立元素组成的 列表的每一个元素进行指定的操作, 可以高度并行。  Reduce(化简):对一个列表的元素进 行合并。  一个简单的MapReduce程序只需 要指定map()、reduce()、输入和输 出,剩下的事(并行化、容错、数据 分布、负载均衡的等)由框架帮你 搞定。
  • 22. © ZTE All rights reserved MapReduce示例——WordCount
  • 23. © ZTE All rights reserved Apache Hadoop的版本演进
  • 24. © ZTE All rights reserved Yarn 资源管理 任务调度 原JobTracker 功能 ResourceManager ApplicationMaster 原TaskTracker NodeManager 任务监控 Master端 Slave端 YARN架构思路:将原JobTacker三大功能拆分  Hadoop2.0以后, MapReduce1.0中的资源管 理调度功能,被单独分离出 来形成了YARN,它是一个 纯粹的资源管理调度框架。  被剥离了资源管理调度功能 的MapReduce 框架就变成 了MapReduce2.0,它是运 行在YARN之上的一个纯粹 的计算框架。 YARN
  • 25. © ZTE All rights reserved Yarn的框架与功能  JobTracker 和 TaskTracker 已从 YARN 中删 除,取而代之的是一组对应用程序不可知的 新守护程序。  YARN 分层结构的本质是 ResourceManager。 这个实体控制整个集群并管理应用程序向基 础计算资源的分配。ResourceManager 将各 个资源部分(计算、内存、带宽等)精心安 排给基础 NodeManager(YARN 的每节点 代理)。ResourceManager 还与 ApplicationMaster 一起分配资源,与 NodeManager 一起启动和监视它们的基础 应用程序。  Yarn框架图
  • 26. © ZTE All rights reserved ZooKeeper  Zookeeper:动物管理员,可以管理大数据生态系统中的小动物,如: hadoop(大象)、pig(小猪)、hive(蜂巢)等组件,是一种分布式 应用协调系统,可以为分布式应用系统中的不同组件提供协调服务,具 体的,有如下常见应用场景:  为分布式应用系统提供统一的配置管理信息(configuration)  为分布式应用系统提供统一的命名服务(naming)  提供基于简单原语的分布式同步操作(distributed synchronization)  集群管理(group service)
  • 27. © ZTE All rights reserved ZooKeeper基本架构
  • 28. © ZTE All rights reserved Hbase  HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据。  HBase的目标是处理非常庞大的表,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列 元素组成的数据表。 ETL工具 BI报表 RDBMS Pig Hive Sqoop MapReduce HBase HDFS (Hadoop Distributed File System) Zookeeper Avro Hadoop生态系统 Hadoop生态系统中HBase与其他部分的关系
  • 29. © ZTE All rights reserved Hive  Hive是一个构建于Hadoop顶层的数据 仓库工具。  支持大规模数据存储、分析,具有良好 的可扩展性;  依赖分布式文件系统HDFS存储数据;  依赖分布式并行计算模型MapReduce处 理数据;  定义了简单的类似SQL 的查询语言—— HiveQL;  用户可以通过编写的HiveQL语句运行 MapReduce任务。 应用层 报表中心 在线业务 BI Hadoop 数据仓库 Hive Pig HBase Mahout Hadoop MapReduce HDFS
  • 30. © ZTE All rights reserved Impala Cloudera Impala是用来进行大数据查询的补充工具。 Cloudera Impala可以直接为存储在HDFS或Hbase中的Hadoop 数据提供快速、交互式的SQL查询。 除了使用相同的存储平台,Impala与Hive一样也使用了相同的元 数据,SQL语法(Hive SQL),ODBC驱动和用户接口,这就很 方便的为用户提供了一个相似并且统一的平台来进行批量和实时 查询。 Impala主要用于实时查询。  实时查询,秒级返回结果 • Cloudera开发并开源 • MPP模型的分布查询引擎 Hive Hadoop Impala  简化查询逻辑的表达  问题:难以满足探索式分析  存储、处理大量数据  问题:编写查询逻辑的工作 量较大
  • 31. © ZTE All rights reserved Flume  Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
  • 32. © ZTE All rights reserved Kafka  Kafka——分布式发布-订阅消息系统,一般作为企业大数据分析平台的数据交换枢纽,不 同类型的分布式系统可以统一接入到Kafka,实现和Hadoop各个组件之间的不同类型数 据的实时高效交换。它主要处理活跃的流式数据。 特点: • 高吞吐量:同时为发布和订阅提供高 吞吐量,每秒可生产约25万消息 (50MB),处理55万消息 (110MB)。 • 支持online和offline场景。
  • 33. © ZTE All rights reserved Spark  Spark最初由美国加州伯克利大学(UCBerkeley)的AMP实验室于2009年开发,是基于 内存计算的大数据并行计算框架,可用于构建大型的、低延迟的数据分析应用程序。  Spark在2014年打破了Hadoop保持的基准排序纪录  Spark/206个节点/23分钟/100TB数据  Hadoop/2000个节点/72分钟/100TB数据  Spark用十分之一的计算资源,获得了比Hadoop快3倍的速度 Hadoop与Spark执行逻辑回归的时间对比
  • 34. © ZTE All rights reserved Spark生态体系 应用场景 时间跨度 其他框架 Spark生态系统中的组件 复杂的批量数据处理 小时级 MapReduce、Hive Spark 基于历史数据的交互 式查询 分钟级、秒级 Impala 、 Dremel 、 Drill Spark SQL 基于实时数据流的数 据处理 毫秒、秒级 Storm、S4 Spark Streaming 基于历史数据的数据 挖掘 - Mahout MLlib 图结构数据的处理 - Pregel、Hama GraphX
  • 35. © ZTE All rights reserved Spark Streaming  Spark Streaming 是一个对实时数据流进行高吞吐、高容错的流式处理系统,可以对多种数据源(如 Kafka、Flume、Twitter 和ZeroMQ 等)进行类似Map、Reduce 和Join 等复杂操作,并将结果保存 到外部文件系统、数据库或应用到实时仪表盘。应用:实时流量分析、实时日志分析。
  • 36. © ZTE All rights reserved Storm  Storm是一个免费开源、分布式、高容错的实时计算系统。Storm令持 续不断的流计算变得容易,弥补了Hadoop批处理所不能满足的实时要 求。Storm经常用于在实时分析、在线机器学习、持续计算、分布式远 程调用和ETL等领域。  应用:  一淘-实时分析系统pora:实时分析用户的属性,并反馈给搜索引擎。实时分析用户 的行为日志,能够为用户展现最贴近其当前需求的结果。  携程-网站性能监控:实时分析系统监控携程网的网站性能,通过历史数据对比等判 断规则,触发预警事件。
  • 37. © ZTE All rights reserved Spark与Storm对比  应用场景:  Storm  需要纯实时,不能忍受1秒以上延 迟的场景下使用,比如实时金融系 统要求实时金融交易与分析。实时 性更强!  Spark  一个项目除了实时计算之外,还包 括了离线批处理、交互式查询等业 务功能,那么就应该首选Spark。 综合处理能力强,吞吐量大! 比较点 Storm Spark Streaming 实时计算模型 纯实时 准实时 实时计算延迟 毫秒级 秒级 吞吐量 低 高 事务机制 支持完善 支持,但不够完善 健壮性/容错性 非常强 一般 动态调整并行度 支持 不支持

Editor's Notes

  1. 2008年1月,Hadoop已成为Apache顶级项目,证明它是成功的。通过这次机会,Hadoop成功地被雅虎之外的很多公司应用,如Facebook、纽约时报等。特别是纽约时报,它使用运行在亚马逊的EC2云计算上Hadoop,将4TB的报纸扫描文档压缩,转换为用于Web的PDF文档,这个过程历时不到24小时,使用100台机器运行,这成为Hadoop一个良好的宣传范例。 2008年2月,雅虎宣布其索引网页的生产系统采用了在10000多个核的Linux集群上运行的Hadoop。Hadoop真正达到了万维网的规模。2008年4月,在一个900节点的Hadoop集群上,雅虎的研究人员运行1TB的Jim Gray基准排序,只用了209秒。 2009年4月,在一个1400节点的集群上对500GB数据进行排序,只用了59秒,这显示了Hadoop强大的计算能力。
  2. 目前最多4000个节点 扩容能力:能可靠地存储和处理千兆字节(PB)数据。 成本低:可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。 高效率:通过分发数据,hadoop可以在数据所在的节点上并行地处理它们,这使得处理非常的快速。 易于管理:磁盘和节点自动管理。 可靠性:hadoop能自动地维护数据的多份复制,并且在任务失败后能自动地重新部署计算任务。 通用性强:可以用于各种类型数据的处理,MapReduce几乎就是标准接口。 社区活跃,衍生产品多。
  3. 应用趋势,越来越注重实时分析
  4. MapReduce实现了Map和Reduce两个功能 Map把一个函数应用于集合中的所有成员,然后返回一个基于这个处理的结果集 Reduce对结果集进行分类和归纳 在同一个计算作业,Map()和 Reduce() 两个函数可以分别并行运行 不同的计算作业,只要计算资源足够,在同一时刻也可以并行运行 MapReduce 框架的核心优势(一)   1. 高度可扩展,可动态增加/削减计算节点,真正实现弹性计算。   2. 高容错能力,支持任务自动迁移、重试和预测执行,不受计算节点故障影响。   3. 公平调度算法,支持优先级和任务抢占,兼顾长/短任务,有效支持交互式任务。 MapReduce 框架的核心优势(二):   4. 就近调度算法, 调度任务到最近的数据节点,有效降低网络带宽。   5. 动态灵活的资源分配和调度,达到资源利用最大化,计算节点不会出现闲置和过载的情况;同时支持资源配额管理。   6. 经过大量实际生产环境使用和验证,最大集群规模在 4000 个计算节点。
  5. 视频分析和检索 推荐引擎 数据分析手段 全文挖掘 建立索引 图形创建和分析 模式识别 协同过滤 情感分析 风险评估
  6. ResourceManager整个集群只有一个,负责集群资源的统一管理和调度。HA时可以多个。 详细功能 处理客户端请求 启动/监控AppliactionMaster 监控NodeManager 资源分配与调度 ApplicationMaster每个应用有一个,负责应用程序的管理 详细功能 数据切分 为应用程序申请资源,并进一步分配给内部任务 任务监控与容错 ApplicationMaster 管理一个在 YARN 内运行的应用程序的每个实例。ApplicationMaster 负责协调来自 ResourceManager 的资源,并通过 NodeManager 监视容器的执行和资源使用(CPU、内存等的资源分配)。请注意,尽管目前的资源更加传统(CPU 核心、内存),但未来会带来基于手头任务的新资源类型(比如图形处理单元或专用处理设备)。 Nodemanager整个集群有多个,负责单节点资源管理和使用 详细功能 单个节点上的资源管理和任务管理 处理来自ResourceManager的命令 处理来自AppliactionMaster的命令 NodeManager 管理一个 YARN 集群中的每个节点。NodeManager 提供针对集群中每个节点的服务,从监督对一个容器的终生管理到监视资源和跟踪节点健康。MRv1 通过插槽管理 Map 和 Reduce 任务的执行,而 NodeManager 管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。 Container对任务运行环境的抽象,每个任务一个Container 描述一系列信息 任务运行资源(节点、内存、CPU) 任务启动命令 任务运行环境 双层调度框架 RM将资源分配给AM AM将资源进一步分配给各个Task
  7. Zookeeper本身也是一个分布式系统,是1个由多台server服务器节点组成的集群。 Zookeeper系统中主要有3种角色:leader、follower 和 observer。 Leader是zookeeper系统中的核心控制节点,通过集群的leader 选举过程,从server节点中选举出来,负责系统数据的更新(投票过程)。 Follower对外接受client端的连接请求,处理来自客户端的请求并返 回响应,对内连接到leader上,转发来自客户端的数据更新请求,接 受并处理来自leader的数据更新请求(proposal+commit),参加leader的投票等。 Observer和follower很类似,不同之处主要是observer不参加leader选择的投票。 集群内的所有Server之间互相连接,当超过半数(N/2+1)的Server可用时,整个集群可用,对外提供服务 Client需要保存一个所有Server的列表,启动时随机连接到一个Server,故障时尝试连接其他Server Client的读请求由所连接的Server本地处理;写请求则会首先在Server之间传播,成功后再回复Client 。 Zookeeper会严格保证操作的时序,每个操作都会有一个全局的zxid