大数据课程基本概念及技术

  • 格式:docx
  • 大小:31.17 KB
  • 文档页数:11

下载文档原格式

  / 8
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

大数据是当前很热的一个词。这几年来,云计算、继而大数据,成了整个社会的热点,不管什么,都要带上“大数据”三个字才显得时髦。大数据究竟是什么东西?有哪些相关技术?对普通人的生活会有怎样的影响?我们来一步步弄清这些问题。

一、基本概念

在讲什么是大数据之前,我们首先需要厘清几个基本概念。

1.数据

关于数据的定义,大概没有一个权威版本。为方便,此处使用一个简单的工作定义:数据是可以获取和存储的信息。

直观而言,表达某种客观事实的数值是最容易被人们识别的数据(因为那是“数”)。但实际上,人类的一切语言文字、图形图画、音像记录,所有感官可以察觉的事物,只要能被记下来,能够查询到,就都是数据(data)。

不过数值是所有数据中最容易被处理的一种,许多和数据相关的概念,例如下面的数据可视化和数据分析,最早是立足于数值数据的。

传统意义上的数据一词,尤其是相对于今天的“大数据”的“小数据”,主要指的就是数值数据,甚至在很多情况下专指统计数值数据。这些数值数据用来描述某种客观事物的属性。

2.数据可视化

对应英语的data visulization(或可译为数据展示),指通过图表将若干数字以直观的方式呈现给读者。比如非常常见的饼图、柱状图、走势图、热点图、K线等等,目前以二维展示为主,不过越来越多的三维图像和动态图也被用来展示数据。

3.数据分析

这一概念狭义上,指统计分析,即通过统计学手段,从数据中精炼对现实的描述。例如:针对以关系型数据库中以table形式存储的数据,按照某些指定的列进行分组,然后计算不同组的均值、方差、分布等。再以可视化的方式讲这些计算结果呈现出来。目前很多文章中提及的数据分析,其实是包括数据可视化的。

4.数据挖掘

这个概念的定义也是众说纷纭,落到实际,主要是在传统统计学的基础上,结合机器学习的算法,对数据进行更深层次的分析,并从中获取一些传统统计学方法无法提供的Insights(比如预测)。

简单而言:针对某个特定问题构建一个数学模型(可以把这个模型想象成一个或多个公式),其中包含一些具体取值未知的参数。我们将收集到的相关领域的若干数据(这些数据称为训练数据)代入模型,通过运算(运算过程称为训练),得出那些参数的值。然后再用这个已经确定了参数的模型,去计算一些全新的数据,得出相应结果。这一过程叫做机器学习。

机器学习的算法纷繁复杂,最常用的主要有回归分析、关联规则、分类、聚类、神经网络、决策树等。

二、大数据和大数据分析

大数据首先是数据,其次,它是具备了某些特征的数据。目前公认的特征有四个:Volumne,Velocity,Variety,和Value,简称4V.

1.Volume:大量。就目前技术而言,至少TB级别以下不能成大数据。

2.Velocity:高速。1TB的数据,十分钟处理完,叫大数据,一年处理完,就不能算“大”了。

3.Variety:多样。就内容而言,大数据已经远远不局限数值,文字、图片、语音、图像,一切在网络上可以传输显示的信息,都属于此列。从结构而言,和存储在数据库中的结构化数据不同,当前的大数据主要指半结构化和非结构化的信息,比如机器生成信息(各种日志)、自然语言等。

4. Value:价值。如果不能从中提取出价值,不能通过挖掘、分析,得到指导业务的insights,那这些数据也就没什么用。不过现在还有另外一种提法:只要是数据就都有用,能不能获得价值,是分析人员的能力问题。

大数据分析,顾名思义,就是将前述的数据可视化、数据分析、数据挖掘等方法作用到大数据之上。

从某种意义上讲,大数据可谓机器学习的福音,很多原有的简单粗糙的机器学习模型,仅仅因为训练数据量级的增加就大幅提高了准确性。还有一些模型则因为准确性随着数据量增加而增加的势头尤其明显,得以脱离默默无闻而被广泛使用。

另一方面,大数据分析对于运算量的需求激增,原有的基于单机的运算技术显然已经不能满足需求,这就催生了一些列新技术。

三、大数据技术

抽象而言,各种大数据技术无外乎分布式存储 + 并行计算。具体体现为各种分布式文件系统和建立在其上的并行运算框架。这些软件程序都部署在多个相互连通、统一管理的物理或虚拟运算节点之上,形成集群(cluster)。因此不妨说,云计算是大数据的基础。

下面介绍几种当前比较流行的大数据技术:

1.Hadoop

Hadoop无疑是当前最知名的大数据技术了。

2003年到2004年间,Google发布了关于GFS、MapReduce和BigTable 三篇技术论文(这几篇论文成为了后来云计算、大数据领域发展的重要基石)。当时一位因公司倒闭赋闲在家的程序员Doug Cutting根据前两篇论文,开发出了一个简化的山寨版GFS – HDFS,以及基于其的MapReduce计算框架,这就是Hadoop最初版本。后来Cutting被

Yahoo雇佣,得以依赖Yahoo的资源改进Hadoop,并将其贡献给了Apache开源社区。

简单描述Hadoop原理:数据分布式存储,运算程序被发派到各个数据节点进行分别运算(Map),再将各个节点的运算结果进行合并归一(Reduce),生成最终结果。相对于动辄TB级别的数据,计算程序一般在KB – MB的量级,这种移动计算不移动数据的设计节约了大量网络带宽和时间,并使得运算过程可以充分并行化。

在其诞生后的近10年里,Hadoop凭借其简单、易用、高效、免费、社区支持丰富等特征成为众多企业云计算、大数据实施的首选。

2.Storm

Hadoop虽好,却有其“死穴”.其一:它的运算模式是批处理。这对于许多有实时性要求的业务就无法做到很好的支持。因此,Twitter 推出了他们自己的基于流的运算框架--Storm.不同于Hadoop一次性处理所有数据并得出统一结果的作业(job),Storm对源源导入的数据流进行持续不断的处理,随时得出增量结果。

3.Spark