㈠ 大数据时代的数据怎么挖掘
3月13日下午,南京邮电大学计算机学院、软件学院院长、教授李涛在CIO时代APP微讲座栏目作了题为《大数据时代的数据挖掘》的主题分享,深度诠释了大数据及大数据时代下的数据挖掘。
众所周知,大数据时代的大数据挖掘已成为各行各业的一大热点。
一、数据挖掘
在大数据时代,数据的产生和收集是基础,数据挖掘是关键,数据挖掘可以说是大数据最关键也是最基本的工作。通常而言,数据挖掘也称为DataMining,或知识发现Knowledge Discovery from Data,泛指从大量数据中挖掘出隐含的、先前未知但潜在的有用信息和模式的一个工程化和系统化的过程。
不同的学者对数据挖掘有着不同的理解,但个人认为,数据挖掘的特性主要有以下四个方面:
1.应用性(A Combination of Theory and Application):数据挖掘是理论算法和应用实践的完美结合。数据挖掘源于实际生产生活中应用的需求,挖掘的数据来自于具体应用,同时通过数据挖掘发现的知识又要运用到实践中去,辅助实际决策。所以,数据挖掘来自于应用实践,同时也服务于应用实践,数据是根本,数据挖掘应以数据为导向,其中涉及到算法的设计与开发都需考虑到实际应用的需求,对问题进行抽象和泛化,将好的算法应用于实际中,并在实际中得到检验。
2.工程性(An Engineering Process):数据挖掘是一个由多个步骤组成的工程化过程。数据挖掘的应用特性决定了数据挖掘不仅仅是算法分析和应用,而是一个包含数据准备和管理、数据预处理和转换、挖掘算法开发和应用、结果展示和验证以及知识积累和使用的完整过程。而且在实际应用中,典型的数据挖掘过程还是一个交互和循环的过程。
3.集合性(A Collection of Functionalities):数据挖掘是多种功能的集合。常用的数据挖掘功能包括数据探索分析、关联规则挖掘、时间序列模式挖掘、分类预测、聚类分析、异常检测、数据可视化和链接分析等。一个具体的应用案例往往涉及多个不同的功能。不同的功能通常有不同的理论和技术基础,而且每一个功能都有不同的算法支撑。
4.交叉性(An Interdisciplinary Field):数据挖掘是一门交叉学科,它利用了来自统计分析、模式识别、机器学习、人工智能、信息检索、数据库等诸多不同领域的研究成果和学术思想。同时一些其他领域如随机算法、信息论、可视化、分布式计算和最优化也对数据挖掘的发展起到重要的作用。数据挖掘与这些相关领域的区别可以由前面提到的数据挖掘的3个特性来总结,最重要的是它更侧重于应用。
综上所述,应用性是数据挖掘的一个重要特性,是其区别于其他学科的关键,同时,其应用特性与其他特性相辅相成,这些特性在一定程度上决定了数据挖掘的研究与发展,同时,也为如何学习和掌握数据挖掘提出了指导性意见。如从研究发展来看,实际应用的需求是数据挖掘领域很多方法提出和发展的根源。从最开始的顾客交易数据分析(market basket analysis)、多媒体数据挖掘(multimedia data mining)、隐私保护数据挖掘(privacy-preserving data mining)到文本数据挖掘(text mining)和Web挖掘(Web mining),再到社交媒体挖掘(social media mining)都是由应用推动的。工程性和集合性决定了数据挖掘研究内容和方向的广泛性。其中,工程性使得整个研究过程里的不同步骤都属于数据挖掘的研究范畴。而集合性使得数据挖掘有多种不同的功能,而如何将多种功能联系和结合起来,从一定程度上影响了数据挖掘研究方法的发展。比如,20世纪90年代中期,数据挖掘的研究主要集中在关联规则和时间序列模式的挖掘。到20世纪90年代末,研究人员开始研究基于关联规则和时间序列模式的分类算法(如classification based on association),将两种不同的数据挖掘功能有机地结合起来。21世纪初,一个研究的热点是半监督学习(semi-supervised learning)和半监督聚类(semi-supervised clustering),也是将分类和聚类这两种功能有机结合起来。近年来的一些其他研究方向如子空间聚类(subspace clustering)(特征抽取和聚类的结合)和图分类(graph classification)(图挖掘和分类的结合)也是将多种功能联系和结合在一起。最后,交叉性导致了研究思路和方法设计的多样化。
前面提到的是数据挖掘的特性对研究发展及研究方法的影响,另外,数据挖掘的这些特性对如何学习和掌握数据挖掘提出了指导性的意见,对培养研究生、本科生均有一些指导意见,如应用性在指导数据挖掘时,应熟悉应用的业务和需求,需求才是数据挖掘的目的,业务和算法、技术的紧密结合非常重要,了解业务、把握需求才能有针对性地对数据进行分析,挖掘其价值。因此,在实际应用中需要的是一种既懂业务,又懂数据挖掘算法的人才。工程性决定了要掌握数据挖掘需有一定的工程能力,一个好的数据额挖掘人员首先是一名工程师,有很强大的处理大规模数据和开发原型系统的能力,这相当于在培养数据挖掘工程师时,对数据的处理能力和编程能力很重要。集合性使得在具体应用数据挖掘时,要做好底层不同功能和多种算法积累。交叉性决定了在学习数据挖掘时要主动了解和学习相关领域的思想和技术。
因此,这些特性均是数据挖掘的特点,通过这四个特性可总结和学习数据挖掘。
二、大数据的特征
大数据(bigdata)一词经常被用以描述和指代信息爆炸时代产生的海量信息。研究大数据的意义在于发现和理解信息内容及信息与信息之间的联系。研究大数据首先要理清和了解大数据的特点及基本概念,进而理解和认识大数据。
研究大数据首先要理解大数据的特征和基本概念。业界普遍认为,大数据具有标准的“4V”特征:
1.Volume(大量):数据体量巨大,从TB级别跃升到PB级别。
2.Variety(多样):数据类型繁多,如网络日志、视频、图片、地理位置信息等。
3.Velocity(高速):处理速度快,实时分析,这也是和传统的数据挖掘技术有着本质的不同。
4.Value(价值):价值密度低,蕴含有效价值高,合理利用低密度价值的数据并对其进行正确、准确的分析,将会带来巨大的商业和社会价值。
上述“4V”特点描述了大数据与以往部分抽样的“小数据”的主要区别。然而,实践是大数据的最终价值体现的唯一途径。从实际应用和大数据处理的复杂性看,大数据还具有如下新的“4V”特点:
5.Variability(变化):在不同的场景、不同的研究目标下数据的结构和意义可能会发生变化,因此,在实际研究中要考虑具体的上下文场景(Context)。
6.Veracity(真实性):获取真实、可靠的数据是保证分析结果准确、有效的前提。只有真实而准确的数据才能获取真正有意义的结果。
7.Volatility(波动性)/Variance(差异):由于数据本身含有噪音及分析流程的不规范性,导致采用不同的算法或不同分析过程与手段会得到不稳定的分析结果。
8.Visualization(可视化):在大数据环境下,通过数据可视化可以更加直观地阐释数据的意义,帮助理解数据,解释结果。
综上所述,以上“8V”特征在大数据分析与数据挖掘中具有很强的指导意义。
三、大数据时代下的数据挖掘
在大数据时代,数据挖掘需考虑以下四个问题:
大数据挖掘的核心和本质是应用、算法、数据和平台4个要素的有机结合。
因为数据挖掘是应用驱动的,来源于实践,海量数据产生于应用之中。需用具体的应用数据作为驱动,以算法、工具和平台作为支撑,最终将发现的知识和信息应用到实践中去,从而提供量化的、合理的、可行的、且能产生巨大价值的信息。
挖掘大数据中隐含的有用信息需设计和开发相应的数据挖掘和学习算法。算法的设计和开发需以具体的应用数据作为驱动,同时在实际问题中得到应用和验证,而算法的实现和应用需要高效的处理平台,这个处理平台可以解决波动性问题。高效的处理平台需要有效分析海量数据,及时对多元数据进行集成,同时有力支持数据化对算法及数据可视化的执行,并对数据分析的流程进行规范。
总之,应用、算法、数据、平台这四个方面相结合的思想,是对大数据时代的数据挖掘理解与认识的综合提炼,体现了大数据时代数据挖掘的本质与核心。这四个方面也是对相应研究方面的集成和架构,这四个架构具体从以下四个层面展开:
应用层(Application):关心的是数据的收集与算法验证,关键问题是理解与应用相关的语义和领域知识。
数据层(Data):数据的管理、存储、访问与安全,关心的是如何进行高效的数据使用。
算法层(Algorithm):主要是数据挖掘、机器学习、近似算法等算法的设计与实现。
平台层(Infrastructure):数据的访问和计算,计算平台处理分布式大规模的数据。
综上所述,数据挖掘的算法分为多个层次,在不同的层面有不同的研究内容,可以看到目前在做数据挖掘时的主要研究方向,如利用数据融合技术预处理稀疏、异构、不确定、不完整以及多来源数据;挖掘复杂动态变化的数据;测试通过局部学习和模型融合所得到的全局知识,并反馈相关信息给预处理阶段;对数据并行分布化,达到有效使用的目的。
四、大数据挖掘系统的开发
1.背景目标
大数据时代的来临使得数据的规模和复杂性都出现爆炸式的增长,促使不同应用领域的数据分析人员利用数据挖掘技术对数据进行分析。在应用领域中,如医疗保健、高端制造、金融等,一个典型的数据挖掘任务往往需要复杂的子任务配置,整合多种不同类型的挖掘算法以及在分布式计算环境中高效运行。因此,在大数据时代进行数据挖掘应用的一个当务之急是要开发和建立计算平台和工具,支持应用领域的数据分析人员能够有效地执行数据分析任务。
之前提到一个数据挖掘有多种任务、多种功能及不同的挖掘算法,同时,需要一个高效的平台。因此,大数据时代的数据挖掘和应用的当务之急,便是开发和建立计算平台和工具,支持应用领域的数据分析人员能够有效地执行数据分析任务。
2.相关产品
现有的数据挖掘工具
有Weka、SPSS和SQLServer,它们提供了友好的界面,方便用户进行分析,然而这些工具并不适合进行大规模的数据分析,同时,在使用这些工具时用户很难添加新的算法程序。
流行的数据挖掘算法库
如Mahout、MLC++和MILK,这些算法库提供了大量的数据挖掘算法。但这些算法库需要有高级编程技能才能进行任务配置和算法集成。
最近出现的一些集成的数据挖掘产品
如Radoop和BC-PDM,它们提供友好的用户界面来快速配置数据挖掘任务。但这些产品是基于Hadoop框架的,对非Hadoop算法程序的支持非常有限。没有明确地解决在多用户和多任务情况下的资源分配。
3.FIU-Miner
为解决现有工具和产品在大数据挖掘中的局限性,我们团队开发了一个新的平台——FIU-Miner,它代表了A Fast,Integrated,and User-Friendly System for Data Miningin Distributed Environment。它是一个用户友好并支持在分布式环境中进行高效率计算和快速集成的数据挖掘系统。与现有数据挖掘平台相比,FIU-Miner提供了一组新的功能,能够帮助数据分析人员方便并有效地开展各项复杂的数据挖掘任务。
与传统的数据挖掘平台相比,它提供了一些新的功能,主要有以下几个方面:
A.用户友好、人性化、快速的数据挖掘任务配置。基于“软件即服务”这一模式,FIU-Miner隐藏了与数据分析任务无关的低端细节。通过FIU-Miner提供的人性化用户界面,用户可以通过将现有算法直接组装成工作流,轻松完成一个复杂数据挖掘问题的任务配置,而不需要编写任何代码。
B.灵活的多语言程序集成。允许用户将目前最先进的数据挖掘算法直接导入系统算法库中,以此对分析工具集合进行扩充和管理。同时,由于FIU-Miner能够正确地将任务分配到有合适运行环境的计算节点上,所以对这些导入的算法没有实现语言的限制。
C.异构环境中有效的资源管理。FIU-Miner支持在异构的计算环境中(包括图形工作站、单个计算机、和服务器等)运行数据挖掘任务。FIU-Miner综合考虑各种因素(包括算法实现、服务器负载平衡和数据位置)来优化计算资源的利用率。
D.有效的程序调度和执行。
应用架构上包括用户界面层、任务和系统管理层、逻辑资源层、异构的物理资源层。这种分层架构充分考虑了海量数据的分布式存储、不同数据挖掘算法的集成、多重任务的配置及系统用户的交付功能。一个典型的数据挖掘任务在应用之中需要复杂的主任务配置,整合多种不同类型的挖掘算法。因此,开发和建立这样的计算平台和工具,支持应用领域的数据分析人员进行有效的分析是大数据挖掘中的一个重要任务。
FIU-Miner系统用在了不同方面:如高端制造业、仓库智能管理、空间数据处理等,TerraFly GeoCloud是建立在TerraFly系统之上的、支持多种在线空间数据分析的一个平台。提供了一种类SQL语句的空间数据查询与挖掘语言MapQL。它不但支持类SQL语句,更重要的是可根据用户的不同要求,进行空间数据挖掘,渲染和画图查询得到空间数据。通过构建空间数据分析的工作流来优化分析流程,提高分析效率。
制造业是指大规模地把原材料加工成成品的工业生产过程。高端制造业是指制造业中新出现的具有高技术含量、高附加值、强竞争力的产业。典型的高端制造业包括电子半导体生产、精密仪器制造、生物制药等。这些制造领域往往涉及严密的工程设计、复杂的装配生产线、大量的控制加工设备与工艺参数、精确的过程控制和材料的严格规范。产量和品质极大地依赖流程管控和优化决策。因此,制造企业不遗余力地采用各种措施优化生产流程、调优控制参数、提高产品品质和产量,从而提高企业的竞争力。
在空间数据处理方面,TerraFly GeoCloud对多种在线空间数据分析。对传统数据分析而言,其难点在于MapQL语句比较难写,任务之间的关系比较复杂,顺序执行之间空间数据分许效率较低。而FIU-Miner可有效解决以上三个难点。
总结而言,大数据的复杂特征对数据挖掘在理论和算法研究方面提出了新的要求和挑战。大数据是现象,核心是挖掘数据中蕴含的潜在信息,并使它们发挥价值。数据挖掘是理论技术和实际应用的完美结合。数据挖掘是理论和实践相结合的一个例子。
㈡ 如何进行大数据分析及处理
大数据的分析从所周知,大数据已经不简简单单是数据大的事实了,而最重要的现实是对大数据进行分析,只有通过分析才能获取很多智能的,深入的,有价值的信息。那么越来越多的应用涉及到大数据,而这些大数据的属性,包括数量,速度,多样性等等都是呈现了大数据不断增长的复杂性,所以大数据的分析方法在大数据领域就显得尤为重要,可以说是决定最终信息是否有价值的决定性因素。基于如此的认识,大数据分析普遍存在的方法理论有哪些呢?1. 可视化分析。大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。2. 数据挖掘算法。大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。3. 预测性分析。大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。4. 语义引擎。非结构化数据的多元化给数据分析带来新的挑战,我们需要一套工具系统的去分析,提炼数据。语义引擎需要设计到有足够的人工智能以足以从数据中主动地提取信息。5.数据质量和数据管理。大数据分析离不开数据质量和数据管理,高质量的数据和有效的数据管理,无论是在学术研究还是在商业应用领域,都能够保证分析结果的真实和有价值。大数据分析的基础就是以上五个方面,当然更加深入大数据分析的话,还有很多很多更加有特点的、更加深入的、更加专业的大数据分析方法。大数据的技术数据采集:ETL工具负责将分布的、异构数据源中的数据如关系数据、平面数据文件等抽取到临时中间层后进行清洗、转换、集成,最后加载到数据仓库或数据集市中,成为联机分析处理、数据挖掘的基础。数据存取:关系数据库、NOSQL、SQL等。基础架构:云存储、分布式文件存储等。数据处理:自然语言处理(NLP,Natural Language Processing)是研究人与计算机交互的语言问题的一门学科。处理自然语言的关键是要让计算机”理解”自然语言,所以自然语言处理又叫做自然语言理解(NLU,Natural Language Understanding),也称为计算语言学(Computational Linguistics。一方面它是语言信息处理的一个分支,另一方面它是人工智能(AI, Artificial Intelligence)的核心课题之一。统计分析:假设检验、显着性检验、差异分析、相关分析、T检验、方差分析、卡方分析、偏相关分析、距离分析、回归分析、简单回归分析、多元回归分析、逐步回归、回归预测与残差分析、岭回归、logistic回归分析、曲线估计、因子分析、聚类分析、主成分分析、因子分析、快速聚类法与聚类法、判别分析、对应分析、多元对应分析(最优尺度分析)、bootstrap技术等等。数据挖掘:分类(Classification)、估计(Estimation)、预测(Prediction)、相关性分组或关联规则(Affinity grouping or association rules)、聚类(Clustering)、描述和可视化、Description and Visualization)、复杂数据类型挖掘(Text, Web ,图形图像,视频,音频等)模型预测:预测模型、机器学习、建模仿真。结果呈现:云计算、标签云、关系图等。大数据的处理1. 大数据处理之一:采集大数据的采集是指利用多个数据库来接收发自客户端(Web、App或者传感器形式等)的数据,并且用户可以通过这些数据库来进行简单的查询和处理工作。比如,电商会使用传统的关系型数据库MySQL和Oracle等来存储每一笔事务数据,除此之外,Redis和MongoDB这样的NoSQL数据库也常用于数据的采集。在大数据的采集过程中,其主要特点和挑战是并发数高,因为同时有可能会有成千上万的用户来进行访问和操作,比如火车票售票网站和淘宝,它们并发的访问量在峰值时达到上百万,所以需要在采集端部署大量数据库才能支撑。并且如何在这些数据库之间进行负载均衡和分片的确是需要深入的思考和设计。2. 大数据处理之二:导入/预处理虽然采集端本身会有很多数据库,但是如果要对这些海量数据进行有效的分析,还是应该将这些来自前端的数据导入到一个集中的大型分布式数据库,或者分布式存储集群,并且可以在导入基础上做一些简单的清洗和预处理工作。也有一些用户会在导入时使用来自Twitter的Storm来对数据进行流式计算,来满足部分业务的实时计算需求。导入与预处理过程的特点和挑战主要是导入的数据量大,每秒钟的导入量经常会达到百兆,甚至千兆级别。3. 大数据处理之三:统计/分析统计与分析主要利用分布式数据库,或者分布式计算集群来对存储于其内的海量数据进行普通的分析和分类汇总等,以满足大多数常见的分析需求,在这方面,一些实时性需求会用到EMC的GreenPlum、Oracle的Exadata,以及基于MySQL的列式存储Infobright等,而一些批处理,或者基于半结构化数据的需求可以使用Hadoop。统计与分析这部分的主要特点和挑战是分析涉及的数据量大,其对系统资源,特别是I/O会有极大的占用。4. 大数据处理之四:挖掘与前面统计和分析过程不同的是,数据挖掘一般没有什么预先设定好的主题,主要是在现有数据上面进行基于各种算法的计算,从而起到预测(Predict)的效果,从而实现一些高级别数据分析的需求。比较典型算法有用于聚类的Kmeans、用于统计学习的SVM和用于分类的NaiveBayes,主要使用的工具有Hadoop的Mahout等。该过程的特点和挑战主要是用于挖掘的算法很复杂,并且计算涉及的数据量和计算量都很大,常用数据挖掘算法都以单线程为主。整个大数据处理的普遍流程至少应该满足这四个方面的步骤,才能算得上是一个比较完整的大数据处理。End.
㈢ 什么叫大数据 怎么理解大数据
1、“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力来适应海量、高增长率和多样化的信息资产。
2、麦肯锡全球研究所给出的定义是:一种规模大到在获取、存储、管理、分析方面大大超出了传统数据库软件工具能力范围的数据集合,具有海量的数据规模、快速的数据流转、多样的数据类型和价值密度低四大特征。
3、大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换而言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。
4、从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘。但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。
5、随着云时代的来临,大数据(Bigdata)也吸引了越来越多的关注。大数据(Bigdata)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapRece一样的框架来向数十、数百或甚至数千的电脑分配工作。
6、大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。
㈣ 大数据技术
随着信息技术的发展,新型信息发布方式的不断涌现,数据正以前所未有的速度在不断地增长和累积,大数据时代正式到来。2012年被称为“大数据元年”,因为在这一年“大数据”这个概念引起了人们的空前关注。首先是美国政府公布“大数据研发计划”,紧接着世界各国以及各大商业公司也对“大数据”给予了极大的关注。美国在“大数据研发计划”中,与空间数据关系最为密切的是联邦地质调查局和航空和航天局。
联邦地质调查局的科学家们合作完成对全面、长期数据的最新综合,进一步把大数据集和地球科学理论的大构想转换成科学发现,提高对地球系统科学问题的理解和应对能力,例如物种应对气候变化、地震复发率、下一代生态指标等。NASA用先进信息系统技术寻求成熟的大数据能力,以支持未来的地球观测任务,使得地球信息能为NASA气候中心的体系结构所识别,减少地球科学部的空基和陆基信息系统的风险、成本、规模和开发时间,提高科学数据的可访问性和实用性。NASA的地球科学数据和信息系统项目已经活跃了15年以上,旨在对地球卫星数据和空中与实地活动的数据进行处理存档和发布,努力确保科学家和社会公众可以满意地访问从地球到太空的数据,提升应对气候和环境变化的能力。NASA与Cray公司制定的太空行动协议,允许一个或多个项目围绕发展和应用低延迟“大数据”系统合作,使用高度集成的非SQL数据库传输数据,来加速建模和分析软件的运行,以测试混合计算机系统的实用性。此外,各种专用减灾卫星、遥感卫星、通信与导航卫星已广泛应用于地震、海啸、台风(飓风)、洪灾、旱灾、地质灾害和火灾等各种不同类型的灾害管理。
在我国,地学大数据的研究也已开始,国土资源部地质信息技术重点实验室地学大数据高性能计算应用环境搭建成功,已经对外开放。利用搭建的大数据及高性能地理数据计算平台,开展地质大数据综合处理、分析和应用研究,对于推进地质数据开发应用、提高服务效率具有重要作用。
㈤ 人人都在说大数据,那大数据概念是怎么产生的
概念产生:
“大数据”的名称来自于未来学家托夫勒所着的《第三次浪潮》 尽管“大数据”这个词直到最近才受到人们的高度关注,但早在1980年,着名未来学家托夫勒在其所着的《第三次浪潮》中就热情地将“大数据”称颂为“第三次浪潮的华彩乐章”。《自然》杂志在2008年9月推出了名为“大数据”的封面专栏。从2009年开始“大数据”才成为互联网技术行业中的热门词汇。
㈥ 大数据时代发展历程是什么
大数据技术发展史:大数据的前世今生
今天我们常说的大数据技术,其实起源于Google在2004年前后发表的三篇论文,也就是我们经常听到的“三驾马车”,分别是分布式文件系统GFS、大数据分布式计算框架MapRece和NoSQL数据库系统BigTable。
你知道,搜索引擎主要就做两件事情,一个是网页抓取,一个是索引构建,而在这个过程中,有大量的数据需要存储和计算。这“三驾马车”其实就是用来解决这个问题的,你从介绍中也能看出来,一个文件系统、一个计算框架、一个数据库系统。
现在你听到分布式、大数据之类的词,肯定一点儿也不陌生。但你要知道,在2004年那会儿,整个互联网还处于懵懂时代,Google发布的论文实在是让业界为之一振,大家恍然大悟,原来还可以这么玩。
因为那个时间段,大多数公司的关注点其实还是聚焦在单机上,在思考如何提升单机的性能,寻找更贵更好的服务器。而Google的思路是部署一个大规模的服务器集群,通过分布式的方式将海量数据存储在这个集群上,然后利用集群上的所有机器进行数据计算。 这样,Google其实不需要买很多很贵的服务器,它只要把这些普通的机器组织到一起,就非常厉害了。
当时的天才程序员,也是Lucene开源项目的创始人Doug Cutting正在开发开源搜索引擎Nutch,阅读了Google的论文后,他非常兴奋,紧接着就根据论文原理初步实现了类似GFS和MapRece的功能。
两年后的2006年,Doug Cutting将这些大数据相关的功能从Nutch中分离了出来,然后启动了一个独立的项目专门开发维护大数据技术,这就是后来赫赫有名的Hadoop,主要包括Hadoop分布式文件系统HDFS和大数据计算引擎MapRece。
当我们回顾软件开发的历史,包括我们自己开发的软件,你会发现,有的软件在开发出来以后无人问津或者寥寥数人使用,这样的软件其实在所有开发出来的软件中占大多数。而有的软件则可能会开创一个行业,每年创造数百亿美元的价值,创造百万计的就业岗位,这些软件曾经是Windows、Linux、Java,而现在这个名单要加上Hadoop的名字。
如果有时间,你可以简单浏览下Hadoop的代码,这个纯用Java编写的软件其实并没有什么高深的技术难点,使用的也都是一些最基础的编程技巧,也没有什么出奇之处,但是它却给社会带来巨大的影响,甚至带动一场深刻的科技革命,推动了人工智能的发展与进步。
我觉得,我们在做软件开发的时候,也可以多思考一下,我们所开发软件的价值点在哪里?真正需要使用软件实现价值的地方在哪里?你应该关注业务、理解业务,有价值导向,用自己的技术为公司创造真正的价值,进而实现自己的人生价值。而不是整天埋头在需求说明文档里,做一个没有思考的代码机器人。
Hadoop发布之后,Yahoo很快就用了起来。大概又过了一年到了2007年,网络和阿里巴巴也开始使用Hadoop进行大数据存储与计算。
2008年,Hadoop正式成为Apache的顶级项目,后来Doug Cutting本人也成为了Apache基金会的主席。自此,Hadoop作为软件开发领域的一颗明星冉冉升起。
同年,专门运营Hadoop的商业公司Cloudera成立,Hadoop得到进一步的商业支持。
这个时候,Yahoo的一些人觉得用MapRece进行大数据编程太麻烦了,于是便开发了Pig。Pig是一种脚本语言,使用类SQL的语法,开发者可以用Pig脚本描述要对大数据集上进行的操作,Pig经过编译后会生成MapRece程序,然后在Hadoop上运行。
编写Pig脚本虽然比直接MapRece编程容易,但是依然需要学习新的脚本语法。于是Facebook又发布了Hive。Hive支持使用SQL语法来进行大数据计算,比如说你可以写个Select语句进行数据查询,然后Hive会把SQL语句转化成MapRece的计算程序。
这样,熟悉数据库的数据分析师和工程师便可以无门槛地使用大数据进行数据分析和处理了。Hive出现后极大程度地降低了Hadoop的使用难度,迅速得到开发者和企业的追捧。据说,2011年的时候,Facebook大数据平台上运行的作业90%都来源于Hive。
随后,众多Hadoop周边产品开始出现,大数据生态体系逐渐形成,其中包括:专门将关系数据库中的数据导入导出到Hadoop平台的Sqoop;针对大规模日志进行分布式收集、聚合和传输的Flume;MapRece工作流调度引擎Oozie等。
在Hadoop早期,MapRece既是一个执行引擎,又是一个资源调度框架,服务器集群的资源调度管理由MapRece自己完成。但是这样不利于资源复用,也使得MapRece非常臃肿。于是一个新项目启动了,将MapRece执行引擎和资源调度分离开来,这就是Yarn。2012年,Yarn成为一个独立的项目开始运营,随后被各类大数据产品支持,成为大数据平台上最主流的资源调度系统。
同样是在2012年,UC伯克利AMP实验室(Algorithms、Machine和People的缩写)开发的Spark开始崭露头角。当时AMP实验室的马铁博士发现使用MapRece进行机器学习计算的时候性能非常差,因为机器学习算法通常需要进行很多次的迭代计算,而MapRece每执行一次Map和Rece计算都需要重新启动一次作业,带来大量的无谓消耗。还有一点就是MapRece主要使用磁盘作为存储介质,而2012年的时候,内存已经突破容量和成本限制,成为数据运行过程中主要的存储介质。Spark一经推出,立即受到业界的追捧,并逐步替代MapRece在企业应用中的地位。
一般说来,像MapRece、Spark这类计算框架处理的业务场景都被称作批处理计算,因为它们通常针对以“天”为单位产生的数据进行一次计算,然后得到需要的结果,这中间计算需要花费的时间大概是几十分钟甚至更长的时间。因为计算的数据是非在线得到的实时数据,而是历史数据,所以这类计算也被称为大数据离线计算。
而在大数据领域,还有另外一类应用场景,它们需要对实时产生的大量数据进行即时计算,比如对于遍布城市的监控摄像头进行人脸识别和嫌犯追踪。这类计算称为大数据流计算,相应地,有Storm、Flink、Spark Streaming等流计算框架来满足此类大数据应用的场景。 流式计算要处理的数据是实时在线产生的数据,所以这类计算也被称为大数据实时计算。
在典型的大数据的业务场景下,数据业务最通用的做法是,采用批处理的技术处理历史全量数据,采用流式计算处理实时新增数据。而像Flink这样的计算引擎,可以同时支持流式计算和批处理计算。
除了大数据批处理和流处理,NoSQL系统处理的主要也是大规模海量数据的存储与访问,所以也被归为大数据技术。 NoSQL曾经在2011年左右非常火爆,涌现出HBase、Cassandra等许多优秀的产品,其中HBase是从Hadoop中分离出来的、基于HDFS的NoSQL系统。
我们回顾软件发展的历史会发现,差不多类似功能的软件,它们出现的时间都非常接近,比如Linux和Windows都是在90年代初出现,Java开发中的各类MVC框架也基本都是同期出现,Android和iOS也是前脚后脚问世。2011年前后,各种NoSQL数据库也是层出不群,我也是在那个时候参与开发了阿里巴巴自己的NoSQL系统。
事物发展有自己的潮流和规律,当你身处潮流之中的时候,要紧紧抓住潮流的机会,想办法脱颖而出,即使没有成功,也会更加洞悉时代的脉搏,收获珍贵的知识和经验。而如果潮流已经退去,这个时候再去往这个方向上努力,只会收获迷茫与压抑,对时代、对自己都没有什么帮助。
但是时代的浪潮犹如海滩上的浪花,总是一浪接着一浪,只要你站在海边,身处这个行业之中,下一个浪潮很快又会到来。你需要敏感而又深刻地去观察,略去那些浮躁的泡沫,抓住真正潮流的机会,奋力一搏,不管成败,都不会遗憾。
正所谓在历史前进的逻辑中前进,在时代发展的潮流中发展。通俗的说,就是要在风口中飞翔。
上面我讲的这些基本上都可以归类为大数据引擎或者大数据框架。而大数据处理的主要应用场景包括数据分析、数据挖掘与机器学习。数据分析主要使用Hive、Spark SQL等SQL引擎完成;数据挖掘与机器学习则有专门的机器学习框架TensorFlow、Mahout以及MLlib等,内置了主要的机器学习和数据挖掘算法。
此外,大数据要存入分布式文件系统(HDFS),要有序调度MapRece和Spark作业执行,并能把执行结果写入到各个应用系统的数据库中,还需要有一个大数据平台整合所有这些大数据组件和企业应用系统。
图中的所有这些框架、平台以及相关的算法共同构成了大数据的技术体系,我将会在专栏后面逐个分析,帮你能够对大数据技术原理和应用算法构建起完整的知识体系,进可以专职从事大数据开发,退可以在自己的应用开发中更好地和大数据集成,掌控自己的项目。
希望对您有所帮助!~
㈦ 大数据分析有哪些基本方向
【导读】跟着大数据时代的降临,大数据剖析也应运而生。随之而来的数据仓库、数据安全、数据剖析、数据发掘等等环绕大数据的商业价值的使用逐渐成为职业人士争相追捧的利润焦点。那么,大数据剖析有哪些根本方向呢?
1.可视化剖析
不管是对数据剖析专家仍是普通用户,数据可视化是数据剖析东西最根本的要求。可视化能够直观的展现数据,让数据自己说话,让观众听到成果。
2.数据发掘算法
可视化是给人看的,数据发掘便是给机器看的。集群、切割、孤立点剖析还有其他的算法让咱们深入数据内部,发掘价值。这些算法不只要处理大数据的量,也要处理大数据的速度。
3.猜测性剖析才能
数据发掘能够让剖析员更好的理解数据,而猜测性剖析能够让剖析员根据可视化剖析和数据发掘的成果做出一些猜测性的判别。
4.语义引擎
咱们知道由于非结构化数据的多样性带来了数据剖析的新的应战,咱们需求一系列的东西去解析,提取,剖析数据。语义引擎需求被设计成能够从“文档”中智能提取信息。
5.数据质量和数据管理
数据质量和数据管理是一些管理方面的最佳实践。经过标准化的流程和东西对数据进行处理能够保证一个预先界说好的高质量的剖析成果。
6.数据存储,数据仓库
数据仓库是为了便于多维剖析和多角度展现数据按特定形式进行存储所建立起来的联系型数据库。在商业智能系统的设计中,数据仓库的构建是关键,是商业智能系统的根底,为商业智能系统供给数据抽取、转换和加载(ETL),并按主题对数据进行查询和拜访,为联机数据剖析和数据发掘供给数据平台。
以上就是小编今天给大家整理分享关于“大数据分析有哪些基本方向?”的相关内容希望对大家有所帮助。小编认为要想在大数据行业有所建树,需要考取部分含金量高的数据分析师证书,这样更有核心竞争力与竞争资本。