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            ViewCSS样式

            --|data              数据

            --|mappers      JSON数据到ClientEmbar实体的映射

            --|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/templateshandlebars模板存放文件夹,对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        Config History标签模板

            --|edit_widget_popup.hbs  编辑组件弹出模板

            --|plus_button_filter.hbs     按下后的反应过滤器(?)

            --|widgets.hbs                   4 5 用于生成操作和生成监控图表

        --|service                                2 services标签模板

        --|hosts                                    hosts标签模板

        --|alerts                                   alerts标签模板

        --|admim                                admin标签模板

        --|charts                                图表模板

        --|service.hbs                       services标签入口模板

        --|hosts.hbs                           hosts标签入口模板

        --|alerts .hbs                          alerts标签入口模板

        --|admin.hbs                         admin标签入口模板

        --|charts.hbs                         2图表入口模板

        --|memu.hbs                        4菜单栏入口模板

        --|memu_item.hbs               5菜单栏入口模板

        --|views.hbs                         生成组件列表(?)

    --|utils                                        工具模板

    --|wizard ambari                       部署子模板

    --|application.hbs ambari        主体模板

    --|experimental.hbs                 实验性模板,用于测试新模板

    --|installer.hbs ambari             部署入口模板

    --|login.hbs                               登陆模板

    --|main.hbs                               顶上的导航条模板(?)