一种弹性的云数据挖掘平台部署方法

文档序号:7773864阅读:178来源:国知局
一种弹性的云数据挖掘平台部署方法
【专利摘要】本发明是一种弹性的云数据挖掘平台部署方法,可以自由部署一个或多个hadoop集群并且不影响物理机用户的正常使用,尤其适用于机器数量有限的中小型集群。在面对cpu,带宽,内存,磁盘以及时间的不同需求时,可以灵活进行资源分配。这里不仅仅是指hadoop内部各节点之间的负载均衡,还包括与普通用户正常使用需求之间的协调,是整个集群内的负载均衡。将hadoop和openstack结合并加以改进,利用虚拟化使得数据挖掘集群的部署更加简单灵活,并且同时给用户提供虚拟机作为日常使用,不会影响原有工作。
【专利说明】一种弹性的云数据挖掘平台部署方法
【技术领域】
[0001]本发明是在openstack和hadoop结合的基础上,利用两者的优点相互补充并加以完善,设计了一种弹性的云数据挖掘平台,主要是提供一种灵活自由的适用于中小型集群的数据挖掘平台部署方案。属于分布式计算和云计算领域。
【背景技术】
[0002]当前全球IT领域有了令人振奋的发展趋势和挑战,现在每天都有大量数据和信息生成,这为大数据分析提供了机会。这些数据量仅仅是数据,并不能解决问题,它要从数据变成信息、变成智能、变成商业价值,这才能够体现出真正的大数据的价值。
[0003]然而大数据必须有云作为基础架构,才能得以顺畅运营。所谓云计算,就是通过计算机网络去连接由大量服务器、存储设备集群构成的云计算平台,来获取远程客户端所需要的服务。而云计算服务商则是将一项复杂的运算任务分成若干个部分,通过分布在计算机网络中的计算机协同合作,最终将运算结果传输到客户端,从而实现个人数据在远程的计算资源集群的运算。
[0004]云计算提供了基础架构平台,大数据应用在这个平台上运行。目前公认的处理大数据集最有效的手段是分布式处理,云计算能降低数据中心成本,解决资源不合理利用。
[0005]OpenStack是一个云计算平台管理的项目,旨在为公共及私有云的建设与管理提供软件。它的社区拥有超过130家企业及1350位开发者,这些机构与个人都将OpenStack作为基础设施即服务(简称IaaS)资源的通用前端。OpenStack项目的首要任务是简化云的部署过程并为其带来良好的可扩展性。
[0006]Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的硬件上。Hadoop以并行的方式工作,通过并行处理加快处理速度;还可以伸缩,能够处理PB级数据。
[0007]在大多数时候我们的需求是不同的,有部分任务需要使用高性能计算(HPC),有部分任务需要使用大数据计算(Hadoop),有时候是对外定制化多项服务。对cpu,带宽,内存,磁盘以及时间的需求是不同的。如果为每一种需求都去购买对应的物理机会造成大量的资源浪费,很多时候我们的服务器负载只有20%_30%。
[0008]尤其对于中小型集群,例如小型企业,实验室等机器数量有限的情况下,单独建立一个hadoop集群是不切实际的。然而如果仅将hadoop作为一个软件部署在整个集群内,又存在节点可靠性低,资源分配不合理,机器更新困难等问题,并且日常使用的系统大多数为windows平台,无法兼容hadoop。影响了原有的工作,又很难有合适的管理方法来规范用户行为。由此可见,在一个小型集群内搭建hadoop而不影响到日常使用将面临诸多的麻烦。
[0009]
【发明内容】

