浅谈大数据生态圈ppt课件
• 对于很多公司来说,单机处理是不可忍受的,比如微博要更新24小时热博,它 必须在24小时之内跑完这些处理。那么我如果要用很多台机器处理,我就面临 了如何分配工作,如果一台机器挂了如何重新启动相应的任务,机器之间如何 互相通信交换数据以完成复杂的计算等等。
• 为了解决以上可能出现的问题,人们正式提出了MapReduce / Tez / Spark等等 框架。MapReduce是第一代计算编程模型,Tez和Spark是第二代。MapReduce 的设计,采用了极简化的计算模型,只有Map和Reduce两个计算过程,通过这 个模型,已经可以处理大数据领域很大一部分问题了。
• DataNode 负责处 理文件系统客户端 的文件读写请求, 并在 NameNode 的统一调度下进行 数据块的创建、删 除和复制工作。
6
存的下数据之后,你就开始考虑怎么处理数据
• 虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机 器读取成TB或者PB量级的数据,一台机器慢慢跑也许需要好几天甚至好几周。
block block
block .......
DataNode block block
block block
block .......
.......
NameNode
处理数据
DataNode block block block block
block .......
• NameNode管理文 件系统的命名空间 和客户端对文件的 访问操作。
• 一个分布式存储系统 • Google GFS的开源实现 • 数据存储采用master/slave架构模式,主要由Client、 NameNode、
Secondary NameNode和DataNode组成
5
HDFS:体系结构示意图
Client
读写文件 相关操作
数据请求
DataNode block block
10
Map-Reduce 流程
MapReduce 模型首先将用户的原始数据源进行分块,然后分别交给不同的 Map 任务区处理。Map 任务从输入中解析出 Key/Value 对集合,然后对这些集合执行用户自行定义的 Map 函数得到中间 结果,并将该结果写入本地硬盘。Reduce 任务从硬盘上读取数据之后, 会根据 key 值进行排序, 将具有相同 key 值的组织在一起。最后用户自定义的 Reduce 函数会作用于11这些排好序的结果并输 出最终结果。
MapReduce的缺点
Hadoop的一个最主要缺陷: MapReduce计算模型延迟过高,无法胜任实时、快 速计算的需求,因而只 适用于离线批处理的应用场景。 1、表达能力有限:计算都必须要转化为Map和Reduce两个操作,但这并不是适 合所有的情况,难以描述复杂的数据处理过程; 2、磁盘IO开销大:每次执行时都需要从磁盘读取数据,并且在计算完成后需要 将中间结果写入磁盘,IO开销较大; 3、延迟高:一次计算可能需要分解成一系列按顺序执行的MapReduce任务,任 务之间的衔接由于涉及到IO开销,会产生较高的延迟。而且在前一任务执行完成 之前,其他任务无法开始,因此难以胜任复杂、多阶段 的计算任务。
音频、地理位置信息等多类型的数据,个性化数据占绝对多数。 • 三是处理速度快。数据处理遵循“1秒定律”,可从各种类型的数据中快速获得
高价值的信息。 • 四是价值密度低。以视频为例,一小时的视频,在不间断的监控过程中,可能
有用的数据仅仅只有一两秒。
3
大数据,首先你要能存的下大数据
• 传统的文件系统是单机的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成 百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。
8
什么是MapReduce?
找出一仓库黄豆中最大的n个黄豆 如何解决?
找N个人一起筛黄豆,最后把每 个人筛出的K个黄豆放在一起 (总共N*K个黄豆),再交由一 个人筛出N*K个黄豆里最大的K 个 (分布式计算)
一仓库黄豆
一桶
一桶
黄豆
黄豆
……
一桶 黄豆
一桶 黄豆
筛子
筛子 MAP 筛子
筛子
黄
黄
豆
豆
黄
黄
7
Hadoop 概述
Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台。以 Hadoop 分布式文件 系统(HDFS,Hadoop Distributed File System)和 MapReduce (Google MapReduce 的开源实现)为核心的 Hadoop,为用户提供了系统底 层细节透明的分布式基础架构。 HDFS 的高容错性、高伸缩性等优点允许用户将 Hadoop 部署在低廉的硬件上, 形成分布式系统; MapReduce 分布式编程模型允许用户在不了解分布式系统 底层细节的情况下开发并行应用程序。所以,用户可以利用 Hadoop 轻松地 组织计算机资源,从而搭建自己的分布式计算平台,并且可以充分利用集群 的计算和存储能力,完成海量数据的处理
浅谈大数据生态体系
Talking about big data ecosystem
何为大数据
• 大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、 管理和处理的数据集合。
• 大数据的特点: • 一是数据体量巨大。至少是PB级别以上量级的数据 • 二是数据类型多样。现在的数据类型不仅是文本形式,更多的是图片、视频、
豆
豆
一桶 黄豆
R筛ed子uce 黄
9
豆
MapReduce模型概述
• 一个 MapReduce 作业(job)通常会把输入的数据集切分为若干独立的数据块, 由 map 任务(task)以完全并行的方式处理它们。框架会对 map 的输出先进 行排序,然后把结果输入给 reduce 任务。通常作业的输入和输出都会被存储在 文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。
• 比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路 径,但是实际的数据存放在很多不同的机器上。你作为用户,不需 要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇 区一样。HDFS为你管理这些数据。
4
那什么是HDFS(Hadoop Distributed FileSystem)?