数据立方( 五 )


数据立方

文章插图
系统架构云存储层包括cStor云存储和apache开源云储存系统HDFS;而在数据管理层中,包含数据立方、Hbase;数据处理层包含JobKeeper和MapReduce;最后的监控协调层则包括zookeeper和Chukwa来实现对整个系统的实时监控和数据管理 。cProc云计算平台通过把对数据集的大规模操作分发给网路上的每个节点实现数据处理,每个节点会周期性的把完成的工作和状态的更新报告回来 。随着节点的增多,cProc云计算平台的处理能力将成倍数增长 。cProc支持100GBps以上量级的数据流实时索引,1s内回响客户请求,秒级完成数据处理、查询和分析工作 。任务监控器JobKeeper调度平台是建立于虚拟化资源层之上,统一调度,统一配置的管理平台,用于对集群中任务实时的处理调度,实时结果集的反馈,集群的负载均衡,失败调度,集中管理,集中配置的平台 。用来保证整个集群的超低人员干预 。同时,提供完善的集群伸缩机制为整个服务提供更高的可靠性 。
数据立方

文章插图
任务监控器(JobKeeper)套用层是一组用于管理和结果反馈的显示组件,用于显示任务的处理情况以及集群中机器的活动情况,同时其也是一个上层套用和底层服务的对接平台,是整个系统面向用户和开发人员的基础承载 。业务层是对于套用层的相关功能的业务化,数位化处理,用于将套用层的需求任务进行规则化划分,形成统一的处理化模式 。数据处理层是独立的数据处理程式,是对不同需求数据的统一处理方案,它的运行与监控的工作将由JobKeeper调度平台进行统一的配置管理 。存储层是用来存储数据存储层的处理结果集或者其它中间结果集的单元 。虚拟化资源层是将实体的机器进行虚拟化,形成更大範围的服务集群 。JobKeeper调度平台是由一组管理节点(Master Node)和一组处理节点(Task Node)组成,管理节点组是一组基于Webserver的RPC(RPC採用客户机/伺服器模式 。请求程式就是一个客户机,而服务提供程式就是一个伺服器 。首先,客户机调用进程传送一个有进程参数的调用信息到服务进程,然后等待应答信息 。在伺服器端,进程保持睡眠状态直到调用信息的到达为止 。当一个调用信息到达,伺服器获得进程参数,计算结果,传送答覆信息,然后等待下一个调用信息,最后,客户端调用进程接收答覆信息,获得进程结果,然后调用执行继续进行 。)伺服器,负责对处理节点的系统信息以及任务处理信息进行实时的跟蹤和保存,对应的信息镜像存储在基于cStor或者NFS服务的存储系统上,保证每个管理节点中的镜像信息的实时同步 。同时架设在管理节点上的ZooKeeper服务(ZooKeeper是一个分散式的,开放源码的分散式应用程式协调服务,包含一个简单的原语集 。分散式套用可以使用它来实现诸如:统一命名服务、配置管理、分散式锁服务、集群管理等功能 。)用于对整个管理节点组进行统一的配置化管理 。处理节点组通过RPC的远程调用获取各自节点的任务处理目标,并实时的和处理节点上的任务处理目标进行对比,控制程式的执行和结束 。(注:这里的程式,可以是任何语言任何形式的独立程式,但是必须提供执行脚本,和运行参数选项)处理节点组会在一个设定的心跳间隔内主动的和管理节点组联繫一次,报告节点存活状态 。如果在若干个心跳间隔后管理节点组仍然没有获取到处理节点心跳报告,那幺该处理节点将会被踢出处理节点组,同时该节点处理的所有处理任务也会被重新调度 。随着集群处理数据量的不断增大,处理节点组提供了简单高效的自动化部署方案,当新机器加入处理集群后,会主动的与管理节点组同步心跳信息,从同一配置伺服器ZooKeeper上获取相关配置信息,通过WebServer服务获取任务列表,开始执行数据处理工作 。JobKeeper调度平台提供了一套基于Web的管理化界面,可以实时的观察各个处理节点的任务运行状态,以及任务列表的分配情况,机器的负载情况等 。用户在管理系统界面上可以完成所有的工作,如新任务的添加,任务的手动调度以及集群日誌的查看与分析等 。可靠性设计使用ZooKeeper的选举机制解决MapReduce的单点故障,当JobTracker节点宕机时,能够在一台备用的JobTracker节点上启动JobTracker进程,并使用虚拟IP机制将虚拟IP指向备用JobTracker节点 。在JobTracker进程启动后,ZooKeeper将未完成的MapReduce作业提交给备用JobTracker节点重新执行 。