《浅谈大数据生态圈课件.ppt》由会员分享,可在线阅读,更多相关《浅谈大数据生态圈课件.ppt(22页珍藏版)》请在三一办公上搜索。
1、,浅谈大数据生态体系,Talking about big data ecosystem,何为大数据,大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据的特点:一是数据体量巨大。至少是PB级别以上量级的数据二是数据类型多样。现在的数据类型不仅是文本形式,更多的是图片、视频、音频、地理位置信息等多类型的数据,个性化数据占绝对多数。三是处理速度快。数据处理遵循“1秒定律”,可从各种类型的数据中快速获得高价值的信息。四是价值密度低。以视频为例,一小时的视频,在不间断的监控过程中,可能有用的数据仅仅只有一两秒。,3,大数据,首先你要能存的下大数据,传统的文件系统是单机
2、的,不能横跨不同的机器。HDFS(Hadoop Distributed FileSystem)的设计本质上是为了大量的数据能横跨成百上千台机器,但是你看到的是一个文件系统而不是很多文件系统。比如你说我要获取/hdfs/tmp/file1的数据,你引用的是一个文件路径,但是实际的数据存放在很多不同的机器上。你作为用户,不需要知道这些,就好比在单机上你不关心文件分散在什么磁道什么扇区一样。HDFS为你管理这些数据。,4,那什么是HDFS(Hadoop Distributed FileSystem)?,一个分布式存储系统 Google GFS的开源实现 数据存储采用master/slave架构模式,
3、主要由Client、 NameNode、Secondary NameNode和DataNode组成,5,HDFS:体系结构示意图,NameNode管理文件系统的命名空间和客户端对文件的访问操作。DataNode 负责处理文件系统客户端的文件读写请求,并在 NameNode 的统一调度下进行数据块的创建、删除和复制工作。,Client,NameNode,DataNode,block,block,block,block,block,.,DataNode,block,block,block,block,block,.,.,DataNode,block,block,block,block,block,
4、.,数据请求,读写文件相关操作,处理数据,6,存的下数据之后,你就开始考虑怎么处理数据,虽然HDFS可以为你整体管理不同机器上的数据,但是这些数据太大了。一台机器读取成TB或者PB量级的数据,一台机器慢慢跑也许需要好几天甚至好几周。对于很多公司来说,单机处理是不可忍受的,比如微博要更新24小时热博,它必须在24小时之内跑完这些处理。那么我如果要用很多台机器处理,我就面临了如何分配工作,如果一台机器挂了如何重新启动相应的任务,机器之间如何互相通信交换数据以完成复杂的计算等等。为了解决以上可能出现的问题,人们正式提出了MapReduce / Tez / Spark等等框架。MapReduce是第一
5、代计算编程模型,Tez和Spark是第二代。MapReduce的设计,采用了极简化的计算模型,只有Map和Reduce两个计算过程,通过这个模型,已经可以处理大数据领域很大一部分问题了。,7,Hadoop 概述,Hadoop 是 Apache 软件基金会旗下的一个开源分布式计算平台。以 Hadoop 分布式文件 系统(HDFS,Hadoop Distributed File System)和 MapReduce(Google MapReduce 的开源实现)为核心的 Hadoop,为用户提供了系统底层细节透明的分布式基础架构。,HDFS 的高容错性、高伸缩性等优点允许用户将 Hadoop 部署
6、在低廉的硬件上, 形成分布式系统; MapReduce 分布式编程模型允许用户在不了解分布式系统底层细节的情况下开发并行应用程序。所以,用户可以利用 Hadoop 轻松地组织计算机资源,从而搭建自己的分布式计算平台,并且可以充分利用集群的计算和存储能力,完成海量数据的处理,8,什么是MapReduce?,找出一仓库黄豆中最大的n个黄豆,如何解决?,找N个人一起筛黄豆,最后把每个人筛出的K个黄豆放在一起 (总共N*K个黄豆),再交由一个人筛出N*K个黄豆里最大的K个 (分布式计算),MAP,Reduce,9,MapReduce模型概述,一个 MapReduce 作业(job)通常会把输入的数据集
7、切分为若干独立的数据块,由 map 任务(task)以完全并行的方式处理它们。框架会对 map 的输出先进行排序,然后把结果输入给 reduce 任务。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。,10,Map-Reduce 流程,MapReduce 模型首先将用户的原始数据源进行分块,然后分别交给不同的 Map 任务区处理。Map 任务从输入中解析出 Key/Value 对集合,然后对这些集合执行用户自行定义的 Map 函数得到中间结果,并将该结果写入本地硬盘。Reduce 任务从硬盘上读取数据之后, 会根据 key 值进行排序,将具
8、有相同 key 值的组织在一起。最后用户自定义的 Reduce 函数会作用于这些排好序的结果并输出最终结果。,11,MapReduce的缺点,Hadoop的一个最主要缺陷: MapReduce计算模型延迟过高,无法胜任实时、快速计算的需求,因而只 适用于离线批处理的应用场景。1、表达能力有限:计算都必须要转化为Map和Reduce两个操作,但这并不是适合所有的情况,难以描述复杂的数据处理过程; 2、磁盘IO开销大:每次执行时都需要从磁盘读取数据,并且在计算完成后需要将中间结果写入磁盘,IO开销较大; 3、延迟高:一次计算可能需要分解成一系列按顺序执行的MapReduce任务,任务之间的衔接由于
9、涉及到IO开销,会产生较高的延迟。而且在前一任务执行完成之前,其他任务无法开始,因此难以胜任复杂、多阶段 的计算任务。,12,第二代计算框架Spark,尽管MapReduce极大的简化了大数据分析,但是随着大数据需求和使用模式的扩大,用户的需求也越来越多,MapReduce显得力不从心1. 更复杂的多重处理需求(比如迭代计算, 机器学习(ML),图算法Graph);2. 低延迟的交互式查询需求而MapReduce计算模型的架构导致上述两类应用先天缓慢,用户迫切需要一种更快的计算模型,来补充MapReduce的先天不足。于是,Spark就出现了,13,Spark架构,14,Spark的优点,(1
10、)运行速度快:Spark使用先进的DAG执行引擎,以支持循环数据流和内存计算,基于内存的执行速度可比Hadoop MapReduce快上百倍,基于磁盘的执行速度也能快十倍; (2)易使用:Spark支持使用Scala、Java、Python和R语言进行编程,简洁的API设计有助于用户轻松构建并行程序。 (3)通用性:Spark提供了完整而强大的技术栈,包括SQL查询 (Spark SQL)、流式计算(Spark Streaming)、机器学习(MLlib) 和图算法(GraphX)组件; (4)运行模式多样:Spark可以运行于独立的集群模式中,或运行于 Hadoop中,也可以运行于Amazo
11、n EC2等云环境中,并且可以访问 HDFS、HBase、Hive等多种数据源;,15,HBase数据库,HBase的特点?大:一个表可以有上亿行,上百万列;面向列:面向列(族)的存储和权限控制,列(族)独立检索;稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计得非常稀疏。,HBase的是啥?HBase建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。它介于NoSQL和RDBMS之间,仅能通过行键(row key)和行键序列来检索数据,仅支持单行事务(可通过Hive支持来实现多表联合等复杂操作)。主要用来存储非结构化和半结构化的松散数据。与Had
12、oop一样,HBase目标主要依靠横向扩展,通过不断增加廉价的商用服务器,来增加计算和存储能力。,16,Hbase的架构,17,Hive介绍,Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。,Hive和Hbase区别,Hive:Hive是Hadoop数据仓库,严格来说,不是数据库,主要是让开发人员能够通过SQL来计算和处理HDFS上的结构化数据,适用于离线的批量数据计算。通过Hive可以使用HQL语言查询存放在HDFS上的数据。HQL
13、是一种类SQL语言,这种语言最终被转化为Map/Reduce。应用场景: Hive适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。Hbase非常适合用来进行大数据的实时查询。Facebook用Hbase进行消息和实时的分析。它也可以用来统计Facebook的连接数。,18,Hive是一个数据仓库,那么Hive和传统意义上的数据库有什么不一样的呢?1.hive和关系数据库存储文件的系统不同,hive使用的是hadoop的HDFS(hadoop的分布式文件系统),关系数据库则是服务器本地的文件系统.2.h
14、ive使用的计算模型是mapreduce,而关系数据库则是自己设计的计算模型.3.关系数据库都是为实时查询的业务进行设计的,而hive则是基于hadoop的,是为海量数据做数据挖掘设计的,实时性很差;实时性的区别导致hive的应用场景和关系数据库有很大的不同。4.Hive很容易扩展自己的存储能力和计算能力,这个是继承hadoop的,而关系数据库在这个方面要比数据库差很多。,19,1. 低延迟和高性能2. 可扩展3. 高可靠性4. 高容错性5. 编程模型简单6. 支持多种编程语言7. 支持本地模式,Storm特性,20,Storm框架设计,Storm集群有两种节点:控制(Master)节点和工作者(Worker)节点。 Master节点运行一个称之为“Nimbus”的后台程序,负责在集群范围内分发代码、为worker分配任务和故障监测。 每个Worker节点运行一个称之“Supervisor”的后台程序,监听分配给它所在机器的工作,基于Nimbus分配给它的事情来决定启动或停止工作者进程。,21,THANKS,22,