Ambari页面在浏览器中出现错位的临时&永久解决办法

5cbb751baa507c57d51d627d46f6dd5b.gif

点击卡片“大数据实战演练”,选择“设为星标”或“置顶”

回复“资料”可领取独家整理的大数据学习资料!

回复“Ambari知识库”可领取独家整理的Ambari学习资料!

8917c66f51192914238467307eac5ea8.jpeg

大家好,我是create17,见字如面。

今天给大家同步一个这两天出现的 Ambari 页面在浏览器中错位的问题,今天群友 @昊 及时给出了解决方案,同步给大家。

一、Ambari 问题描述

最近有群友反馈 Ambari 页面在浏览器中显示错位的问题,每个人都遇到了,如下图所示:

202ac718034cae45be2ea7cb2ffe324b.png

2d3799fea16a4f880d818e59c78e1b14.png

紧接着就有群友回复已经解决了,真的强58db5b4c415a911b5bc682253cefe06f.png

9ef1556156ad9d19524b41f2b60c13d8.png

二、临时解决办法

今天群友 @昊 给出了解决方案,后面本人应该会提 pr 到 Ambari 社区。

临时解决方案如下:

访问 ambari-server 所在的节点,修改该文件:
./ambari-web/app/views/application.js ,原始代码:

/**
   * Navigation Bar should be initialized after cluster data is loaded
   */
  initNavigationBar: function () {
    if (App.get('router.mainController.isClusterDataLoaded')) {
      $('body').on('DOMNodeInserted', '.navigation-bar', function () {
        $('.navigation-bar').navigationBar({
          fitHeight: true,
          collapseNavBarClass: 'icon-double-angle-left',
          expandNavBarClass: 'icon-double-angle-right'
        });
        $('body').off('DOMNodeInserted', '.navigation-bar');
      });
    }
  }.observes('App.router.mainController.isClusterDataLoaded')

修改为:

/**
 * Navigation Bar should be initialized after cluster data is loaded
 */
initNavigationBar: function () {
    let navigationBarObserver = null; 
    if (App.get('router.mainController.isClusterDataLoaded')) {
      navigationBarObserver = new MutationObserver((mutationsList) => {
        mutationsList.forEach((mutation) => {
          if (mutation.type === 'childList') {
            mutation.addedNodes.forEach((node) => {
              if (node.classList && node.classList.contains('navigation-bar')) {
                $(node).navigationBar({
                  fitHeight: true,
                  collapseNavBarClass: 'icon-double-angle-left',
                  expandNavBarClass: 'icon-double-angle-right'
                });
                navigationBarObserver.disconnect();
              }
            });
          }
        });
      });
      const targetNode = document.body;
      const config = { childList: true, subtree: true };
      navigationBarObserver.observe(targetNode, config);
    }
  }.observes('App.router.mainController.isClusterDataLoaded')

7921737ac7d70eee030dc23e4f93b365.png

修改保存后,刷新页面后即可生效。

三、永久解决办法

刚才的临时解决办法,是修改的 ambari 编译后的文件,如果 ambari 卸载重新部署,就又会有问题。

如果要永久解决,则需要编译 ambari 源码,重新部署 ambari-server rpm 包。

源码位置在:./ambari-web/app/views/application.js,修改后,需要整体编译 ambari 源码。在编译过程中,主要是将 ambari-web 模块进行编译,然后将编译后的 public 目录文件打到 ambari-server rpm 中。

编译文档可参考:国内网络编译,Ambari 2.7.6 全部模块源码编译笔记

ambari-web 模块也可以单独编译:Ambari 前端之 ambari-web 模块概述,适合开发验证时使用。


最后:

感谢群友 @昊 的热心分享,解决了很多人都需要解决的问题,节省了大家的时间、精力。

如果大家有想加入【Ambari 专属技术交流群】的,可以加我好友 create17_ ,一起抱团成长。【Ambari 专属技术交流群】来啦

ending

一个人可以走得很快,但一群人才能走得更远。我的Ambari课程累计学员已经有 400+。感谢信任的同时,如果你需要一个良好的Ambari学习与交流环境,就请加入我们吧。这是一个学习Ambari的付费私密圈子,里面的人都是Ambari的活跃二次开发者,报名后,你可以享有知识星球 + 学员微信群 + 课程资料(笔记、视频等)+ 导师学习陪伴答疑服务,认识更多大佬,和大家一起成长。也欢迎大家点击左下角阅读原文了解我,希望我能提供的服务可以帮助到你。

19ae1b86b1e48d800bf6fddb1f93ca52.png

最后,把我的座右铭送给大家:执行是消除焦虑的有效办法,明确并拆解自己的目标,一直行动,剩下的交给时间。共勉 💪。

“阅读原文”,查看最新内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

create17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值