基于MapReduce算法的大数据技术研究_第1页
基于MapReduce算法的大数据技术研究_第2页
基于MapReduce算法的大数据技术研究_第3页
基于MapReduce算法的大数据技术研究_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于MapReduce算法的大数据技术研究摘要:文章提出了一种基于MapReduce的优化编程框架,来进行数据挖掘与处理。MapReduce是通过执行Map和Reduce两个阶段把大数据分割成小数据族,再并行处理这些小数据族输出得到我们想要的结果。优化过的MapReduce加快了数据处理速度,提高了大数据处理效率。所有的数据存储于HDFS中,为了方便编程人员高效地对存储好的数据进行查询和处理,Hive提供了一套SQL数据操作语言,并将其转换成MapReduce程序执行。改进的大数据算法具有更快地数据处理速度,更准确的数据查询能力。关键词:大数据;数据挖掘;数据处理;MapReduce;Hive

2、Research of big data technology based on MapReduce algorithmAbstract:This paper presents an optimization-based MapReduce programming framework for data mining and processing. MapReduce is through the implementation of Map and Reduce in two phases to split large data into smaller data clan, then the

3、parallel processing of these small family of data output to get the results we want. Optimized MapReduce speed up data processing speed, improve the efficiency of large data processing. All data is stored in HDFS, in order to facilitate the programmers efficiently good data storage and query process

4、ing, Hive provides a set of SQL data manipulation language, and converts it into MapReduce program execution. Improved large data algorithm has faster data processing speed, more accurate data query capabilities.Keywords: big data; data mining; data processing; MapReduce algorithm;Hive0 引 言随着计算机技术以及

5、互联网技术逐渐普及到人们日常生活中的各个方面,随之而产生的数据量也在呈现指数级增长,大数据应运而生。而传统的数据处理系统面对大数据的挖掘与处理,往往并不适用,本文将系统地阐述如何进行大数据挖掘与处理。大数据时代的战略意义不仅在于掌握庞大的数据信息,而且在于如何处理数据。广义角度的大数据,不仅包含大数据结构形式和规模,还泛指大数据的处理技术。大数据的处理技术是指能够从不断更新增长、有价值信息转瞬即逝的大数据中抓取有价值信息的能力。在大数据时代,传统针对小数据处理的技术可能不再适用。这样,就产生了专门针对大数据的处理技术,大数据的处理技术也衍生为大数据的代名词。这就意味着,广义的大数据不仅包括数据

6、的结构形式和规模,还包括处理数据的技术。1 数据挖掘技术数据挖掘就是指采用计算机技术从大量原始采集数据中提取可用知识的过程。数据挖掘最早出现在20世纪90年代,随着计算机的普及,各种传感器的应用,一方面使得数据挖掘对象日益复杂,另一方面是庞大的数据量对原有的传统。数据挖掘技术提出挑战。在这种背景下,基于Hadoop平台的MapReduce计算模式的云计算技术为此提出了解决办法1。新型数据挖掘技术集数据库、人工智能、机器学习以及统计学等多领域范畴在内的知识于一身。1.1 MapReduce算法MapReduce实现了两个主要功能:Map和Reduce。Map把一个函数应用于集合中的所有成员,然后

7、返回一个基于这个处理的结果集。Reduce则是把从两个或者更多个Map中的一些中间结果,通过多个线程、进程或独立系统并行处理的结果集进行分类和归纳。MapReduce通过把对数据集的大规模操作分发给网络上的每个节点来实现可靠性,每个节点会周期性地把完成的工作和状态信息返回给主节点。如果一个节点保持沉默超过一个预设的时间间隔,主节点就认为该节点失效了,并把分配给这个节点的数据发到别的节点,并且因此可以被其他节点所调度执行1。由于 MapReduce 运行系统已考虑到了输入数据划分、节点失效处理、节点之间所需通信等各个细节,使得程序员可以不需要有什么并发处理或者分布式系统的经验,就可以处理超大规模

8、的分布式系统资源2。1.2 MapReduce模型MapReduce算法处理大数据问题时,主要可以分为两个阶段进行:首先,对于数据集中每个元素执行用户定义的Map函数,获得中间结果;然后将获得的中间结果通过用户定义的reduce函数进行合并3。在MapReduce模型中,用户需要定义Map和Reduce函数,输入一个键值对列表,键值对就是说一个由键和值组成的二元组(key,value),排序和分组都基于key来完成。Map函数的输入是键值对,对每个键值对进行计算,产生的结果也是中间键值对列表。在Map和Reduce中间这个键值对列表,基于键进行聚集。Reduce函数的输入是基于键的键值对分组,

9、其中每个分组都是独立的。这样就可以使用分布式大规模并行的方式进行处理,总输入能远大于处理MapReduce的节点的内存4-7。图1是MapReduce模型处理过程图。图1 MapReduce模型处理过程图1.3 MapReduce的具体执行过程(1)将输入的每个键值对放到mapper中执行,生成另一个键值对列表(就是中间结果);(2)中间结果按照键进行分组聚合;(3)将每一组放到一个reducer中执行,输出结果写入文件系统;(4)Reducer内对每一组按照键顺序处理,reducer之间则并行运行;(5)有多少个reducer将会产生多少个输出文件,通常不需要合并这些文件,因为他们往往是下一

