基于Hadoop的并行数据挖掘算法工具箱——Dodo
1.dodo
Weka是由新西兰Waikato大学研发的数据处理和知识发现软件包。其可以实现数据预处理、聚类、分类、回归、特征选择、可视化等各种数据挖掘的任务。Weka被广泛用于各种数据挖掘任务中算法的评估。但其中数据挖掘算法的实现是基于单机实现的。与Weka不同的是,Apache组织基于Hadoop平台的,采用MapReduce计算模型,实现大量机器学习算法的并行化,并将其封装在Mahout项目。但由于Mahout并不提供一种图形界面交互,用户需要大量手工配置数据和参数,同时目前实现的并行数据挖掘算法也不完全。因此有必须借鉴Weka和Mahout的优点,研发一个基于Hadoop的并行数据挖掘算法工具箱——Dodo。表1给出三个工具箱目前的主要异同点。
表1 Weka, Mahout和Dodo主要异同
数据源 |
数据格式 |
数据存储 |
算法 |
用户界面 |
|
Weka |
支持文本文件:包括本地的数据文件以及网络数据文件; |
标准格式是Arff,行表示实例,列表示各个属性。另外还支持CSV,C45以及BSI。 |
数据文件加载存储于内存之中 |
在单机上实现分类、聚类、关联规则等数据挖掘算法 |
包括发现模式的表示,数据挖掘原语的操作,界面功能主要包括4个部分:Simple CLI、Explorer、Experimenter Knowledge Flow |
Mahout |
仅支持文本文件 |
每个算法自己根据算法的情况自己设定的文件格式 |
存储于Hdfs上 |
基于MapReduce计算模型,实现…. |
命令行交互 |
Dodo |
支持文本文件、网络文件和数据库文件 |
支持Arff等通用标准格式,也支持顺序文件,文本文件等格式,并提供预处理 |
存储于Hdfs上 |
迭代和非迭代类数据挖掘算法的MapReduce化 |
数据管理:上传、删除、修改。 |
图2 Dodo工具箱运行流程
在图2中,如果用户是首次启动工具箱,需要选择连接的Hadoop环境并对环境进行配置;当用户需要上传数据,工具箱以树形图的形式,将用户的数据上传到指定的Hadoop路径上;如果不是顺序数据,工具箱则将其顺序化然后存储;在算法选择阶段,用户可以选择工具箱自带的并行化数据挖掘算法,也可以选择用户指定的、本地的jar文件;通过工具箱,用户能对选择的算法进行设置,其中包括输入输出路径,算法特定的参数等等;最后在Hadoop环境上对指定输入路径上的数据运行指定的算法,输出结果以可视化的方式展示给用户。
图3 Dodo工具箱模块结构图
图3中,将Dodo工具箱分为用户交互层、内部实现层以及Hadoop交互层等三个层次。用户交互层主要负责结果展示、算法选择等需要和用户进行交互的操作;内部实现层是Dodo的核心部分,负责与上层和下层进行交互,将一些操作进行抽象供两层进行调用;而Hadoop交互层主要是负责和Hadoop平台进行相应的操作,进行相关的平台配置或者数据上传或读写。
2 数据挖掘云
不同于其他的企业应用,将数据挖掘应用服务化,具备以下4个非常特殊的特点:
简单化的工作流。数据挖掘应用从工作流角度来看,相对非常简单。应用中没有复杂的流程,也没有很多不同的角色。但数据挖掘应用仍然是一个工作流。因此将其服务化时,需要提供一个可视化的工作流编辑、管理界面,云平台也要提供对工作流引擎的监控。丰富的算法选择。不同于企业应用,在数据挖掘应用实现一个具体的挖掘任务有很多种算法。在很多情况下,每种算法的性能和效率都有可能不一样。结果的不确定性。数据挖掘任务中,选择不同的数据和算法,将有可能导致不同的计算结果。应用的突发性。很多的数据挖掘应用的请求会随着时间、空间呈现出突发性,这对资源提出了很高的“伸缩性”需求。
从以上特点可以看出,数据挖掘服务是一种真正的按需服务。用户可以根据自己的需求以及付费能力选择适合自己的服务模式。因此,所谓数据挖掘云是指在hadoop平台上提供支持复杂数据挖掘任务的服务系统,此系统能够提供复杂数据挖掘任务的工作流定义、资源调度、算法和工具以web service的方式向外提供服务。
数据挖掘云的结构如图4所示:
图4 数据挖掘云
数据挖掘云的最底层是扩展云计算平台Hadoop的功能,实现HDFS数据管理、算法管理和资源监控,其中算法管理模块集成了各种基于MapReduce的工具箱,以向上提供算法服务。数据挖掘云的底层组件中,需要根据云服务的自适应需求,实现优化的资源分配和任务调度。数据挖掘云的中间层是数据挖掘云高层服务,包括目录服务、效用服务、数据服务和算法服务等核心组件。而最上层是客户端组件,主要用于与用户的直接交互。用户通过友好的可视化界面管理和监视任务的执行,并且很方便地查看任务执行结果。在数据挖掘云的设计中,核心的组件有以下6个:
目录服务:各种资源都能以目录的方式展示给用户,用户可以方便地展开目录查看所有可用的资源。资源分配和任务调度服务:把上层生成的执行计划映射到具体的计算资源和节点上,然后进行任务的调度和执行。数据访问服务:用户根据自己的任务,需要查找、上传或下载所需要的数据,数据访问服务为用户提供了良好的接口让用户方便进行这些操作。算法和应用访问服务:用户在编辑工作流的时候,需要查找满足需求的算法和应用,算法和应用服务提供了良好的接口让用户方便数据和应用的访问。流管理服务:流管理服务包括工作流的编辑和执行,以及用户对流的执行过程的监控和控制,并且在执行过程中会生成相应的日志。结果展示服务:任务执行完毕以后,用户需要查看任务的执行结果,结果展示可能包含多种方式,图状的、表格式的、文本式的等方式。
3 总结
综上所述,本文讨论了基于云计算的海量数据挖掘的进展和主要技术热点,并分析了基于Hadoop平台的数据挖掘算法工具箱和数据挖掘云的结构。Dodo工具箱主要实现海量数据挖掘算法MapReduce化,以提高对海量数据的处理能力。在工具箱实现中,强调与Hadoop平台的交互式配置,迭代/非迭代类数据挖掘算法的并行化实现。在数据挖掘云服务中,为使海量数据挖掘应用服务化,提供从Hadoop资源分配到目录服务,再到流管理等一系列的组件服务,继而提高海量数据挖掘软件的服务能力。作为能为企业效益增值的数据挖掘应用,本质上具备了请求突发、需求多变,结果依赖于数据和算法的特点,因此必须进一步优化云计算平台,提高云平台对按需服务的支撑能力。
基于Hadoop的并行数据挖掘算法工具箱——Dodo相关推荐
- 基于串行并行ADMM算法的主从配电网分布式优化控制研究
基于串行并行ADMM算法的主从配电网分布式优化控制研究 关键词:ADMM 串行并行算法 主动配电网 无功优化 分布式优化 参考文档:非复现,仅参考部分模型: 1)<主动配电网分布式无功优化控制方 ...
- 【赠书】基于鲲鹏的大数据挖掘算法实战:清华华为倾力出品!
新年快到了,特地安排一期送书活动,感谢大家这一年的关注!大家有需要的这本书的可以参与这次活动哟!(具体参与方式见文末!) 计算机企业核心技术是企业的立身之本,更是企业把握市场主动权.扩大自身竞争优势的 ...
- mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储...
摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...
- 【ML项目】基于网络爬虫和数据挖掘算法的web招聘数据分析(一)——数据获取与处理
前言 这个项目是在学校做的,主要是想对各大招聘网站的招聘数据进行分析,没准能从中发现什么,这个项目周期有些长,以至于在项目快要结束时发现网上已经有了一些相关的项目,我后续会把相关的项目材料放在我的Gi ...
- 【配电网优化】基于串行和并行ADMM算法的配电网优化研究(Matlab代码实现)
- python生成簇_使用Python复现SIGKDD2017的PAMAE算法(并行kmedoids算法)
作者:坚新 研究方向:自然语言处理 https://github.com/yangjianxin1/PAMAE 编者按:AINLP技术群的坚新同学发布了一个新项目:PAMAE (PAMAE: Para ...
- 《Hadoop与大数据挖掘》——2.6 TF-IDF算法原理及Hadoop MapReduce实现
本节书摘来自华章计算机<Hadoop与大数据挖掘>一书中的第2章,第2.6节,作者 张良均 樊哲 位文超 刘名军 许国杰 周龙 焦正升,更多章节内容可以访问云栖社区"华章计算机& ...
- 基于多模态数据挖掘算法matlab,多模态生物数据分析与挖掘研究
多模态生物数据分析与挖掘研究 [摘要]:近年来,随着生物测量技术的飞速发展,在生命科学研究的不同领域都积累了大量的生物数据.这些数据中蕴藏着丰富信息,使得我们从不同角度全方位地了解与疾病或是特定表型相 ...
- 读论文之《基于 FPGA 的并行全比较排序算法》
为什么介绍这种排序算法:最近在独立编写霍夫曼编码的verilog HDL设计程序,其中用到了排序模块,对一组数据进行排序,苦寻几天,最终找到了这个全新的适合硬件实现的排序算法,分享与此,以空间换时间的 ...
最新文章
- websocket工作原理
- [九度][何海涛] 数组中出现次数超过一半的数字
- GRPC java实现demo
- 【APICloud系列|22】 videoPlayer模块(视频播放)的实现
- 东电计算机考研大概分数,2019年各学院硕士研究生拟录取名单公示
- 终于有人把Python讲清楚了!!
- Java后台基础设施
- mPEG2000-PHOS,磷酸盐修饰的单功能线性PEG,mPEG2000-Phosphate
- android多个module打包aar,Android 多 Module 合并打包 AAR
- 此图形驱动程序无法找到兼容的图形硬件的解决方案(复制粘贴源于百度http://jingyan.baidu.com/article...
- Redis Expire 设置key过期时间
- 电路-电源模块汇总(充电器)
- Linux——Linux账号与群组
- 高德地图定位失败_高德开放平台
- unity2D横版游戏教程9-对话框dialog
- HTML5作业自我评价,最新简历自我评价范文(精选5篇)
- 华为和H3C--VRP基础和基本的操作
- 计算机网络如何选择路由器,路由器上网方式如何选择?
- OJ-3084 返回指针的函数
- R Packages for GWAS and GS