统一资源管理与调度平台(系统)介绍

  1. 背景
    随着互联网的高速发展,基于数据密集型应用的计算框架不断出现,从支持离线处理的MapReduce,到支持在线处理的Storm,从迭代式计算框架Spark到流式处理框架S4,…,各种框架诞生于不同的公司或者实验室,它们各有所长,各自解决了某一类应用问题。而在大部分互联网公司中,这几种框架可能都会采用,比如对于搜索引擎公司,可能的技术方案如下:网页建索引采用MapReduce框架,自然语言处理/数据挖掘采用Spark(网页PageRank计算,聚类分类算法等,【注】Spark现在不太成熟,很少有公司尝试使用),对性能要求很高的数据挖掘算法用MPI等。考虑到资源利用率,运维成本,数据共享等因素,公司一般希望将所有这些框架部署到一个公共的集群中,让它们共享集群的资源,并对资源进行统一使用,这样,便诞生了资源统一管理与调度平台,典型代表是Mesos和YARN。
    本文总结了资源统一管理与调度平台产生背景以及它们所应具有的特点,并对比了当前比较有名的资源统一管理与调度平台Mesos和YARN。
  2. 资源统一管理和调度平台具有的特点
    (1)支持多种计算框架
    资源统一管理和调度平台应该提供一个全局的资源管理器。所有接入的框架要先向该全局资源管理器申请资源,申请成功之后,再由框架自身的调度器决定资源交由哪个任务使用,也就是说,整个大的系统是个双层调度器,第一层是统一管理和调度平台提供的,另外一层是框架自身的调度器。
    资源统一管理和调度平台应该提供资源隔离。不同的框架中的不同任务往往需要的资源(内存,CPU,网络IO等)不同,它们运行在同一个集群中,会相互干扰,为此,应该提供一种资源隔离机制避免任务之间由资源争用导致效率下降。
    (2)扩展性
    现有的分布式计算框架都会将系统扩展性作为一个非常重要的设计目标,比如Hadoop,好的扩展性意味着系统能够随着业务的扩展线性扩展。资源统一管理和调度平台融入多种计算框架后,不应该破坏这种特性,也就是说,统一管理和调度平台不应该成为制约框架进行水平扩展。
    (3)容错性
    同扩展性类似,容错性也是当前分布式计算框架的一个重要设计目标,统一管理和调度平台在保持原有框架的容错特性基础上,自己本身也应具有良好的容错性。
    (4) 高资源利用率
    如果采用静态资源分配,也就是每个计算框架分配一个集群,往往由于作业自身的特点或者作业提交频率等原因,集群利用率很低。当将各种框架部署到同一个大的集群中,进行统一管理和调度后,由于各种作业交错且作业提交频率大幅度升高,则为资源利用率的提升增加了机会。
    这里写图片描述
    (5)细粒度的资源分配
    细粒度的资源分配是指直接按照任务实际需求分配资源,而不是像MapReduce那样将槽位作为资源分配单位。这种分配机制可大大提高资源利用率。
    这里写图片描述
  3. 当前比较有名的开源资源统一管理和调度平台
    当前比较有名的开源资源统一管理和调度平台有两个,一个是Mesos,另外一个是YARN,下面依次对这两个系统进行介绍。
    3.1 Mesos
    Mesos诞生于UC Berkeley的一个研究项目,现已成为Apache Incubator中的项目,当前有一些公司使用Mesos管理集群资源,比如Twitter。
    这里写图片描述
    总体上看,Mesos是一个master/slave结构,其中,master是非常轻量级的,仅保存了framework(各种计算框架称为framework)和mesos slave的一些状态,而这些状态很容易通过framework和slave重新注册而重构,因而很容易使用了zookeeper解决mesos master的单点故障问题。
    Mesos master实际上是一个全局资源调度器,采用某种策略将某个slave上的空闲资源分配给某一个framework,各种framework通过自己的调度器向Mesos master注册,以接入到Mesos中;而Mesos slave主要功能是汇报任务的状态和启动各个framework的executor(比如Hadoop的excutor就是TaskTracker)。
    3.2 YARN
    YARN是下一代MapReduce,即MRv2,是在第一代MapReduce基础上演变而来的,主要是为了解决原始Hadoop扩展性较差,不支持多计算框架而提出的。它完全不同于Hadoop MapReduce,所有代码全部重写而成。整个平台由Resource Manager(master,功能是资源分配)和Node Manager组成(slave,功能是节点管理)。较于HadoopMapReduce,其最大特点是将JobTracker拆分成Resource Manager和Application Master,其中Resource Manager是全局的资源管理器,仅负责资源分配(由于Resource Manager功能简单,所以不会严重制约系统的扩展性),而Application Master对应一个具体的application(如Hadoop job, Spark Job等),主要负责application的资源申请,启动各个任务和运行状态监控(没有调度功能)。
    这里写图片描述
  4. Mesos与YARN比较
    Mesos与YARN主要在以下几方面有明显不同:
    (1)框架担任的角色
    在Mesos中,各种计算框架是完全融入Mesos中的,也就是说,如果你想在Mesos中添加一个新的计算框架,首先需要在Mesos中部署一套该框架;而在YARN中,各种框架作为client端的library使用,仅仅是你编写的程序的一个库,不需要事先部署一套该框架。从这点上说,YARN运行和使用起来更加方便。
    (2)调度机制
    两种系统都采用了双层调度机制,即,第一层是源管理系统(mesos/YARN)将资源分配给应用程序(或框架),第二层,应用程序将收到的资源进一步分配给内部的任务。但是资源分配器智能化程度不同,mesos是基于resource offer的调度机制,包含非常少的调度语义,他只是简单的将资源推给各个应用程序,由应用程序选择是否接受资源,而mesos本身并不知道各个应用程序资源需求;YARN则不同,应用程序的ApplicationMaster会把各个任务的资源要求汇报给YARN,YARN则根据需要为应用程序分配资源。
    其他各个特性对比如下表:
    这里写图片描述
  5. Mesos与YARN发展情况
    个人认为Mesos和YARN均不成熟,很多承诺的功能还未实现或者实现得不全,但总体看,它们发展很快,尤其是YARN,在去年年末推出Hadoop-0.23.0后,近期又推出Hadoop-0.23.1。随着各种计算框架(如Spark,S4,Storm等)的日趋成熟,一个统一的资源管理和调度平台将不可或缺。
    另一个与Mesos和YARN类似的系统是Facebook开源的Hadoop Coroca,具体可参考:“Hadoop Corona介绍”。
  6. 参考资料
    (1)Mesos论文:Mesos: A Platform for Fine-Grained Resource Sharing in the Data Center. B. Hindman, A. Konwinski, M. Zaharia, A. Ghodsi, A.D. Joseph, R. Katz, S. Shenker and I. Stoica, NSDI 2011, March 2011.
    (2) Mesos官网:http://incubator.apache.org/mesos/index.html
    (3)YARN官网:http://hadoop.apache.org/common/docs/r0.23.0/index.html
    (4)下一代Apache Hadoop MapReduce框架的架构:
    http://dongxicheng.org/mapreduce-nextgen/nextgen-mapreduce-introduction/
    原创文章,转载请注明: 转载自董的博客
    本文链接地址: http://dongxicheng.org/mapreduce-nextgen/mesos_vs_yarn/
    作者:Dong,作者介绍:http://dongxicheng.org/about/
    本博客的文章集合:http://dongxicheng.org/recommend/
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能调度平台系统技术要求 一、系统要求 1、总体目标要求 投标人必须采用先进成熟的技术和产品,严格按照相关国家标准 、行业标准的软件开发流程进行项目定制开发,不允许在实施过程 中作试验性开发或产品试用,确保系统建设质量和进度,防范开发 集成过程中的技术风险和产品风险。 2、软件平台的要求 2.1投标人开发建设的系统必须符合《深圳市公交智能调度系统 平台规范SZDB/Z 35- 2011》以及招标人的平台功能需求,按照《深圳市公交智能 调度系统 通信协议SZDB/Z 36- 2011》接入符合《深圳市公交智能调度系统 车载调度终端SZDB/Z 35- 2011》的车载调度终端,并满足本技术要求中的具体要求( 如存在不一致的地方以本技术要求为准)。 2.2投标人开发的系统须支持目前通用的各类操作系统环境,包 括Windows 2008server,Linux等主流操作系统。 2.3 Web应用服务器支持主流中间件产品,如IBM Websphere, BEA Weblogic, Oracle Application Server, Tomcat等; Web服务器支持MS IIS, NES, Apache等。 2.4数据库管理系统须具备良好的数据和索引的压缩技术,具有 较低的空间膨胀率;在系统硬件资源允许的条件下(如服务 器内存不小于2G),对超大型数据库及结构化/非结构化复杂 查询实现响应的时间能够达到亚秒级,并且不随文件数量增 大而效率降低,数据库规模仅受硬件资源的限制。数据库仅 限于使用ORACLE或SQL SERVER 2008。 2.5语言支持:简体(GBK)、繁体(BIG5)、西文(ASCII)、 国际统一码(Unicode)。支持中西文混合检索。 2.6系统须采用JAVA语言并基于J2EE架构或者基于C#的.NET平台 开发,整个架构必须是构件化面向对象的,充分考虑系统今 后纵向和横向地平滑扩张能力,进行设计和建设。 2.7系统应采用多层B/S应用结构体系,表示层、业务层、数据 访问层要分开。 2.8系统应支持组件化开发,为第三方应用系统提供标准化数据 接口。 2.9 系统须具有分布式事务功能。 2.10系统须支持负载均衡及双机热备。 2.11除系统所用到的硬件、数据库软件及操作系统的费用由招 标人承担以外,其它费用均由投标人承担。 2.12电子地图要求必须支持ArcGIS地图,同时支持目前免费的 主流地图,包括但不限于谷歌地图、百度地图等。 2.13系统中的基础信息部分支持excel的导入、导出。 2.14系统中的所有查询应能支持灵活查询。 2.15系统中的报表除了打印固定的格式外,还须支持导出文本 或excel格式。 3、数据处理能力 3.1必须提供分布式和跨平台的灵活配置方案,支持对关系型数 据库的文本数据和大对象类型数据检索能力。 3.2系统支持并发用户数大于1000人。 3.3百万目录数据量带全文检索,客户端响应时间小于10秒; 3.4在内网情况下,用户访问系统、WEB页面报表查询、线路切 换、轨迹查询等的响应时间小于3秒。 4、外网接入的安全性 4.1防止系统在互联网上被非法用户使用资源。 4.2防止网络病毒的入侵。 4.3防止数据在传输时的泄漏。 5、数据备份的要求 5.1应能永久保存数据,并提供永久备份数据的解决方案。 5.2应能定期备份数据,采用本地保存或异地存储的方式。 5.3当数据容量过大时,提示并辅助实施相关数据的导出备份。 5.4系统采用每日增量备份,每月全量备份。 5.5系统具备异地灾备,实现系统所有数据在灾备中心的实时备 份。 5.6数据备份时,不能影响平台系统的正常运行。 6、系统的稳定性要求 6.1系统无故障运行时间大于半年,全年60分钟内无法修复的故 障次数不大于2次。平均故障修复时间小于60分钟。发生故障 时,应能立即启动应急响应机制,确保公交调度业务不受影 响。 6.2电子目录数据接收,导入(导出)临时或核心数据库每批次 能承载百万条以上,记录数据信息不发生错误; 6.3软件系统须防止消耗过多的系统资源而使系统崩溃。 6.4数据库设计时须区分当前业务数据和历史数据,避免因历史 数据过大,查询或相关的操作引起服务器运行负载过重。 7、故障监视、诊断及恢复 7.1出现故障须及时告警,具备完整的系统安全机制。 7.2应用系统具备自动或手动恢复措施,以便在发生错误时能够 快速地恢复正常运行。当系统出现故障时,必须能及时切换 备用服务器以快速恢复系统正常工作,备用服务器启动时候 小于15分钟。 7.3须有相应的应急方案,以便在3G网络故障或局域网络故障时 能保证正常的生产工作。 7.4系统必须能接收车载终端发送的自检信息和服务器定时的资 源使用率情况信息,生成故障告警表。 8、系统安全性 8
巨鲸任务调度平台为美柚大数据研发的分布式计算任务调度系统,提供Spark、Flink等批处理任务的DAG执行调度和流处理任务的状态监测调度,并具有重复应用检测、大内存应用检测等功能。 服务基于Spring Boot 2.0开发,打包后即可运行。 环境准备: Java 1.8+ Mysql 5.1.0+ 安装: 1、创建数据库:big-whale 2、运行数据库脚本:big-whale.sql 3、根据Spring Boot环境,配置相关数据库账号密码,以及SMTP信息 4、配置:big-whale.properties 配置项说明 ssh.user: 拥有脚本执行权限的ssh远程登录用户名(平台会将该用户作为统一的脚本执行用户) ssh.password: ssh远程登录用户密码 dingding.enabled: 是否开启钉钉告警 dingding.watcher-token: 钉钉公共群机器人Token yarn.app-memory-threshold: Yarn应用内存上限(单位:MB),-1禁用检测 yarn.app-white-list: Yarn应用白名单列表(列表中的应用申请的内存超过上限,不会进行告警) 5、修改:$FLINK_HOME/bin/flink,参考:flink(因flink提交任务时只能读取本地jar包,故需要在执行提交命令时从hdfs上下载jar包并替换脚本中的jar包路径参数) 6、打包:mvn clean package 启动: 1、检查端口17070是否被占用,被占用的话,关闭占用的进程或修改项目端口号配置重新打包 2、拷贝target目录下的big-whale.jar,执行命令:java -jar big-whale.jar 初始配置 1、打开:http://localhost:17070 2、输入账号admin,密码admin 3、点击:权限管理->用户管理,修改当前账号的邮箱为合法且存在的邮箱地址,否则会导致邮件发送失败 4、添加集群 集群管理->集群管理->新增 “yarn管理地址”为Yarn ResourceManager的WEB UI地址 “程序包存储目录”为程序包上传至hdfs集群时的存储路径,如:/data/big-whale/storage “支持Flink任务代理用户”“流处理任务黑名单”和“批处理任务黑名单”为内部定制的任务分配规则,勿填 5、添加代理 集群管理->代理管理->新增 可添加多个实例(仅支持IP地址,可指定端口号,默认为22),执行脚本的时候会随机选择一个实例执行,在实例不可达的情况下,会继续随机选择下一个实例,在实例均不可达时执行失败 选择集群后,会作为该集群下提交Spark或Flink任务的代理之一 6、添加集群用户 集群管理->集群用户->新增 该配置的语义为:平台用户在所选集群下可以使用的Yarn资源队列(--queue)和代理用户(--proxy-user) 7、添加计算框架版本 集群管理->版本管理->新增 同一集群下不同版本的Spark或Flink任务的提交命令可能有所不同,如Spark 1.6.0版本的提交命令为spark-submit,Spark 2.1.0版本的提交命令为spark2-submit
洛阳城市水资源管理系统(LZSRMS)是一个基于Geodatabase的综合性水资源管理系统,旨在有效管理洛阳市的水资源,提高水资源利用效率,保护水环境,保障城市持续发展。 该系统由多个模块组成:资源管理模块、监测模块、规划模块、决策支持模块和服务模块。 资源管理模块用于统一管理洛阳市的水资源数据,包括水源地、水质信息、水量信息、水生态信息等。通过Geodatabase的数据存储和管理功能,实现对水资源数据的录入、更新、查询和分析,为后续的水资源管理提供可靠的数据支持。 监测模块利用遥感技术、传感器等手段,实时监测洛阳市水资源的变化情况。通过Geodatabase的数据处理和分析功能,将监测数据转化为可视化的图表和报告,为决策者提供准确的水资源监测信息。 规划模块通过对洛阳市水资源的分析和评估,制定科学合理的水资源规划方案。Geodatabase的空间分析功能和模型工具,可以对水资源利用的影响进行定量分析,为规划决策提供依据。 决策支持模块集成了多种决策模型和优化算法,通过对洛阳市未来水资源需求和供给的预测,为决策者提供优化调度方案。Geodatabase的数据交互和模型集成功能,使得决策支持工具可以与其他系统进行数据共享和模型集成。 服务模块通过互联网和移动终端,向市民提供水资源的在线查询、即时反馈和水域管理的参与。利用Geodatabase的网络数据服务功能,实现数据的在线共享和实时更新,提高市民参与水资源管理的积极性。 洛阳城市水资源管理系统的建立和运行,将有助于提高洛阳市的水资源管理水平,实现可持续发展,促进城市生态环境的保护和改善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值