基于Hadoop平台的并行数据挖掘算法工具箱与数据挖掘云
- 格式:pdf
- 大小:457.55 KB
- 文档页数:9
技术平台基于Hadoop电商大数据的挖掘与分析技术研究陈娥祥(福州工商学院,福建 福州 350715)摘 要:随着社会经济水平的不断提高和互联网时代的不断发展,全球数据逐渐呈现出大规模增长的趋势,为了满足海量数据处理需求,大数据挖掘与分析技术应运而生。
Hadoop的出现和应用不仅能科学、高效地处理海量数据,还能可视化展现海量数据最终处理结果,为电商企业的健康、可持续发展提供重要的数据参考和支持。
基于以上情况,以福州地区美容行业的电商系统为例,在介绍相关理论与技术的基础上分析了数据挖掘算法,从系统的整体设计、数据准备、数据挖掘分析三个方面入手,研究了电商大数据挖掘系统的设计,从实验环境、实验数据准备和实验结果分析三方面入手,探讨了系统可视化实现与效果。
希望通过这次深度分析与研究,对公司的运营决策提供有力帮助,为电商平台各方参与者、相关领域技术人员提供有效的借鉴和参考。
关键词:Hadoop;电商大数据;挖掘分析;可视化技术随着社交媒体的不断发展,企业处理数据的途径日益增加、规模日益扩大,并形成了海量的数据流。
在这样的背景下,我国逐渐进入了大数据时代,大数据的生成速度呈现出指数爆炸形式,加上数据在处理的过程中无法分解为常用的数据库,这无疑增加了企业访问和处理数据的难度。
目前,在我国电商行业的迅猛发展下,数据规模递增,为了实现对消费者购买行为相关数据的深入、全面挖掘,进一步提高电商企业的销售业绩,在Hadoop框架的应用背景下,加大对大数据挖掘与分析技术的科学应用,实现数据挖掘技术与电商平台的有效融合,是相关领域技术人员必须思考和解决的问题。
1 相关理论与技术研究1.1 Hadoop平台相关技术研究Hadoop作为一种开源编程框架,被广泛应用于Apache基础项目中。
该框架的编写语言主要以Java语言为主,能够为海量数据集的分布处理提供重要支持。
同时,在部署的过程中,使用的服务器购买价格普遍较低,缩小了物力成本,这样一来,作为开发人员就可以投入较低的成本,实现Hadoop集群搭建,极大地提高了开发效率和效果。
基于云计算的地质大数据挖掘内涵李敏;傅洁;陈安蜀;李磊【摘要】本文探讨了云计算背景下地质大数据挖掘的内涵,搭建了基于Hadoop融合多功能的地质大数据挖掘架构,剖析了大数据挖掘架构中每一层的工作流程.同时,在地质领域数据格式各异、条块分割严重、管理分散等现状的背景下,以地质大数据的存储及云计算技术为基础,总结了地质大数据的处理流程,指出了地质大数据挖掘领域的研究热点以及大数据挖掘面临的挑战.【期刊名称】《中国矿业》【年(卷),期】2019(028)0z1【总页数】5页(P343-346,348)【关键词】大数据;云计算;分布式存储系统Hbase;Hadoop;数据挖掘;地质【作者】李敏;傅洁;陈安蜀;李磊【作者单位】中国地质调查局天津地质调查中心,天津 300170;中国地震局第一监测中心,天津 300180;中国地质调查局天津地质调查中心,天津 300170;中国地质调查局天津地质调查中心,天津 300170【正文语种】中文【中图分类】G2720 引言继云计算、互联网和物联网的发展之后,大数据技术再次掀起信息技术的重大变革。
面对海量的、动态的及不确定的数据,如何实现数据处理以及如何快速实时地从复杂的大数据中挖掘出有价值的信息,形成知识体系,完成产品发布实现数据共享,这些问题传统的技术已无法实现。
同时,当代地质灾害、地下水污染、能源矿产的可持续发展问题严重破坏了地球系统,大数据技术的应用有利于人类与地球的平衡发展,促进地质工作的信息化建设。
云计算是大数据时代的重要支撑,云上的大数据拥有众多的功能服务层,包括跨越大量节点、层以及集群等。
大数据平台融合基于全面的云数据虚拟化架构,整合地质数据的空间基准、语义、尺度,实现多源、异构地质数据的融合和挖掘,进一步加深地质信息资源内容的展示程度,是地质调查工作的重要手段。
大数据的存储及挖掘技术有力促进了“数字地球”“智慧地球”等科学计划的开展。
1 地质大数据目前现有的地质数据量非常庞大,包括地质、矿产、植被、建筑、遥感、地形、地貌、水文、灾害等地表每一点上的结构化数据以及非结构化数据。
基于Hadoop的大数据分析与处理研究随着互联网的发展,数据量也随之呈现爆炸式的增长。
如何有效的处理这些海量数据是目前亟待解决的问题。
Hadoop作为开源的分布式计算框架,已经成为了大数据处理的主要选择。
本文将着重讲解基于Hadoop的大数据分析与处理研究。
一、Hadoop简介Hadoop是一个开源的分布式计算框架,主要解决的是海量数据的存储和处理问题。
它由Apache基金会开发,拥有自己的文件系统HDFS(Hadoop Distributed File System)和分布式数据处理框架MapReduce。
其中,HDFS主要负责海量数据的分布式存储,而MapReduce则是处理和计算数据的核心模块。
目前,Hadoop已经成为了数据科学家和工程师的标配技能之一。
二、Hadoop的优点1. 可扩展性Hadoop的分布式架构使其可以轻松地扩展到数百个节点。
只要增加更多的服务器,Hadoop就可以根据需要添加更多的计算和存储资源,以满足不断增长的数据需求。
2. 高可靠性Hadoop采用了多个复制副本来存储数据,数据能够在不同的节点上复制多份,一旦出现部分节点宕机的情况,仍可以从其他节点中读取数据,确保数据的高可靠性。
3. 高效性Hadoop通过MapReduce操作,可以非常高效地处理大量的数据。
MapReduce采用了并行计算的方式,将数据划分成多个小任务,并分布到不同的节点上进行计算。
这种方式可以最大限度地利用硬件资源,使计算效率得到了极大的提升。
三、基于Hadoop的大数据分析与处理基于Hadoop的大数据分析主要分为四个步骤:数据采集、数据清洗、数据挖掘和数据可视化。
1. 数据采集在大数据分析过程中,需要先获取海量的数据。
数据的来源可以是开放API、爬虫程序、传感器、日志文件等多种渠道。
2. 数据清洗在数据采集后,需要进行数据清洗。
数据清洗主要是为了提高数据的质量,并去除无用的信息。
数据清洗包括去重、删除错误数据、填补缺失值等操作。
基于Hadoop的数据挖掘技术在医疗领域中的应用研究随着信息技术的不断发展和普及,医疗领域也正逐渐接受和应用数据挖掘技术。
其中,基于Hadoop的大数据分析技术在医疗领域中的应用尤为突出。
本文将就Hadoop技术在医疗领域中的应用研究进行分析和探讨。
一、Hadoop技术简介Hadoop是一个Apache开源项目,是一个分布式计算平台,能够处理海量数据的存储和分析。
Hadoop平台分两个部分:Hadoop 分布式文件系统(HDFS)和MapReduce计算模型。
其中,HDFS 用于存储数据,MapReduce用于数据处理和分析。
Hadoop本身还提供了其他工具和组件,如HBase、ZooKeeper和YARN等,可以实现更为复杂的数据处理和分析任务。
Hadoop技术以其强大的并行计算和存储能力,成为大数据时代的重要工具之一。
二、医疗领域中的Hadoop应用目前,医疗领域中的应用重点在于基于Hadoop的数据挖掘技术。
通过挖掘海量的医疗数据,可以获得更为准确和全面的医疗信息,进而提高诊断、治疗和疾病预测的精确度。
1.垃圾邮件过滤医疗领域中,往往需要进行信息筛选和分类,以去除垃圾邮件和恶意信息。
利用Hadoop平台的MapReduce计算模型,可以进行高效的数据过滤,并对邮件数据进行分类和归档。
2.病患信息分析大规模医疗数据的分析是医疗领域中比较重要的工作之一。
通过Hadoop技术,可以对病患信息进行分类、聚类和关联规则挖掘等操作。
除此之外,医疗数据还可以被用于预测疾病的发生和流行趋势等方面。
3.医疗资源管理在医疗领域中,资源管理是非常重要的。
通过Hadoop技术,可以对医疗资源进行全面、客观和精准的管理。
例如医院的医生、护士、病床等资源的管理,可以通过Hadoop平台实现实时监测和数据分析,定期检查和更新资源,以实现更加高效和科学的资源配置。
4.药品排名与推荐医疗领域中,药品的排名和推荐是比较关键的,涉及广大病患的健康。
《基于Hadoop的海量数据处理模型研究和应用》篇一一、引言随着信息技术的迅猛发展,大数据时代已经来临。
海量数据的处理和利用成为了各行业的重要任务。
Hadoop作为一个开源的分布式计算平台,为海量数据处理提供了强大的支持。
本文将重点研究和探讨基于Hadoop的海量数据处理模型,以及其在实际应用中的效果和价值。
二、Hadoop概述Hadoop是一个由Apache基金会所开发的分布式系统基础架构,它允许用普通的硬件集群来分发和处理大规模数据。
Hadoop 的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。
HDFS提供了高可靠性的数据存储服务,而MapReduce则提供了高效的计算框架。
三、基于Hadoop的海量数据处理模型研究(一)数据存储模型Hadoop的海量数据处理模型基于HDFS进行数据存储。
HDFS采用分布式存储的方式,将文件分割成多个块,并将这些块存储在集群的各个节点上,从而实现数据的冗余存储和容错性。
同时,HDFS具有良好的可扩展性,可以适应不同规模的数据存储需求。
(二)数据处理模型Hadoop的数据处理模型基于MapReduce框架。
MapReduce 将大规模的计算任务分解为多个小的计算任务,并通过分布式的方式并行处理这些任务。
Map阶段负责数据的预处理和映射操作,Reduce阶段则负责数据的归约和汇总操作。
这种处理模型可以充分利用集群的计算能力,实现高效的海量数据处理。
四、Hadoop应用实践(一)日志数据分析在互联网行业中,日志数据量巨大且增长迅速。
通过Hadoop 的海量数据处理模型,可以实现对日志数据的快速存储和高效处理。
例如,通过对用户行为日志的分析,可以了解用户的兴趣偏好、消费习惯等信息,为企业的营销策略提供支持。
(二)图像处理图像处理是一个计算密集型的任务,需要大量的计算资源和存储空间。
通过Hadoop的分布式计算能力,可以实现对海量图像的快速处理和分析。
数据挖掘中的并行计算技术数据挖掘是一项重要的技术,它能够从大量的数据中提取出有用的信息和模式。
然而,随着数据规模的不断增大,传统的串行计算已经无法满足数据挖掘的需求。
为了提高计算效率,研究人员开始探索并行计算技术在数据挖掘中的应用。
并行计算是指将一个大任务分解成多个小任务,并同时进行处理的计算模式。
在数据挖掘中,这些小任务可以是对数据的分割、特征提取、模型训练等。
通过并行计算,可以大大缩短任务的执行时间,提高数据挖掘的效率。
在并行计算中,最常见的技术是分布式计算。
分布式计算是指将计算任务分配给多台计算机进行处理,通过网络进行通信和协调。
每台计算机都可以独立地处理一部分数据,并将结果进行合并。
这种方式可以充分利用多台计算机的计算资源,提高整个系统的计算能力。
除了分布式计算,还有一种常见的并行计算技术是图形处理器(GPU)计算。
GPU是一种专门用于图形渲染的硬件设备,但由于其高度并行的特性,也可以用于其他计算密集型任务,包括数据挖掘。
通过利用GPU的并行计算能力,可以加速数据挖掘算法的执行速度。
在数据挖掘中,有一些算法天然适合并行计算,比如k-means聚类算法和决策树算法。
这些算法的计算过程可以被划分成多个子任务,并行地执行。
而对于一些算法,如关联规则挖掘和聚类算法,虽然其计算过程不易并行化,但也可以通过一些技巧进行并行化处理。
此外,数据挖掘中的并行计算还面临一些挑战。
首先是数据的划分和分发问题。
在分布式计算中,如何将数据均匀地分配给不同的计算节点,并保证数据的一致性和完整性,是一个复杂的问题。
其次是任务的调度和负载均衡问题。
如何合理地分配任务给不同的计算节点,并使得各个节点的计算负载均衡,是一个关键的挑战。
为了解决这些问题,研究人员提出了一些优化策略。
例如,可以采用数据划分算法来保证数据的均匀分布。
可以采用动态负载均衡算法来根据计算节点的实时负载情况,动态地调整任务的分配。
这些优化策略可以提高并行计算的效率和性能。
一、选择题1、物联网的发展使得数据生成方式得以彻底的改变,其属于()。
A被动式生成数据B主动式生成数据C感知式生成数据D半主动式生成数据2、从数据库技术诞生以来,产生大数据的方式主要经过了三个发展阶段,分别是()、主动式生成数据、感知式生成数据。
A被动式生成数据B网络式生成数据C传感器生成数据D半主动式生成数据3、大数据的数据类型包括结构化数据、非结构化数据和()A半结构化数据B无结构数据C关系数据库数据D网页4、大数据的数据类型包括结构化数据、()和半结构化数据A非结构化数据B无结构数据C关系数据库数据D网页5、大数据的数据类型包括()、非结构化数据和半结构化数据A结构化数据B无结构数据C关系数据库数据D网页6、常见的网络信息系统包括电子商务系统和()A社交网络B社会媒体C搜索引擎D以上三个选项都是7、下列与大数据密切相关的技术是()A蓝牙B云计算C博弈论D wifi8、大数据应用依托的新技术是()A大规模存储与计算B数据分析C智能化D以上三个选项都是9、下列不属于数据抽取和集成引擎的是()。
A基于物化或ETL方法的引擎B基于中间件的引擎C 基于空间数据的引擎D基于数据流方法的引擎10、大数据呈现出“4V1O”的特征,下列描述正确的是()A V olume、Variety、vacation、V elocity、On-LineB V olume、Variety、Value、Velocity、On-LineC V olume、Variety、Value、vehicle、On-LineD V olume、violence、Value、vehicle、On-Line11、大数据“4V1O”的特征中,表示大数据种类和来源多样化的是()A V olumeB VarietyC ValueD Velocity12、大数据“4V1O”的特征中,表示大数据价值密度相对较低,需要很多的过程才能挖掘出来的是()A V olumeB VarietyC ValueD Velocity13、大数据“4V1O”的特征中,表示时效性要求高的是()A V olumeB VarietyC ValueD Velocity14、大数据“4V1O”的特征中,表示数据量大的是()A V olumeB VarietyC ValueD VelocityD基本研究与人类资源15、美国信息高速公路计划HPCC(高性能计算与通信)中包含的BRHR是指()A高性能计算机系统B国家科研与教育网格C先进软件技术与算法D基本研究与人类资源16、大数据分析的典型工具中,属于实时计算系统的是()A HPCCB RapidMinerC Apache DrillD Storm17、大数据分析的典型工具中,属于数据挖掘解决方案的是()A HPCCB RapidMinerC Apache DrillD Storm18、大数据管理平台所必须考虑的要素是()A自动化和分布式B智能化和开放式C并行化和分布式D并行化和开放式19、大数据采集一般分为()和基础支撑层A基础架构层B智能感知层C数据处理层D数据挖掘层20、Hadoop是一个能够对大量数据进行()处理的软件框架A分布式B一体化C集成化D综合化21、Hadoop是一个能够对大量数据进行分布式处理的()框架A系统B传感C硬件D软件22、EDC系统在临床试验中的应用可以有效解决纸质CRF存在的问题,EDC是一种数据()系统。
基于Hadoop的大数据处理与分析平台搭建与优化一、引言随着互联网和物联网技术的快速发展,大数据已经成为当今社会中不可或缺的一部分。
大数据处理与分析平台的搭建与优化对于企业来说至关重要。
Hadoop作为目前最流行的大数据处理框架之一,其在大数据领域有着广泛的应用。
本文将重点介绍基于Hadoop的大数据处理与分析平台的搭建与优化。
二、Hadoop简介Hadoop是一个开源的分布式计算平台,可以对大规模数据进行存储和处理。
它包括Hadoop Distributed File System(HDFS)和MapReduce两个核心组件。
HDFS用于存储数据,而MapReduce用于处理数据。
除此之外,Hadoop生态系统还包括Hive、Pig、HBase、Spark等工具和框架,为用户提供了丰富的功能和工具。
三、大数据处理与分析平台搭建1. 硬件环境准备在搭建大数据处理与分析平台之前,首先需要准备适当的硬件环境。
通常情况下,需要考虑服务器数量、内存大小、存储容量等因素。
同时,为了保证系统的稳定性和性能,建议采用高可靠性的硬件设备。
2. 软件环境准备在硬件环境准备完成后,接下来需要安装和配置Hadoop及其相关组件。
可以选择使用Apache Hadoop或者Cloudera、Hortonworks等发行版。
在安装过程中,需要注意版本兼容性以及各组件之间的依赖关系。
3. 配置Hadoop集群配置Hadoop集群是搭建大数据处理与分析平台的关键步骤之一。
需要配置主节点(NameNode、ResourceManager)和从节点(DataNode、NodeManager),并确保集群中各节点之间可以正常通信。
4. 数据导入与处理在搭建好Hadoop集群后,可以开始导入数据并进行处理。
可以通过Sqoop将关系型数据库中的数据导入到HDFS中,也可以通过Flume实时收集日志数据。
同时,可以编写MapReduce程序或使用Spark进行数据处理和分析。
基于云计算的大数据挖掘平台作者:何清庄福振来源:《中兴通讯技术》2013年第04期摘要:开发了一个基于云计算的并行分布式大数据挖掘平台——PDMiner。
PDMiner实现了各种并行数据挖掘算法,如数据预处理、关联规则分析以及分类、聚类等算法。
实验结果表明,并行分布式数据挖掘平台PDMiner中实现的并行算法,能够处理大规模数据集,达到太字节级;具有很好的加速比性能;实现的并行算法可以在商用机器构建的并行平台上稳定运行,整合了已有的计算资源,提高了计算资源的利用效率;可以有效地应用到实际海量数据挖掘中。
在PDMiner中还开发了工作流子系统,提供友好统一的接口界面方便用户定义数据挖掘任务。
关键词:云计算;分布式并行数据挖掘;海量数据Abstract: In this paper, we develop a parallel and distributed data mining toolkit platform called PDMiner. This platform is based on cloud computing. PDMiner is used to preprocess data,analyze association rules, and parallel classification and clustering. Our experimental results show that the parallel algorithms in PDMiner can tackle data sets up to one terabyte. They are very efficient because they have good speedup, and they are easily extended so that they can be executed in a cluster of commodity machines. This means that full use is made of computing resources. The algorithms are also efficient for practical data mining. We also develop a knowledge flow subsystem that helps the user define a data mining task in PDMiner.Key words: cloud computing; parallel and distributed data mining; big data中图分类号:TN915.03; TP393.03 文献标志码:A 文章编号:1009-6868 (2013) 04-0032-007随着物联网、移动通信、移动互联网和数据自动采集技术的飞速发展以及在各行各业的广泛应用,人类社会所拥有的数据面临着前所未有的爆炸式增长。
基于Hadoop平台的并行数据挖掘算法工具箱与数据挖掘云来源:南京大学计算机科学与技术系作者:高阳,杨育彬,商琳时间:2011-06-27 浏览次数:60一基于云计算的海量数据挖掘2008年7 月,《Communications of the ACM》杂志发表了关于云计算的专辑,云计算因其清晰的商业模式而受到广泛关注,并得到工业和学术界的普遍认可。
目前工业界推出的云计算平台有Amazon公司的EC2和S3,Google公司的Google Apps Engine, IBM公司的Blue Cloud,Microsoft公司的Windows Azure, Salesforce公司的Sales Force, VMware公司的vCloud,Apache软件开源组织的Hadoop等。
在国内,IBM与无锡市共建了云计算中心,中石化集团成功应用IBM的云计算方案建立起一个企业云计算平台。
阿里巴巴集团于2009年初在南京建立电子商务云计算中心。
严格的讲,云计算是一种新颖的商业计算模型,它可以将计算任务分布在大量互连的计算机上,使各种应用系统能够根据需要获取计算资源、存储资源和其他服务资源。
Google公司的云平台是最具代表性的云计算技术之一,包括四个方面的主要技术:Google文件系统GFS、并行计算模型MapReduce、结构化数据表BigTable和分布式的锁管理Chubby。
基于以上技术,云计算可以为海量数据处理和分析提供一种高效的计算平台。
简单来说,将海量数据分解为相同大小、分布存储,然后采用MapReduce模型进行并行化编程,这种技术使Google公司在搜索引擎应用中得到了极大的成功。
然而MapReduce计算模型适合结构一致的海量数据,且要求计算简单。
对于大量的数据密集型应用(如数据挖掘任务),往往涉及到数据降维、程序迭代、近似求解等等复杂的算法,计算非常困难。
因此,基于云计算的海量数据挖掘技术成为了工业界和学术界共同关心的热点技术之一。
分布式计算是解决海量数据挖掘任务,提高海量数据挖掘效率的方法之一。
目前,分布式数据挖掘技术主要有基于主体(agent)的分布式数据挖掘、基于网格的分布式数据挖掘、基于云的分布式数据挖掘等。
海量数据挖掘另一个核心问题是数据挖掘算法的并行化。
图1给出基于云计算的海量数据挖掘服务的层次结构图。
图1 基于云计算的海量数据挖掘服务的层次结构图中国移动研究院从2007年3月份启动“大云”的研发工作。
2008年,中国移动研究院已建设有256个节点、1024个CPU、256TB存储的云平台。
中国移动“大云”平台主要为数据挖掘、系统评估、搜索等应用提供计算服务。
在开源Hadoop云平台上,中科院计算所研制了并行数据挖掘工具平台PDMiner。
针对海量数据,云计算分别从数据挖掘模式和方法等方面进行相关的研究。
与此同时,中科院深圳先进研究院还研制了一个分布式数据挖掘系统AlphaMiner。
本文首先讨论了海量数据挖掘的研究热点;其次基于开放的Hadoop平台,讨论并行数据挖掘算法工具箱和数据挖掘云的设计。
二技术热点云计算是一种资源利用模式,它能以简便的途径和以按需的方式通过网络访问可配置的计算资源,快速部署资源。
在这种模式中,应用、数据和资源以服务的方式通过网络提供给用户使用。
大量的计算资源组成资源池,用于动态创建高度虚拟化的资源以供用户使用。
但对于海量数据分析任务,云平台缺乏针对海量数据挖掘和分析算法的并行化实现。
因此面向海量数据挖掘的新型云计算模式,主要包括海量数据预处理、适合于云计算的海量数据挖掘并行算法、新型海量数据挖掘方法和云计算数据挖掘工具箱等技术。
(1)海量数据预处理。
为了适合并行处理,云平台应可以提供海量数据的概念分层组织以及海量数据的并行加载;并实现高维度约减和数据稀疏化技术,提高数据管理和挖掘的效率。
(2)适合于云计算的海量数据挖掘并行算法。
海量数据挖掘的关键问题是数据挖掘算法的并行化。
而云计算采用MapReduce 等新型计算模型,这意味着现有的数据挖掘算法和并行化策略不能直接应用于云计算平台下进行海量数据挖掘,需要进行一定的改造。
因此需要深入研究数据挖掘算法的并行化策略,继而实现高效的云计算并行海量数据挖掘算法。
并行海量数据挖掘算法包括并行关联规则算法、并行分类算法和并行聚类算法,用于分类或预测模型、数据总结、数据聚类、关联规则、序列模式、依赖关系或依赖模型、异常和趋势发现等。
在此基础上,针对海量数据挖掘算法的特点对已有的云计算模型进行优化和扩充,使其更适用于海量数据挖掘。
(3)新型海量数据挖掘方法。
新型海量数据挖掘方法包含面向同构数据、异构数据和跨域数据的不同的数据挖掘新方法。
在同构海量数据挖掘系统中,各个节点存储的数据都具有相同的属性空间。
云平台采用集成学习的方式来生成最终的全局预测模型。
并在同构节点的元学习基础上,实现数据挖掘增量学习方法,已满足实时要求;在异构海量数据挖掘系统中,云平台根据数据模态,将数据节点分类,并提供异构数据相关性度量和集成机制。
除此之外,由于数据挖掘应用的特殊性,云平台能提供对海量数据迁移挖掘方法的支撑,以便扩充云计算环境下数据挖掘应用的适用范围,更好地满足数据挖掘终端用户的需求。
(4)并行数据挖掘工具箱。
海量数据挖掘应用系统开发前,都会对采用的算法进行性能的评估。
目前已有的Weka工具箱采用的是单机算法,不能应用在基于云计算的海量数据挖掘应用中。
Apache组织近年来组织了Mahout开源项目,设计用于云平台的数据挖掘算法。
但Mahout项目目前还缺少数据准备、数据展示和用户交互,还不完全适合海量数据挖掘并行算法的性能评估。
因此,云平台应可以提供一个基于MapReduce计算模型的并行数据挖掘工具箱,用于海量数据挖掘并行算法的性能评估。
在网格计算研究中,国际研究者研发了多个基于网格的复杂数据分析任务的服务系统,如Data Mining Grid、Grid Miner等等。
在这些系统中,实现了复杂数据分析任务的工作流定义、资源调度和管理的透明化、具体算法的注册和服务化等。
以上部分技术可以直接迁移到云计算平台上,但由于云计算模式和数据挖掘服务的特殊性,仍需在按需服务、多任务调度和分配等技术上进行进一步的突破。
具体技术内容包括:(1)按需服务的自治计算模式。
将海量数据挖掘任务的服务化,设计并实现并行数据挖掘软件自配置、自优化、自修复和自保护的方法,以及自适应用户需求的数据挖掘服务的自动发现和组合算法。
(2)多任务的动态分配机制。
海量数据挖掘应用往往是数据密集,且具有突发性的特点;除此之外,不同的数据挖掘应用对算法精度、性能要求也不一致。
因此,基于云计算的海量数据挖掘必须优化负载调节的策略与任务迁移策略等。
(3)数据挖掘服务的动态按需迁移。
云平台提供支持海量数据挖掘任务的服务重定位方法,即当一个服务器上运行中的服务按需迁移到另一个服务器上去时,能同时有效地为后继工作流任务提供可用的资源空间,并满足整合服务器资源的需要。
在资源管理和配置中,针对海量数据的大规模和异构等特点,运用虚拟化技术进行存储管理,并设计一种新型的动态迁移架构。
(4)复杂数据挖掘任务服务平台。
在Hadoop等云平台上,设计支持复杂数据挖掘任务服务化的中间件系统。
支持复杂数据分析任务的流定义、复杂数据分析任务的动态配置、并行算法的注册、云平台资源的调度和管理的透明化,最终实现复杂数据分析任务的按需服务。
三基于Hadoop的并行数据挖掘算法工具箱——DodoWeka是由新西兰Waikato大学研发的数据处理和知识发现软件包。
其可以实现数据预处理、聚类、分类、回归、特征选择、可视化等各种数据挖掘的任务。
Weka被广泛用于各种数据挖掘任务中算法的评估。
但其中数据挖掘算法的实现是基于单机实现的。
与Weka不同的是,Apache组织基于Hadoop平台的,采用MapReduce计算模型,实现大量机器学习算法的并行化,并将其封装在Mahout 项目。
但由于Mahout并不提供一种图形界面交互,用户需要大量手工配置数据和参数,同时目前实现的并行数据挖掘算法也不完全。
因此有必须借鉴Weka和Mahout的优点,研发一个基于Hadoop的并行数据挖掘算法工具箱——Dodo。
表1给出三个工具箱目前的主要异同点。
表1 Weka, Mahout和Dodo主要异同图2 Dodo工具箱运行流程在图2中,如果用户是首次启动工具箱,需要选择连接的Hadoop环境并对环境进行配置;当用户需要上传数据,工具箱以树形图的形式,将用户的数据上传到指定的Hadoop路径上;如果不是顺序数据,工具箱则将其顺序化然后存储;在算法选择阶段,用户可以选择工具箱自带的并行化数据挖掘算法,也可以选择用户指定的、本地的jar文件;通过工具箱,用户能对选择的算法进行设置,其中包括输入输出路径,算法特定的参数等等;最后在Hadoop环境上对指定输入路径上的数据运行指定的算法,输出结果以可视化的方式展示给用户。
图3 Dodo工具箱模块结构图图3中,将Dodo工具箱分为用户交互层、内部实现层以及Hadoop交互层等三个层次。
用户交互层主要负责结果展示、算法选择等需要和用户进行交互的操作;内部实现层是Dodo的核心部分,负责与上层和下层进行交互,将一些操作进行抽象供两层进行调用;而Hadoop交互层主要是负责和Hadoop平台进行相应的操作,进行相关的平台配置或者数据上传或读写。
四数据挖掘云不同于其他的企业应用,将数据挖掘应用服务化,具备以下4个非常特殊的特点:(1)简单化的工作流。
数据挖掘应用从工作流角度来看,相对非常简单。
应用中没有复杂的流程,也没有很多不同的角色。
但数据挖掘应用仍然是一个工作流。
因此将其服务化时,需要提供一个可视化的工作流编辑、管理界面,云平台也要提供对工作流引擎的监控。
(2)丰富的算法选择。
不同于企业应用,在数据挖掘应用实现一个具体的挖掘任务有很多种算法。
在很多情况下,每种算法的性能和效率都有可能不一样。
(3)结果的不确定性。
数据挖掘任务中,选择不同的数据和算法,将有可能导致不同的计算结果。
(4)应用的突发性。
很多的数据挖掘应用的请求会随着时间、空间呈现出突发性,这对资源提出了很高的“伸缩性”需求。
从以上特点可以看出,数据挖掘服务是一种真正的按需服务。
用户可以根据自己的需求以及付费能力选择适合自己的服务模式。
因此,所谓数据挖掘云是指在hadoop平台上提供支持复杂数据挖掘任务的服务系统,此系统能够提供复杂数据挖掘任务的工作流定义、资源调度、算法和工具以web service的方式向外提供服务。
数据挖掘云的结构如图4所示:图4 数据挖掘云数据挖掘云的最底层是扩展云计算平台Hadoop的功能,实现HDFS数据管理、算法管理和资源监控,其中算法管理模块集成了各种基于MapReduce的工具箱,以向上提供算法服务。