面向数据挖掘的云端实施方案摘要:云端运算是一种基于互联网的新兴应用计算机技术,数据挖掘是商业智能的重要环节,DataMining与云端运算的结合将极大提高数据挖掘的应用与统计科学的发展。本文提出了云端的数据挖掘即服务(DMaaS,DataMiningasaServes)的概念,分别从IaaS、PaaS与DMaas给出了面向数据挖掘的云端实施方案;设计出商用DM软件与开源DM软件的云端实施平台,引入R中平行运算技术对Cloud-R进行改进。关键词:云端运算;DataMining;DMaaS;平行运算中图分类号:C81文献标识码:ATheCloudComputingProgramforDataMiningTechnologyAbstract:CloudcomputingisakindofnewlyemergingtechnologyofcomputerapplicationbasedonInternet.DataMiningisakeystepinBusinessIntelligence.ThecombinationofDataMiningandCloudcomputingwillgreatlyenhancetheapplicationofDataMiningandthedevelopmentofStatisticsScience.ThepaperproposestheconceptofDMaaSandprovidesimplicationprogramsofcloudcomputingfromtheaspectofIaaS,PaaSandDMaaSrespectively.ThepaperdesignsthecloudcomputingplatformsofCommercialDMsoftwareandopensourceDMsoftware,andintroducesparallelcomputinginRtoimproveCloud-R.Keywords:CloudComputing;DataMining;DMaaS;ParallelComputing引言数据挖掘也是商业智能的重要环节,数据仓库是数据挖掘得以发展的基础,也是商业智能的支撑,由此可见数据仓库对于商业智慧来言具有很重要的作用,它集成了企业的最核心的数据,随着企业对数据的再次利用和深入挖掘,海量数据的高效计算问题成为企业最为关注的一个问题之一。在商业智慧(BI)活动中,数据仓库与数据挖掘要求的费用支出庞大,很多中小企业望而却步。云端运算的出现,对中小企业来讲,是一个振奋人心的好消息。如果云端运算应用在商业智能上,由于云端运算具有按需使用、按使用收费特性,这将大大减少企业应用商业智能的成本。此外,一方面,我们可以通过云的数据仓库实现海量数据的高效计算。另一方面,云端运算可以实现在线支付使用数据挖掘工具和商业智能相关分析处理软件。数据挖掘(DataMining)具备更多的工具与更成熟的功能,与领导品牌的BI解决方案并驾其驱,但投资成本却更低;DataMining大幅提升的效能与新增强化的功能,吸引我们全面升级以发挥新技术的效益。例如,台湾广达电脑有限公司以Intel搭配SQLServer,所耗费的成本却低于Unix的三分之一,创造了绝对的成本优势。目前,在线数据挖掘服务也受到大陆许多企业的青睐,中国的海量信息技术有限公司提供的名“海纳睿”的在线数据挖掘服务,可以利用其在在线网络数据挖掘技术上的优势,为用户提供个性化需求,定制个性模块服务,以此来满足网站的不同需求。此外,开源商业智慧(BI)厂商生态系统逐渐崛起,包括JasperSoft、Actuate、Pentagon、SpagoBI等。云端运算(CloudComputing)是分布式处理(DistributedComputing)、并行处理(ParallelComputing)和网格计算(GridComputing)的发展,或者说是这些计算机科学概念的商业实现,它具有超大规模、虚拟化、高可靠度、高通用性、使用者付费、成本低、高扩充性等特色。云端运算将庞大运算操作拆成千百个较小的操作,再交给远程、多台服务器同时运算;透过此种技术,网络服务提供者可以在数秒之内,处理数以千万计的信息,并提供和超级计算机一样强大效能的网络服务,以符合网络用户日增的各种需求。云端运算基于因特网的运算方式,它通过因特网为个人使用者或企业使用者提供按需即取的服务。直观来讲,云端算法就是让网络上不同计算机同时帮你做一件事情,大幅度的提高了处理速度和效率。云端运算的最终目标即为所有的资源均来自于云端,使用者只需一个连接云端的设备(手机等)和简单的界面(如浏览器等)即可,Google搜寻服务,Gmail,YouTube,GoogleDocs,GoogleTalk,iGoogle,GoogleCalendar已充分使用云端运算技术;其它如微软,YAHOO,AMAZON也采用这种技术提升网络服务功能。从概念上说,使用者需要云端运算的计算平台或IT基础设施,并在这些平台与设施中运行应用。因此,计算云给予使用者进入硬件、软件及数据资源的服务,此后,一个集成的计算平台以一种透明的方式进行服务。图1云端架构服务层次示意图云端运算包括以下几个层次的服务,架构即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。云端运算服务通常提供通用的通过浏览器存取的在线商业应用,软件和数据可储存在数据中心。架构即服务提供了核心计算资源和网络架构的服务,如防火墙、路由器、下载分配等。架构即服务供货商包括亚马逊的弹性计算云EC2和Joyent。平台即服务提供平台给系统管理员和开发人员,为它构建、测试及部署定制应用程序。平台即服务供货商包括微软的Azure、Google的AppEngine等。软件即服务通过Internet提供软件的模式,用户向提供商租用基于Web的软件,来管理企业经营活动,且无需对软件进行维护,服务提供商全权管理和维护软件。软件即服务供货商包括惠普的云打印服务,IBM的Lotus架构即服务IaaS平台即服务PaaS软件即服务SaaSLive为企业提供的协作和社交网络服务。其它SaaS提供商如Birst和SAS提供按需商务智慧服务,Salesforce.com和Zoho提供客户关系管理(CRM)等。一、面向DM的架构即服务(IaaS)架构即服务(IaaS)作为服务或硬件服务,指的是提供以IT基础设施为基础,基于虚拟或物理资源作为一种商品;这些资源满足内存,CPU类型和能力以及存储方面的最终用户的需求,并在大多数情况下是操作系统。用户按使用计费的基础上支付,必须建立对这些资源的主持和卖方所拥有的数据中心管理上他们的系统;架构即服务提供了核心计算资源和网络架构的服务。图2IaaS架构图面向DataMining的IaaS,其软件平台、机房建置与技术实施可按照表1中的方案实施。表1面向DM的IaaSIaaS构成实施方案构建软件平台(Software)提供用户R软件完善的web接口,以及多台双核心服务器的支持,进而缩短统计分析上所耗费的计算时间(适用于Cloud-R云端实施平台)以R统计软件为基础,透过网页浏览器即能做出统计运算,并且加入云端技术的支持,让使用者可以无限扩充运算能力(适用于Cloud-R云端实施平台)采用SUN-Micro、Trend-Micro技术作为支持,完成硬件虚拟化基本架构以OpenSource为主进行研发,掌握Totalsolution评估Centos,Xen,Hadoop,Tashi,Eucalyptus,Ganglia,Nagios等开源软件集,进行各项运转测试机房建置(Hardware)硬件建置:X86PC/服务器为基础的丛集系统整合云端测试套件(TestSuites);确认示范应用导入需求及测试规格GUIportal建置技术实施方案(Technology)虚拟平台机:以x86PC服务器架构丛集系统,建立虚拟机平台,运用开放原始码软件,建置如Amazon-like云端服务,实作IaaS试营运自动化负载平衡:在多核系统上使用Xen控制多台虚拟机并执行不同功能的伺服主机;变动Xen的CreditCPU排程器的weight及cap参数设定,来观察虚拟伺服主机的效能;利用观察的经验数据及机器学习算法建立效能函数模型;利用多目标决策IaaS构建软件平台(Software)技术实施方案(Technology)机房建置(Hardware)规划寻找最佳的weight及cap参数设定自动化大量数据切割与整合:以Java语言进行单机系统仿真大量数据切割与重组;设计出单机系统仿真大量数据切割与重组的多引线算法,并开发修正边缘计算效应的算法(4)服务质量衡量:透过客户端程序与HadoopDistributedFileSystem(HDFS)上的NameNodedaemon沟通,以得到对客户端程序存取最有利的DataNodedaemon所在的主机位置及档案目录。接着,客户端程序再直接向DataNodedaemon要数据或上传数据至该主机上GPU协同平行化程序分析与部属:以OpenMP、WindowsAPIThreads进行多核心CPU分布式算法设计,并使用NVIDIAGUDAGPU进行分布式算法设计,使两种不同架构下的计算进行比较与测试,也设计CPU与GPU协同运算算法。云端运算主机使用CPU与NVIDIACUDAGPU协同运算,在时间、人力充足的情况下,可以考虑使用ThreadsAPI对硬件做进一步效能优化注:参考资料:1、谢邦昌.《云端运算在商业智能及数据挖掘的应用前沿综述》.2010。2、台湾财团法人信息工业策进会国立中山大学.《台湾云端达算应用实验中心研发计划》.2010.二、面向DM的平台即服务(PaaS)PaaS(PlatformasaService)就是将云计算时代相应的服务器平台或者开发环境作为服务提供给用户,用户可以在平台上进行软件部署及软件开发等工作阵。平台即服务(PaaS)作为一个服务解决方案提供应用程序或开发平台,用户可以创建自己的应用程序将在云中运行。平台即服务提供平台给系统管理员和开发人员,以及它构建、测试及部署定制应用程序。PaaS的实现提供了一个应用程序框架和一组API,可用于编程或开发人员组成的云应用程序的用户。在一些情况下,PaaS的解决方案通常提供为一体的综合开发平台,同时提供一个系统和一个顶尖的IT基础结构的申请将被执行。(一)接口服务发布接口服务发布是实现PaaS平台应用管理的关键技术。接口服务按照SOA模式,采用WebService技术进行发布。以.Net平台下的接口设计和发布为例:将所有业务服务功能封装成接口实体类并编译,PaaS平台将实体类的名称、调用规范、功能描述等信息添加到应用接口列表中,并实现接口与业务实体类的映射;用户在使用接口时,向平台发送WebService请求;拦截器将请求截获后在接口列表中查找出相应接口和实体类,通过反射技术取得实体对象进行业务处理,最后将处理结果返回给用户。用户封装、编译接口调用请求注册、映射通过反射机制进行接口和实体映射图3面向DM的应用接口注册及调用逻辑结构(二)CommonAPI技术整合现有服务的API,对现有云端服务API进行研究(GoogleAPIs、MicrosoftAzureAPIs、salesforce.comwebserviceAPIs),使用规范将定义成说明档,以利使用者查询。在使用者自制云端服务的上传机制,也将撰写一个网页,以方便使用者上传至云端,供其他使用者使用。而在检查机制上,也会有所限定;利用DWR,让javascript去呼叫在云端的meta-api即云端服务,以达到云端服务的提供与实现。三、面向DM的软件即服务(DMaaS)面向DM的软件即服务DMaaS(DataMiningasaServes)是数据挖掘的新理念,通过Internet提供软件的模式,用户向提供商租用基于Web的DM软件,来进行企业或个人的数据挖掘活动,且无需对软件