1 引言
前几天接到任务需要对Ambari的Web service部分进行修改,于是就开始了工作。由于时间仓促可能问题欢迎大家指正!后面会不定期更新这篇博客。
Ambari版本 2.1.2
2 源码结构2.1 ambari项目结构
Ambari 2.1.2项目还是比较大型的,完整看完需要大量时间。整理起来目录结构如下:
ambari 源码路径
--|ambari-web web项目路径
--|app 主要应用程序代码路径
--|assets 静态文件
--|controller MVC中的Controller
--|models MVC中的Model
--|views MVC中的View
--|templates View的模板
--|styles View的CSS样式
--|data 数据
--|mappers JSON数据到Client的Embar实体的映射
--|routes 路由器
--|utils 工具文件
--|mixins 混合工具(?)
--|app.js Ember主程序
--|config.js 配置文件
--|initialize.js 初始化app
--|views.js 引入MVC的所有View位置
--|messages.js 翻译表
--|...
--|test 测试文件
--|vendor 第三方库
--|config.coffee Brunch的配置文件
--|package.jsonNpm 包管理配置文件
--|...
--|ambari-server Server项目路径程序
--|ambari-agent Agent项目路径
--|ambari-views Ambari页面UI的扩展代码
--|ambari-common 共用的代码
--|contrib 第三方库
--|docs 文档
--|...
2.2 ambari-web项目结构
ambari/ambari-web/app/templates是handlebars的模板存放文件夹,对UI进行修改主要需要修改这一部分代码先放个图方便讲解
其目录结构如下。
templates
--|commom 公用模板(可以不动)
--|main 模板的主体部分
--|dashboard 2 Dashboard标签模板
--|widgets 6组件模板
--|cluster_metrics.hbs 6生成显示集群资源信息的图表
--|hbase_links.hbs 6生成Hbase的监控图表
--|hdfs_links.hbs 6生成HDFS的监控图表
--|pie_chart.hbs 6生成显示饼状图的监控图表
--|simple_text.hbs 6生成显示简单文字的监控图表
--|uptime.hbs 6生成集群启动信息的监控图表
--|yarn_links.hbs 6生成Yarn的监控图表
--|config_history.hbs 4 Config History标签模板
--|edit_widget_popup.hbs 编辑组件弹出模板
--|plus_button_filter.hbs 按下后的反应过滤器(?)
--|widgets.hbs 4 5 用于生成操作和生成监控图表
--|service 2 services标签模板
--|hosts 2 hosts标签模板
--|alerts 2 alerts标签模板
--|admim 2 admin标签模板
--|charts 图表模板
--|service.hbs 2 services标签入口模板
--|hosts.hbs 2 hosts标签入口模板
--|alerts .hbs 2 alerts标签入口模板
--|admin.hbs 2 admin标签入口模板
--|charts.hbs 2图表入口模板
--|memu.hbs 4菜单栏入口模板
--|memu_item.hbs 5菜单栏入口模板
--|views.hbs 3 生成组件列表(?)
--|utils 工具模板
--|wizard ambari 部署子模板
--|application.hbs ambari 主体模板
--|experimental.hbs 实验性模板,用于测试新模板
--|installer.hbs ambari 部署入口模板
--|login.hbs 登陆模板
--|main.hbs 顶上的导航条模板(?)