10、轮MapReduce的输入。1.4 MapReduce性能优化MapReduce框架的运行过程包括Map阶段和Reduce阶段。Map阶段产生的数据存放在本地磁盘中,再由Reduce节点通过远程访问的形式进行下一步计算。由于I/O操作和远程传输是分布式系统中性能的重要支撑,因此,如果能够减少Map阶段产生的数据量,则显然也可以提高系统的性能。下面通过用户访问网站的流量记录查询,来对MapReduce系统优化前后的性能进行对比。图2中Map阶段没有引入Combiner机制,所以数据经过Map阶段之后只是进行初步的分类,并没有规约化处理8。而图3中则是在Map阶段引入了Combiner机制,很明显

11、Map之后产生的数据量减少很多,再传输到Reduce节点进行处理。MapReduce系统的处理速度相对改善之前变得更快。图2 无combiner机制MapReduce流程图图3 引入combiner机制MapReduce流程图2 数据的分析与处理根据市场分析,在未来的10年里,全球数据量还将增加到目前的50倍,面对如此庞大的数据量,必须对其进行分类,数据关联度分析等等。开源的Hadoop已经在过去5年之中被证明是最成功的数据处理平台,可以很好地解决大数据环境下的数据处理与分析4。虽然Hadoop提供了MapReduce编程模式以及HBase基础数据库库,但直接使用这些技术进行数据分析,对于只关

12、注数据深层价值的数据分析员来说并不容易。Hive充当了一个数据仓库的角色,用于存储和处理海量结构化数据。Hive拥有便于理解的数据抽象能力。无论是HDFS的分布式存储方式,还是HBase的面向对象的数据组织结构,对于具体工作人员来说,都是很难理解的深层技术。Hive在底层数据之上提供更高层次的数据处理能力和组织方式,以便于数据分析员进行理解9。数据分析的核心就是描述数据之间的关联性,以从中挖掘更深层次的有价值的信息。Hive则采用简洁易用的操作方式,让数据分析远离复杂的编程。不仅如此,Hive还具有强大数据处理能力和高容错的运行环境。2.1 Hive架构中主要包括以下几类组件: 用户操作接口:

13、用户操作接口主要有三类。第一类是命令行接口(CLI),命令行接口支持数据分析员以命令行形式输入SQL进行数据操作。第二类是WEB界面,为数据分析员提供Web化的操作形式。第三种为Hive应用,Hive支持以JDBC、ODBC、和Thrift的方式开发应用。应用会将用户的请求以相应的接口形式发送给Hive服务器并接受响应。Hive服务器:Hive在启动时会向外提供以Thrift接口形式的服务能力。Hive应用可以以JDBC、ODBC、和Thrift接口访问指定地址和端口的Hive服务器。驱动程序:驱动程序负责处理Hive语句,完成编译、优化和执行的工作,生成相应的MapReduce任务与HDFS

14、节点进行数据交互,完成用户要求的数据操作请求。元数据库:元数据库中存储了Hive中与数据表相关的元数据,记录了数据的库、表以及分区等组织信息。3 应用实例大数据技术应用非常广泛,这里我们介绍其在电力设备故障检测上的应用。随着现代化建设的步伐,很多城市都离不开电,电力设备的安全也关系着人民生命财产安全。人工检查固然必不可少,但是由于日益增多的电力设备使投入的人力物力也越来越多,大数据技术的问世恰恰解决了这一难题。电力设备运行状态及各方面数据都通过底层的传感器或监控设备采进行采集,比如设备的电压、电流的实时变化,电机转速的监控等等。这些信息经过归一化处理与多帧抽取,得到可视化程度比较高的电力状态数

15、据。根据历史运行轨迹判定当前设备是否处于正常运行状态之中,如果发现设备出现故障,可以当即定位出设备具体位置,并分析其具体故障原因以及给出初步解决方案10。除此之外,在大数据的分析下,还可以对电力设备的寿命进行总体评估,工作人员可以根据经验去提前做出检查,提高整个电力系统的运行效率。系统框图如图4所示。图4 电力设备状态监测系统结构图4 结束语本文主要介绍了基于MapReduce的大数据技术的核心技术、处理过程以及实际应用。MapReduce实际上是一个并行式的算法,思路很简单,就是化繁为简,分而治之。它是大数据技术里最重要的一环。讨论大数据是为了更好地解决与我们的生活息息相关的问题,也为未来进

16、入高速的信息化时代做铺垫。参 考 文 献1 刘军.大数据处理M.北京:人民邮电出版社.2013:232-237.2 王宏志.大数据算法M.北京:机械工业出版社.2015:150-170.3 何清.基于云计算的大数据挖掘平台J.中国科学院计算技术研究所,2013,10(04):32-38.4 吴昊.云计算环境下智能优化算法及其在SaaS中的应用研究D.合肥工业大学,20135 王意洁,孙伟东,周松等.云计算环境下的分布存储关键技术M.软件学报,2012:962-986.6 康迎曦,唐北平.基于数据挖掘技术在电力系统中的研究J.电脑知识与技术.2008,26(3):733-734.7 吴夙慧,成颖,郑彦宁等.K-means算法研究综述J.知识组织与知识管理.2011:28-348 李应安.基于MapReduce的聚类算法的并行化研究D.广州:中山大学,2010.9 朱

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论