论文部分内容阅读
期货交易作为一种重要的投资和保值工具,近年来得到了快速的发展,随之而产生的数据也在日益增长,而加快对期货数据的信息资源的整合利用的重要性也就日渐突出。我们可以通过数据挖掘和统计等工具从中发现具有重要价值的信息,传统的数据挖掘模式可以做到这一点,但是随着数据量的不断上涨,出现了一些制约传统数据挖掘模型的因素。首先是对海量数据的存储问题,面对上TB,PB级的数据,传统的商业单机存储已经不能满足要求,其次在如此大规模的数据上进行数据挖掘分析,传统的单机算法所消耗的时间也变得让人难以忍受。在本文中,我们提出一种针对期货行业的海量数据,运用商业计算机集群来实现数据的分布式存储和并行数据挖掘的解决方案。这一方案的实现的基础是由Doug Cutting开发的Hadoop。该框架是由java实现的开源分布式计算框架,其基础为HDFS和Mapreduce,在其上所构建的分布式应用具有很强的规模性,可扩展性和容错性。方案由总体设计和具体实现两部分。首先,我们提出了一种适用于海量数据存储和挖掘的体系结构,该结构用到了软件体系结构中比较著名的层次结构模型,这种设计使得我们的应用具有很强的灵活性和可扩展性。另外,我们针对各层进行了简单的实现,这些实现包括:web前端,Web service控制层,数据挖掘插件,Hbase存储四个部分,其中对于数据挖掘插件的开发我们进行了较为详细的说明。在实现方案中,首先我们在页面上使用WebService和Ajax技术来进行参数的提交,通过这两者我们节省了网络带宽,同时达到了消除异构性的目的。在后台,我们通过Spring的Ioc容器来启动服务,减小了代码的侵入性,同时也很好地管理了服务之间的相互依赖。在数据挖掘插件的开发方面,我们实现了Parallel FP-Growth算法,使用了maven来进行插件的开发,这使得我们的应用更加的具有可管理性和复用性。数据存储方面我们用到了基于列的分布式数据库Hbase,其对于海量数据的存储有很大的优势。