- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于云计算的web日记分析平台的设计与实现
1 基于web的数据挖掘
现在,单一节点的计算遇到了瓶颈。云计算用于获取网络中的强大计算资源,并将大量复杂计算数据集分发到多个节点,是一种有效的解决方案。Internet是全球最大的数据集合,基于Web的数据挖掘一直是国内外学者研究的热点。但是目前对Web数据挖掘的研究主要集中在改进挖掘算法方面,这只会提高挖掘系统的有效性,而挖掘系统对数据的处理能力并没有提高。随着网络技术的迅猛发展,Web上的数据正以指数级形式飞速增长,使基于单一节点的挖掘平台不能完成目前海量数据网络的分析任务。因此,解决此类问题需要借助云计算强大的计算能力。
本文结合Web日志文件的特点给出了基于Hadoop集群框架的数据挖掘平台,通过一种改进的并行遗传算法验证该平台的有效性和高效性。
2 生成文件的执行流程一
Hadoop是Apache下的一个开源软件,它作为一个开源的软件平台使编写和运行用于处理海量数据的应用程序更加容易。Hadoop框架的核心思想是Map/Reduce。Map/Reduce是一个用于进行大数据量计算的编程模型,同时也是一种高效的任务调度模型,它将一个任务分成很多更细粒度的子任务,这些子任务能够在空闲的处理节点之间调度,使处理速度越快的节点处理越多的任务,从而避免处理速度慢的节点延长整个任务的完成时间。执行一个Map/Reduce操作需要5个步骤:输入文件,将文件分割并分配给多个worker并行执行,本地写中间文件,合并中间文件,输出最终结果。具体流程如下:
(1)Map/Reduce库将输入文件分成大小相等的M份,并在集群的不同机器上执行程序的备份。
(2)Master节点的程序负责找出空闲的worker节点并为它们分配子任务(M个Map子任务和R个Reduce子任务)。
(3)被分配到Map子任务的worker节点读入已分割好的文件作为输入,经过处理后生成key/value对,并调用用户编写的Map函数,Map函数的中间结果缓存在内存中并周期性地写入本地磁盘。
(4)这些中间数据通过分区函数分成R个区,并将它们在本地磁盘的位置信息发送给Master,然后由Master将位置信息发送给执行Reduce子任务的节点。
(5)执行Reduce子任务的节点从Master获取子任务后,根据位置信息调用Map工作节点所在的本地磁盘上的中间数据,并利用中间数据的key值进行排序,将具有相同键的对进行合并。
(6)执行Reduce子任务的节点遍历所有排序后的中间数据,并传递给用户定义的Reduce函数。Reduce函数的结果将被输出到一个最终的输出文件。
(7)当所有Map子任务和reduce子任务完成时,Master节点将R份Reduce结果返回给用户程序,用户程序将这些数据合并得到最终结果。
基于Map/Reduce编程模型编写分布式并行程序非常简单,只需要实现Map和Reduce函数及如何将问题进行分割,区分操作是Map操作还是Reduce操作,而并行编程中的其他复杂问题,如分布式存储、工作调度、负载平衡、容错处理、网络通信,都由Map/Reduce框架负责处理。
3 计算节点的回收
基于Hadoop集群框架的Web日志分析平台的整体框架如图1所示。
首先,用户通过浏览器提交挖掘任务。任务调度节点接收任务后将任务分割成小的任务单元,并查询节点空闲列表,然后将任务单元分派给集群中空闲的计算节点。计算节点根据任务单元中的数据源位置信息从数据存储节点中获取数据,并进行相应的计算工作,最后将结果返回到任务调度节点进行汇总,由任务调度节点将最终结果返回给用户。所有计算节点每隔一段时间要向主节点发送一个信号,以证明该计算节点工作正常以及是否处于空闲状态。主节点也要实时将计算节点的状态返回给任务调度节点。
4 基于数据分割和遗传算法的ds-pga算法
基于Hadoop的Web日志分析算法必须是能够并行处理的算法。目前,用于Web日志挖掘的算法主要有最大向前序列法、参考长度法、树形拓扑结构法以及基于支持-偏爱度概念设计的网站访问矩阵的浏览偏爱路径挖掘算法等。在实际大型企业Web站点中,URL数常常达到几万甚至几十万,这将造成构造出的Web访问矩阵过大,传统基于单机处理海量数据的能力成为发展的一个瓶颈。为了解决此问题,对常用数据挖掘算法C4.5、SPRINT、关联规则、K-means等进行改进,提出了许多基于传统挖掘算法的并行算法。其中,基于数据划分的方法是普遍采用一种并行处理的方法:首先将数据集合划分为适当的子块,然后在各个子块上用传统的挖掘算法(如Aprior算法)进行处理,最后将各个子块上的结果进行合并。但这种算法有一个局限,即每个子块扫描一次数据库后要交换局部解以产生全局解,这将产生巨大的数据交换开销,尤其
原创力文档


文档评论(0)