1.dodo

Weka是由新西兰Waikato大学研发的数据处理和知识发现软件包。其可以实现数据预处理、聚类、分类、回归、特征选择、可视化等各种数据挖掘的任务。Weka被广泛用于各种数据挖掘任务中算法的评估。但其中数据挖掘算法的实现是基于单机实现的。与Weka不同的是,Apache组织基于Hadoop平台的,采用MapReduce计算模型,实现大量机器学习算法的并行化,并将其封装在Mahout项目。但由于Mahout并不提供一种图形界面交互,用户需要大量手工配置数据和参数,同时目前实现的并行数据挖掘算法也不完全。因此有必须借鉴Weka和Mahout的优点,研发一个基于Hadoop的并行数据挖掘算法工具箱——Dodo。表1给出三个工具箱目前的主要异同点。

表1  Weka, Mahout和Dodo主要异同

数据源

数据格式

数据存储

算法

用户界面

Weka

支持文本文件:包括本地的数据文件以及网络数据文件; 
支持数据库文件:通过JDBC连接。

标准格式是Arff,行表示实例,列表示各个属性。另外还支持CSV,C45以及BSI。

数据文件加载存储于内存之中

在单机上实现分类、聚类、关联规则等数据挖掘算法

包括发现模式的表示,数据挖掘原语的操作,界面功能主要包括4个部分:Simple CLI、Explorer、Experimenter Knowledge Flow

Mahout

仅支持文本文件

每个算法自己根据算法的情况自己设定的文件格式

存储于Hdfs上

基于MapReduce计算模型,实现….

命令行交互

Dodo

支持文本文件、网络文件和数据库文件

支持Arff等通用标准格式,也支持顺序文件,文本文件等格式,并提供预处理

存储于Hdfs上

迭代和非迭代类数据挖掘算法的MapReduce化

数据管理:上传、删除、修改。 
Hadoop平台管理:启动、关闭。 
算法管理:选择算法、修改算法参数。
任务提交。 
任务进度显示。

图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相关推荐

  1. 基于串行并行ADMM算法的主从配电网分布式优化控制研究

    基于串行并行ADMM算法的主从配电网分布式优化控制研究 关键词:ADMM 串行并行算法 主动配电网 无功优化 分布式优化 参考文档:非复现,仅参考部分模型: 1)<主动配电网分布式无功优化控制方 ...

  2. 【赠书】基于鲲鹏的大数据挖掘算法实战:清华华为倾力出品!

    新年快到了,特地安排一期送书活动,感谢大家这一年的关注!大家有需要的这本书的可以参与这次活动哟!(具体参与方式见文末!) 计算机企业核心技术是企业的立身之本,更是企业把握市场主动权.扩大自身竞争优势的 ...

  3. mahout demo——本质上是基于Hadoop的分步式算法实现,比如多节点的数据合并,数据排序,网路通信的效率,节点宕机重算,数据分步式存储...

    摘自:http://blog.fens.me/mahout-recommendation-api/ 测试程序:RecommenderTest.java 测试数据集:item.csv 1,101,5.0 ...

  4. 【ML项目】基于网络爬虫和数据挖掘算法的web招聘数据分析(一)——数据获取与处理

    前言 这个项目是在学校做的,主要是想对各大招聘网站的招聘数据进行分析,没准能从中发现什么,这个项目周期有些长,以至于在项目快要结束时发现网上已经有了一些相关的项目,我后续会把相关的项目材料放在我的Gi ...

  5. 【配电网优化】基于串行和并行ADMM算法的配电网优化研究(Matlab代码实现)

  6. python生成簇_使用Python复现SIGKDD2017的PAMAE算法(并行kmedoids算法)

    作者:坚新 研究方向:自然语言处理 https://github.com/yangjianxin1/PAMAE 编者按:AINLP技术群的坚新同学发布了一个新项目:PAMAE (PAMAE: Para ...

  7. 《Hadoop与大数据挖掘》——2.6 TF-IDF算法原理及Hadoop MapReduce实现

    本节书摘来自华章计算机<Hadoop与大数据挖掘>一书中的第2章,第2.6节,作者 张良均 樊哲 位文超 刘名军 许国杰 周龙 焦正升,更多章节内容可以访问云栖社区"华章计算机& ...

  8. 基于多模态数据挖掘算法matlab,多模态生物数据分析与挖掘研究

    多模态生物数据分析与挖掘研究 [摘要]:近年来,随着生物测量技术的飞速发展,在生命科学研究的不同领域都积累了大量的生物数据.这些数据中蕴藏着丰富信息,使得我们从不同角度全方位地了解与疾病或是特定表型相 ...

  9. 读论文之《基于 FPGA 的并行全比较排序算法》

    为什么介绍这种排序算法:最近在独立编写霍夫曼编码的verilog HDL设计程序,其中用到了排序模块,对一组数据进行排序,苦寻几天,最终找到了这个全新的适合硬件实现的排序算法,分享与此,以空间换时间的 ...

最新文章

  1. websocket工作原理
  2. [九度][何海涛] 数组中出现次数超过一半的数字
  3. GRPC java实现demo
  4. 【APICloud系列|22】 videoPlayer模块(视频播放)的实现
  5. 东电计算机考研大概分数,2019年各学院硕士研究生拟录取名单公示
  6. 终于有人把Python讲清楚了!!
  7. Java后台基础设施
  8. mPEG2000-PHOS,磷酸盐修饰的单功能线性PEG,mPEG2000-Phosphate
  9. android多个module打包aar,Android 多 Module 合并打包 AAR
  10. 此图形驱动程序无法找到兼容的图形硬件的解决方案(复制粘贴源于百度http://jingyan.baidu.com/article...
  11. Redis Expire 设置key过期时间
  12. 电路-电源模块汇总(充电器)
  13. Linux——Linux账号与群组
  14. 高德地图定位失败_高德开放平台
  15. unity2D横版游戏教程9-对话框dialog
  16. HTML5作业自我评价,最新简历自我评价范文(精选5篇)
  17. 华为和H3C--VRP基础和基本的操作
  18. 计算机网络如何选择路由器,路由器上网方式如何选择?
  19. OJ-3084 返回指针的函数
  20. R Packages for GWAS and GS

热门文章

  1. android自定义指南针罗盘学习笔记
  2. 云函数本地调用与云函数间调用
  3. matlab 循环写excel文件,matlab数据自动循环写入excel文件
  4. python scatter
  5. java hash table
  6. 个推透传php,个推透传的一点心得体会
  7. visual studio如何不使用system(“pause”)仍可暂停
  8. 三十二、数据库相关3
  9. EPLAN报表设备元件添加,清单生成
  10. uva12086 - Potentiometers