大数据的威力,它可能知道你何时在啪啪啪。
发布时间:2023-09-06 14:08:02
发布时间:2023-09-06 14:08:02
海量数据的威力
人们在形容一个事物非常大或者非常多的时候,往往喜欢用“海量”这个词,比如说某某某的酒量很大就称其为海量,所以在形容数据量非常大的时候,就有了“海量数据”一词,海量数据所表现出来的“大”绝对不是一般意义上的大,而是像大海一样趋于无限的“大”,是一种“大”到可怕的大,之所以会形成海量数据的主要原因在于现代社会人类快节奏的生活方式和信息互联网技术的高速发展,每天都会产生大量非结构化和半结构化的数据,这些数据中蕴含了许多潜在的商业价值和客观规律,所以只有进行了充分的分析和挖掘才能将有效的和有价值的信息提取出来,从而更好的指导人们的生产实践,创造出更多的财富。虽然海量数据和大数据的概念从提出到现在已经过去了10多年的时间,已经不再算是什么特别新鲜的技术了,但是通过这些年来大数据行业的发展可以看出,大数据确实在改变着我们的生活与工作方式,让人们越来越多的体会到了数据的价值和重要性。与此同时也延展出了很多新的产业。
网络计算
如果从技术发展史来看,大数据脱胎于网格计算、云计算和分布式系统,在一些方面和网格计算是比较相像的,所以我们稍微说下网格计算,网格计算的目标是研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算资源空闲的计算机进行并行处理,最后把这些计算结果汇总起来得到最终结果,可以看出网格计算主要想解决的是计算力的问题,属于一种分布式计算系统。如果形象描述的话就是“将民间空闲的电脑利用起来,集群形成一个强大的超级计算机,从而完成大规模的计算任务”,效果和“蚂蚁搬山”是一样的,往往用于解决复杂的数学问题和科学研究等高性能计算项目,可以大大的节省项目成本。
大数据及其关键技术
世界上最先提出和实现大数据技术方案的是美国的谷歌公司,他们通过三篇重量级的论文:《The Google File System》、《MapReduce: Simplified Data Processing on Large Clusters》和《Bigtable: A Distributed Storage System for Structured Data》开启了大数据技术的大门,这三篇论文属于大数据从业人员必读的经典之作,其中分别详细介绍了大数据技术的三驾马车:分布式文件系统—Google FS、分布式计算模型—Map Reduce和分布式数据库系统—Big Table。下面将分别从分布式系统、GFS、MapReduce和BigTable四个方面进行介绍:
分布式系统
分布式系统是一种建立在计算机网络之上的软件系统,系统通过一组计算机的集群,将分散的物理和逻辑资源通过网络统一起来,对于用户提交的任务将以一种动态的方式进行管理分配和资源调度,而最终呈现给用户的则是一个全局的、统一的整体。
其实分布式系统之所以能有今天的成就要得力于计算机网络的重大发展,因为网络技术大大减少了数据传输所需要的时间,尤其在局域网内,网络的峰值速率是非常快的,这里我们展示一下目前局域网内网络速率的情况,普通交换机/路由器的端口速率可达到1000Mbps,说Mbps大家可能不太直观,换算成字节的话就是说传一个125M大小的文件只需要1s,你可能认为这已经很快了,但是这只是普通网络设配的速率,在光通信技术如此强大的今天,10Gbps、100Gbps速率的通信设备已经非常常见了,也就是说1.25G或者12.5G的文件最快1s就可以传完。所以数据的传递和大量信息的交换已经不再是什么问题了。每当系统整体性能出现瓶颈的时候,只需要扩展增加计算机即可解决。
MapReduce
MapReduce是一种计算或者编程模型,能够将大的问题分解成许多相同类型的子问题,对子问题求解,然后合并成大问题的解,常用于大规模数据的并行运算,能够自动划分数据集和分配计算任务到各个集群节点上,并且自动收集最终的计算结果,MapReduce主要由Map(映射)、Shuffle(归类)和Reduce(归约)几个阶段构成,在Map阶段输入数据被抽取出键值对的形式,然后Shuffle阶段把所有相同键的键值对归为一类,最后由Reduce将同一键对应的一组值进行聚合,获得最终的输出结果。由于Map任务之间、Reduce任务之间是相互独立的,所以可以实现大规模的并发执行。这里需要说明的是MapReduce的使用场景,也是很多初学者不太注意的地方,就是MapReduce只适合那些批量的操作场景中,而不是说所有的计算类问题都能够用MapReduce来解决。
GFS
GFS是谷歌公司为了存储海量数据而设计的专用文件系统,解决的是数据的存储问题,GFS中一个大的文件,比如10PB的文件,会被划分成许多许多的文件块,然后系统将这些块按照一定的方式和冗余度存储到各个不同的物理设备上,在保证数据读写速率的同时也实现了数据的高可靠性。由于GFS只在谷歌内部使用,所以业界用的最多的是其对应的开源版本HDFS,即Hadoop分布式文件系统,不管是GFS还是HDFS都需要注意的是:最适合存大文件,不适合存储小文件,因为系统设计的初衷就只是为大数据的场景设计的,小文件也可以存,但是由于文件块的机制从而会造成空间的巨大浪费。
BigTable
BigTable解决的是海量数据高效查询的问题,开源实现的版本叫做Hbase,是一种面向列的Nosql数据库,非常适合存储海量的非结构化数据,比如几十亿行甚至上百亿行的大表,BigTable是一个非常强大的非关系型数据库,主要通过四个维度来描述和记录数据,分别是:行键、列簇、列和版本,其中的行键类似于关系型数据库中的主键和索引的作用,列簇可以理解为由多个列组成的集合,系统在对数据进行存储和查询时也是在列簇的层面上进行的,而列则相当于传统数据库中的一个字段,最后一个是版本的概念,由行键和列所确定的一个存储单元会保存同一份数据的多个版本,版本通过时间戳来索引。BigTable特点主要体现在:实时响应快、稀疏数据占用空间少、数据多版本和单一类型方面。不过Hbase毕竟和传统数据库不一样,我们不能像使用mysql那样使用Hbase。需要注意的是Hbase不支持SQL查询,只适合做一些简单的查询,比如SQL中的groupby等复杂查询就不能完成。
Hadoop生态圈
虽然大数据技术是由谷歌首先实现的,但是并未开源免费,所以一段时间内很多其它公司只能望洋兴叹了,后来Apache基金会在参考谷歌大数据论文的基础上开发了一个分布式系统基础架构,这就是Hadoop,让用户可以在不了解分布式底层细节的情况下,开发分布式程序,并充分利用集群的威力进行高速运算和存储,由于Hadoop采用优秀的文件块冗余备份机制和远程过程调用机制(RPC),以及Yarn资源管理器,使得其在可靠性、稳定性和高效性方面都可以满足各类商业使用,目前Hadoop已经成为了大数据行业底层结构的标配,在业界使用的非常非常广泛,为了满足更多的大数据的使用场景,后来在Hadoop的基础上研究者们又开发扩展出了很多其他的框架,比如Hive、Pig、Storm、Hbase、Flume、Spark等等,在大大方便开发人员的同时,也形成了一个强大的Hadoop生态圈,那么有关Hadoop生态圈的详细内容,后面我们需要安排几期来分别介绍,请大家继续关注。
这些年来大数据技术大大增强了数据的处理效率和速度,将原先需要计算几天、几个月甚至几年、几十年的计算任务缩减到可以在几个小时或者几十分钟内就能完成。使得人们可以更加方便的掌握庞大的数据信息,并且可以对这些含有意义的数据进行各种专业化的处理,也就是说,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“深度加工和挖掘”,通过“加工”实现数据的“增值”,Hadoop生态圈已经让我们可以非常方便的处理这些任务了,不过虽然如此,但是大还是有大的难处,比如说大数据系统的测试一直就是个有挑战的课题,大数据集群的管理往往需要消耗维护人员的大量精力,另外在大数据的认识上很多人也是存在误区的,比如到底多大的数据算大数据呢?有人认为2G、10G的数据量就可以算大数据了,对外宣称我们有大数据,实际上是不正确的,最简单的理解大数据就是看数据的字节数量,最低的标准—数据量大到一个普通硬盘存不下的时候,普遍的来讲也就是数据量达到1TB以上,一般在实际生产环境中要求在5TB以上才可以使用Hadoop。因为只有当数据量足够大的时候,才会有足够多的属性、维度和样本,分析的结果才能更加真实的接近系统原貌。
上一篇 : 岛国最撩人的女优,制服诱惑正在上演……