[0010]技术问题:本发明的目的是提出一种弹性的云数据挖掘平台部署方法,可以自由部署一个或多个hadoop集群并且不影响物理机用户的正常使用,尤其适用于机器数量有限的中小型集群。在面对cpu,带宽,内存,磁盘以及时间的不同需求时,可以灵活进行资源分配。这里不仅仅是指hadoop内部各节点之间的负载均衡,还包
括与普通用户正常使用需求之间的协调,是整个集群内的负载均衡。
[0011]技术方案:针对这些问题,本发明提出了一种弹性的数据挖掘平台,将整个集群进行虚拟化,抽象为一个资源池,这里我们选择openstack来管理整个集群。通过openstack创建并管理一系列的虚拟机,每个虚拟机作为一个节点或者一个常规系统供用户日常使用。这样使得hadoop的节点粒度变细,更加灵活,易于管理。同时,因为openstack具有动态迁移的特性,进一步提高了 hadoop节点的有效性。
[0012]在此基础之上,根据MapReduce的特性,对JobTracker的分配机制进行了相应的改进。Hadoop最大的特点是本地化计算,但是仅仅是指map的任务的本地化,在JobTracker分配task的时候,一个map任务对应hdfs中的一个块的数据,所以分配的时候会尽量将task分配到hdfs对应块所在机器。这是Hadoop适合大数据处理的一个很重要的原因。但是这仅仅是map操作的时候,reduce操作的时候还是会占用大量带宽。因此,使用openstack在一台计算机上启动多台虚拟机,reduce传输数据会尽量在一台计算机上的多个虚拟机节点中进行,而不是传统的分散在各个节点中进行。这样只占用硬盘读写速度,比占用网络带宽好很多。
[0013]该平台的主要使用步骤如下:
步骤1.在整个物理机集群上建立一个可以提供各类虚拟机的虚拟化平台;
步骤2.为集群使用人员创建各自的账户并分配权限。给一般用户分配申请PC虚拟机和发布数据挖掘任务的权限,只能进入仅有使用功能的普通用户面板。给管理人员分配一般用户的所有权限以及管理整个集群的权限,可以进入管理员面板进行各项管理;
步骤3.用户通过Web交互页面登陆平台,如果是管理员用户则执行步骤4,如果是一般用户则执行步骤5 ;
步骤4.进入管理员面板,具有以下功能:修改权限、监控、调度、节点迁移。完成管理操作后退出管理员面板,执行步骤5 ;
步骤5.进入仅有使用功能的普通用户面板,如果选择发布数据挖掘任务则执行步骤6,如果选择进行日常工作申请PC虚拟机则执行步骤8 ;
步骤6.用户上传需要处理的数据集及算法,选择所需的计算和存储资源,设定任务优先级,然后将任务发布到平台上并执行步骤7 ;
步骤7.平台先启动一个主管理节点,然后将根据需求启动相应数目的子计算节点,并将这些节点在主管理节点上注册,随后该任务发送到主管理节点上,由该节点将任务分配到各个子计算节点上执行。任务发布完成之后,用户如需继续进行日常工作则执行步骤8,否则退出平台等待任务处理完毕。任务处理完成后,计算结果以及任务详细信息将会返回到平台内的发布任务的用户的用户面板上以供用户查询;
步骤8.由平台查询该用户是否有备份镜像快照,如果有则将该快照启动并恢复用户数据,如果没有则按照用户需求选择一个模板镜像启动,用户通过远程桌面连接该虚拟机进行日常使用;
有益效果:本发明提出了一种弹性的云数据挖掘平台,较普通的hadoop部署方式而言,该方案的主要优势在于:
一、可以自由部署一个或多个hadoop集群并且不影响物理机用户的正常使用,尤其适用于机器数量有限的中小型集群。
[0014]二、在面对cpu,带宽,内存,磁盘以及时间的不同需求时,可以灵活进行资源分配。这里不仅仅是指hadoop内部各节点之间的负载均衡,还包括与普通用户正常使用需求之间的协调,是整个集群内的负载均衡。
[0015]三、部署更加方便,失效节点可以快速迁移使得节点有效性提高。
[0016]四、reduce传输数据会尽量在一台计算机上的多个虚拟机节点中进行,而不是传统的分散在各个节点中进行。这样只占用硬盘读写速度,而不是占用网络带宽,减小了集群网络压力,提升了效率。
[0017]五、具有跨平台性,同时兼顾Iinux上的数据挖掘平台和windows上的用户日常使用。在某些特殊情况下甚至可以借助vmware来在windows平台上拓展集群规模。
[0018]六、降低了门槛和学习成本,短时间之内就可以部署完成并掌握如何使用。
[0019]
【专利附图】

