网站开发产品经理,网站例子,哈尔滨寸金网站建设价格,好的宠物网站模板一、Ambari系统架构
Ambari框架采用的是Server/Client的模式#xff0c;主要由两部分组成#xff1a;ambari-agent和ambari-server。ambari依赖其它已经成熟的工具#xff0c;例如其ambari-server 就依赖python#xff0c;而ambari-agent还同时依赖ruby, puppet#xff0…一、Ambari系统架构
Ambari框架采用的是Server/Client的模式主要由两部分组成ambari-agent和ambari-server。ambari依赖其它已经成熟的工具例如其ambari-server 就依赖python而ambari-agent还同时依赖ruby, puppetfacter等工具还有它也依赖一些监控工具nagios和ganglia用于监控集群状况。
ambari-server主要管理部署在每个节点上的管理监控程序。Ambari-agent 部署在监控节点上运行的管理监控程序。ambari-web 作为用户与 Ambari server 交互的。 二、Ambari-agent内部架构
Ambari-agent是一个无状态的其功能分两部分
采集所在节点的信息并且汇总发送心跳发送汇报给ambari-server。处理ambari-server的执行请求。
因此它有两种队列
消息队列Message Queue或称为ResultQueue。包括节点状态信息包括注册信息和执行结果信息并且汇总后通过心跳发送给ambari-server。操作队列ActionQueue。用于接收ambari-server发送过来的状态操作然后交给执行器调用puppet或Python脚本等模块执行任务。 三、Ambari-server内部架构
三种状态
Live Cluster State集群现有状态各个节点汇报上来的状态信息会更改该状态;Desired State用户希望该节点所处状态是用户在页面进行了一系列的操作需要更改某些服务的状态这些状态还没有在节点上产生作用;Action State操作状态是状态改变时的请求状态也可以看作是一种中间状态这种状态可以辅助LiveCluster State向Desired State状态转变。 Heartbeat Handler模块用于接收各个agent的心跳请求心跳请求里面主要包含两类信息节点状态信息和返回的操作结果把节点状态信息传递给FSM状态机去维护着该节点的状态并且把返回的操作结果信息返回给Action Manager去做进一步的处理。
Coordinator模块又可以称为API handler主要在接收WEB端操作请求后会检查它是否符合要求stageplanner分解成一组操作最后提供给ActionManager去完成执行操作。
因此从上图就可以看出Ambari-Server的所有状态信息的维护和变更都会记录在数据库中用户做一些更改服务的操作都会在数据库上做一些相应的记录同时agent通过心跳来获得数据库的变更历史。
四、Ambari-web内部架构
Ambari-web使用了一个流行的前端Embar.js MVC框架实现Embar.js是一个TodoMVC框架它涵盖了现今典型的单页面应用single page application几乎所有的行为。
使用了nodejs
使用brunch 作为项目的构建管理工具
Brunch ,是一个超快的HTML5构建工具。它有如下功能
1、编译你的脚本、模板、样式、链接它们。
2、将脚本和模板封装进common.js/AMD模块里链接脚本和样式。
3、为链接文件生成源地图复制资源和静态文件。
4、通过缩减代码和优化图片来收缩输出看管你的文件更改。
5、并通过控制台和系统提示通知你错误。
Nodejs 是一个基于Chrome JavaScript运行时建立的一个平台用来方便的搭建快速的易于扩展的网络应用NodeJS借助事件驱动非阻塞I/O模型变得轻量和高效非常适合运行在分布式设备的数据密集型的实时应用。
Ambari-web 目录结构
目录或文件描述app/主要应用程序代码。包括Ember中的view、templates、controllers、models、routesconfig.coffeeBrunch应用程序生成器的配置文件package.jsonNpm包管理配置文件test/测试文件vendor/Javascript库和样式表适用第三方库。
Ambari-web/app/
目录或文件描述assets/静态文件controllers/控制器data/数据mappers/JSON数据到Client的Ember实体的映射modelsMVC中的Modelroutes/路由器styles样式文件views试图文件templates/页面模板app.jsEmber主程序文件config.js配置文件