加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 襄阳站长网 (https://www.0710zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

什么是大数据?现在发展怎么样?

发布时间:2022-10-13 12:30:53 所属栏目:大数据 来源:
导读:  大数据是指海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。

  大数据的4V特征,即Variety(多样化)、Volume(大量化)、Velocity
  大数据是指海量数据或巨量数据,其规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策。
 
  大数据的4V特征,即Variety(多样化)、Volume(大量化)、Velocity(快速化)、Value(价值密度低)。如下图所示。其中,Variety表示来源多和格式多,数据可以来源于搜索引擎、社交网络、通话记录、传感器等等,这些数据要么以结构化形式存储,要么以非结构化数据存储;Volume表示数据量比较大,从TB级别,跃升到PB级别。尤其是在移动互联时代,视频、语言等非结构化数据快速增长;Velocity表示数据存在时效性,需要快速处理,并得到结果出来,这一点也是和传统的数据挖掘技术有着本质的区别;Value表示大量不相关信息,不经过处理则价值较低,属于价值密度低的数据。
 
  大数据处理流程
 
  一般的大数据处理流程都有以下几个过程:数据采集、数据存储、数据处理、数据展现。如下图所示。
 
  在大数据时代,由于数据种类多,数据大,从结构化的数据到非结构化的数据,数据采集的形式也变得更加复杂而多样。
 
  当存储技术的发展变得步履蹒跚,赶不上数据发展的速度时,分布式存储成为了必然选择,非结构型数据也对存储格式提出了新的要求。层出不穷的数据源也使得数据量产生了井喷似的迅猛增长。此时分布式存储与NoSQL的诞生回应了这样的需求,解决了大数据存储的根本难题。
 
  数据处理包括数据计算、分析,这部分是大数据技术的核心大数据时代,本文剩余部分将详细介绍这部分。数据展示指的是通过提供报表等可视化界面反应目前平台或业务运行的各项指标。
 
  大数据的演进
 
  提到大数据技术,最基础和核心的仍是大数据的分析和计算。在2017年,大数据分析和计算技术仍旧在飞速的发展,无论老势力Hadoop还是当红小生Spark,亦或是人工智能,都在继续自己的发展和迭代。
 
  目前绝大部分传统数据计算和数据分析服务均是基于批量数据处理模型:使用ETL系统或OLTP系统进行构造数据存储,在线的数据服务通过构造SQL语言访问上述数据存储并取得分析结果。这套数据处理的方法伴随着关系型数据库在工业界的演进而被广泛采用。但在大数据时代下,伴随着越来越多的人类活动被信息化、进而数据化,越来越多的数据处理要求被实时化、流式化。Andrew NG揭示大数据未来发展的趋势就是人工智能。下面将对批量计算、流式计算以及人工智能进行详细介绍,其中人工智能部分将在下一期中介绍。
 
  批量计算
 
  传统的批量数据处理模型通常基于如下处理模型:
 
  1. 使用ETL系统或者OLTP系统构造原始的数据存储,以提供后续的数据服务进行数据分析和数据计算。如下图所示,用户装载数据,系统根据自己的存储和计算情况,对于装载的数据进行索引构建等一些列查询优化工作。因此,对于批量计算,数据一定需要加载到计算机系统,后续计算系统才在数据加载完成后方能进行计算。
 
  2. 用户或系统主动发起一个计算作用并向上述数据系统进行请求。此时计算系统开始调度(启动)计算节点进行大量数据计算,该过程的计算量可能巨大,耗时长达数分钟乃至数小时。同时,由于数据累计的不可及时性,上述计算过程的数据一定是历史数据,无法保证数据的实时性。
 
  3. 计算结果返回,计算作业完成后将数据以结果集形式返回用户,或者可能由于计算结果数量巨大保存着数据计算系统中,用户进行再次数据集成到其他系统。一旦数据结果巨大,整体的数据集成过程漫长,耗时可能长达数分钟乃至数小时。
 
  典型代表:Hadoop
 
  Hadoop是Apache的一个开源项目,是可以提供开源、可靠、可扩展的分布式计算工具。它主要包括HDFS和MapReduce两个组件,分别用于解决大数据的存储和计算。
 
  HDFS是独立的分布式文件系统,为MapReduce计算框架提供存储服务,具有较高的容错性和高可用性,基于块存储以流数据模式进行访问,数据节点之间项目备份。默认存储块大小为64M,用户也可以自定义大小。
 
  HDFS是基于主从结构的分布式文件系统,结构上包括NameNode目录管理、DataNode的数据存储和Client的访问客户端3部分。NameNode主要负责系统的命名空间、集群的配置管理以及存储块的复制;DataNode是分布式文件系统存储的基本单元;Client为分布式文件系统的应用程序。
 
  NameNode通过主从模式实现高可用性,但是在以前的版本,Standby只能是一个主机。为了实现更高的可靠性,在Hadoop3.0中可以配置超过一个的Standby的NameNode,从而保证更高的可靠型。对于数据存储,HDFS采用的是多副本的方式来存储数据,即Client将数据首先通过NameNode获取数据将要存储在哪些DataNode上,之后这些存储到最新数据的DataNode将变更数据以同步或异步方式同步到其他DataNode上。但是这几年数据规模的增加远远大于人的想象,而这些产生的数据,必然会存在冷热数据的区分。无论冷热,数据对于一个公司都是核心资产,谁都不想数据丢失。可是对于冷数据,如果采用多副本方式,会浪费大量的存储空间。在Hadoop3.0之后,采用Erasure Coding可以大大的降低数据存储空间的占用。对于冷数据,可以采用EC来保存,这样才能降低存储数据的花销,而需要时,还可以通过CPU计算来读取这些数。
 
  MapReduce是一种分布式计算框架,适用于离线大数据计算。采用函数式编程模式,利用Map和Reduce函数来实现复杂的并行计算,主要功能是对一个任务进行分解,以及对结果进行综合汇总。其中,Map的主要功能是把一个作业任务分解成多个子任务,然后发送到对应的节点服务器中,接着进行并行计算。Reduce的主要功能把并行计算得到的结果进行归并后得到的结果返回到中央服务器。
 
  具体来说,MapReduce是将那些没有经过处理的海量数据进行数据分片,即分解成多个小数据集;每个Map并行地处理每一个数据集中的数据,然后将结果存储为,并把key值相同的数据进行归并发送到Reduce处理。原理如下图所示。
 
  流计算
 
  不同于批量计算模型,流式计算更加强调计算数据流和低时延,流式计算数据处理模型如下:
 
  1. 使用实时集成工具,将数据实时变化传输到流式数据存储(即消息队列,如RabbitMQ);此时数据的传输编程实时化,将长时间累积大量的数据平摊到每个时间点不停地小批量实时传输,因此数据集成的时延得以保证。
 
  2. 数据计算环节在流式和批量处理模型差距更大,由于数据集成从累计变成实时,不同于批量计算等待数据集成全部就绪后才启动计算作业,流式计算作业是一种常驻计算服务,一旦启动将一直处于等待事件触发的状态,一旦小批量数据进入流式数据存储,流计算立刻计算并迅速得到结果。
 
  3. 不同于批量计算结果数据需要等待数据计算结果完成后,批量将数据传输到在线系统;流式计算作业在每次小批量数据计算后可以立刻将数据写入在线系统,无需等待整个数据的计算结果,可以立刻将数据结果投递到在线系统,进一步做到实时计算结果的实时化展现。
 
  成过程漫长,耗时可能长达数分钟乃至数小时。
 
  典型代表:Hadoop
 
  Hadoop是Apache的一个开源项目,是可以提供开源、可靠、可扩展的分布式计算工具。它主要包括HDFS和MapReduce两个组件,分别用于解决大数据的存储和计算。
 
  HDFS是独立的分布式文件系统,为MapReduce计算框架提供存储服务,具有较高的容错性和高可用性,基于块存储以流数据模式进行访问,数据节点之间项目备份。默认存储块大小为64M,用户也可以自定义大小。
 
  HDFS是基于主从结构的分布式文件系统,结构上包括NameNode目录管理、DataNode的数据存储和Client的访问客户端3部分。NameNode主要负责系统的命名空间、集群的配置管理以及存储块的复制;DataNode是分布式文件系统存储的基本单元;Client为分布式文件系统的应用程序。
 
  NameNode通过主从模式实现高可用性,但是在以前的版本,Standby只能是一个主机。为了实现更高的可靠性,在Hadoop3.0中可以配置超过一个的Standby的NameNode,从而保证更高的可靠型。对于数据存储,HDFS采用的是多副本的方式来存储数据,即Client将数据首先通过NameNode获取数据将要存储在哪些DataNode上,之后这些存储到最新数据的DataNode将变更数据以同步或异步方式同步到其他DataNode上。但是这几年数据规模的增加远远大于人的想象,而这些产生的数据,必然会存在冷热数据的区分。无论冷热,数据对于一个公司都是核心资产,谁都不想数据丢失。可是对于冷数据,如果采用多副本方式,会浪费大量的存储空间。在Hadoop3.0之后,采用Erasure Coding可以大大的降低数据存储空间的占用。对于冷数据,可以采用EC来保存,这样才能降低存储数据的花销,而需要时,还可以通过CPU计算来读取这些数。
 
  MapReduce是一种分布式计算框架,适用于离线大数据计算。采用函数式编程模式,利用Map和Reduce函数来实现复杂的并行计算,主要功能是对一个任务进行分解,以及对结果进行综合汇总。其中,Map的主要功能是把一个作业任务分解成多个子任务,然后发送到对应的节点服务器中,接着进行并行计算。Reduce的主要功能把并行计算得到的结果进行归并后得到的结果返回到中央服务器。
 
  具体来说,MapReduce是将那些没有经过处理的海量数据进行数据分片,即分解成多个小数据集;每个Map并行地处理每一个数据集中的数据,然后将结果存储为,并把key值相同的数据进行归并发送到Reduce处理。
 

(编辑:PHP编程网 - 襄阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!