【附图说明】
[0020]图1平台使用流程图。
[0021]图2平台架构图。
[0022]
【具体实施方式】
[0023]物理机上统一使用Iinux系统,然后在整个集群内搭建一个IaaS系统,选用openstack作为基础来改进。将平台所需的交互界面整合在openstack本身的⑶I组件Horizon 中。
[0024]管理员面板所提供的功能如下:添加删除普通用户、修改用户可用资源上限、整个集群运行情况的实时监控(各物理机资源的使用情况,节点分布情况,各节点建的逻辑关系,平台上正在处理和等待处理的数据挖掘任务)、修改各个任务的优先级、失效节点的动态迁移、添加和移除节点、在不需要时终止集群。
[0025]用户的日常使用将在虚拟机上完成,当用户申请PC机时(通常为windows),由平台查询该用户是否有备份镜像快照,如果有则将该快照启动并恢复用户数据,如果没有则按照用户的CPU、内存、硬盘需求选择一个模板镜像启动。用户可通过远程桌面连接该虚拟机进行日常使用,集群内部对用户透明。对用户而言,使用的依旧是一样的物理设备,并不会对日常工作带来影响。
[0026]Hadoop原子节点的镜像可以根据自己的需求定制,也可以使用标准镜像。平台初始化时,会先生成一个NameNode和一个secondary NameNode。当有任务时,根据用户需求释放相应的DataNode节点并在NameNode上注册。通过在capacity-scheduler.xml和mapred-queue-acls.xml中修改相应函数增加一个可以宏观调控任务权限的api接口。
[0027]发布任务的用户可以定义集群配置,包括集群的大小和拓扑,并且设置不同的Hadoop参数;选择作业的类型:pig、hive、jar-file等等;提供作业脚本源或者是jar路径;选择输入和输出数据路径;为日志选择路径;执行作业。所有集群配置和作业执行都会清楚的呈现给用户,作业结束后会自动取回计算结果。
[0028]修改nova-api内的函数,将普通PC虚拟机和节点虚拟机区分开来调控,当计算任务较多时,以节点虚拟机为主,当用户较多时,以普通PC虚拟机为主。当NameNode失效时,切换到secondary NameNode同时将NameNode节点迁移到其他物理机上重启,这样可以保证平台的持续运行。当DataNode失效时,删除该节点,重新启动一个DataNode节点。因为Hadoop本身已经具有较高的容错性,会将失效的DataNode上的计算任务转移到其他DataNode上,所以不必回复失效的DataNode,只需要重新启动一个保持集群规模即可。
[0029]修改JobTracker上的调度算法,在reduce阶段读取IaaS平台上的数据,尽量在一台计算机上的多个虚拟机节点中进行,这样大部分reduce工作只占用硬盘读写速度。
【权利要求】
1.一种弹性的云数据挖掘平台部署方法,其特征在于,在不影响正常工作的前提下搭建一个既能提供日常使用又能提供数据挖掘功能的集群,其步骤主要如下: 步骤1.在整个物理机集群上建立一个可以提供各类虚拟机的虚拟化平台; 步骤2.为集群使用人员创建各自的账户并分配权限,给一般用户分配申请PC虚拟机和发布数据挖掘任务的权限,只能进入仅有使用功能的普通用户面板,给管理人员分配一般用户的所有权限以及管理整个集群的权限,能进入管理员面板进行各项管理; 步骤3.用户通过Web交互页面登陆平台,如果是管理员用户则执行步骤4,如果是一般用户则执行步骤5 ; 步骤4.进入管理员面板,具有以下功能:修改权限、监控、调度、节点迁移;完成管理操作后退出管理员面板,执行步骤5 ; 步骤5.进入仅有使用功能的普通用户面板,如果选择发布数据挖掘任务则执行步骤6,如果选择进行日常工作申请PC虚拟机则执行步骤8 ; 步骤6.用户上传需要处理的数据集及算法,选择所需的计算和存储资源,设定任务优先级,然后将任务发布到平台上并执行步骤7 ; 步骤7.平台先启动一个主管理节点,然后将根据需求启动相应数目的子计算节点,并将这些节点在主管理节点上注册,随后该任务发送到主管理节点上,由该节点将任务分配到各个子计算节点上执行,任务发布完成之后,用户如需继续进行日常工作则执行步骤8,否则退出平台等待任务处理完毕;任务处理完成后,计算结果以及任务详细信息将会返回到平台内的发布任务的用户的用户面板上以供用户查询; 步骤8.由平台查询该用户是否有备份镜像快照,如果有则将该快照启动并恢复用户数据,如果没有则按照用户需求选择一个模板镜像启动,用户通过远程桌面连接该虚拟机进行日常使用。
【文档编号】H04L29/08GK103561061SQ201310489309
【公开日】2014年2月5日 申请日期:2013年10月17日 优先权日:2013年10月17日
【发明者】张琳, 邵天昊, 王汝传, 韩志杰, 付雄, 季一木 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1