论文部分内容阅读
如何更好地管理数据并挖掘其中的价值,已经成为了大数据时代的热门问题,受到了学术界和工业界的极大关注,同时涌现出了很多开源的工具,如Hadoop、Kafka^ Openstack、Zookeeper等,这些工具极大地降低了大数据的进入门槛,使得很多组织都有能力来分享大数据时代的果实,同时遍布全世界的开发者和使用者的反馈也极大地促进了这些开源软件的发展。作为这些开源工具的鼻祖,以及同时包括存储系统和计算系统,Hadoop已经成为了大数据处理平台的基石之一,其性能的优化是当前一个热点研究问题。针对Hadoop自带的调度器不能有效支持实时作业、无法满足用户对自身作业资源使用限制的需求以及Apache Slider提供的接口不够友好等不足,本文首先通过研究实时作业的特性,同时结合Hadoop调度的特性,设计了三种实时调度器:LSS (Least Spare-time Scheduler)、SPS (Shortest Period Scheduler)、MUS (Maximum Urgency Scheduler)。其核心是通过修改作业队列里面作业的优先级排序算法,让更多作业能在截止期前完成。其中LSS调度器的核心是预测作业的空闲时间,采用空闲时间越小作业的优先级越高的调度策略。SPS调度器针对多个周期性工作流,采用了周期越短的工作流上作业的优先级越高的调度策略。MUS调度器用截止时间描述作业的优先级,采用截止时间越短优先级越高的调度策略。经过实验验证,这三种调度器都能很好地满足实时性作业的服务质量需求。其次,对Hadoop内核中的MapReduce应用管理器(MapReduce Application Master,MRAM)进行修改,通过其向资源管理器(Resource Manager, RM)申请资源时,根据用户指定的并发性限制申请的资源量,使得作业获取的资源量最大不会超过限制的资源量,从而达到限制作业并发性的个性化需求。经过实验验证,该特性能很好地满足用户对作业并发性限制的服务质量需求。最后,通过分析Apache Slider,发现其提供的接口不够友好,且会暴露YARN集群内部信息,本文设计了SliderService,该服务能让用户快速地获取Slider部署的服务的信息,同时实现了SliderService的负载均衡并解决了服务端的高可用性。