Ambari Web 安装和踩坑

发布于 2021-03-26 00:08:25 字数 4910 浏览 1265 评论 0

安装和启动过程

$ git clone https://git-wip-us.apache.org/repos/asf/ambari.git
$ cd ambari/ambari-web
$ sudo npm install -g brunch@1.7.20
$ rm -rf node_modules public
$ npm install
$ brunch build

启动前端服务:

$ brunch watch --server

安装中碰到的问题

用手机上网问题少,用公司网络上网问题多。手机上网只出现了phantomjs-prebuilt@2.1.15安装失败。

1.phantomjs 安装失败

如果内网安装报错,可以用手机联网试试。用手机联网报过错:phantomjs-prebuilt@2.1.15安装失败。直接手工装安装上面的包,再执行npm install:

$ npm install phantomjs-prebuilt@2.1.15
$ npm install

npm relocation 错误

$ sudo npm install -g brunch@1.7.20
npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl.so.10 with link time reference

google 到 这个网页 的办法:

$ yum-config-manager --enable cr && yum update

这导致 yum 可以安装未正式发布的测试包。

之后虽然可以安装了,但很慢,创建一个使用淘宝 NPM 镜像的别名:

$ alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
$ sudo cnpm install -g brunch@1.7.20

3. phantomjs 错误的另一个办法

运行 cnpm install 时提示 phantomjs 没有在路径上,手工下载 phantomjs,并添加到PATH:

$ cd /opt
$ wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
$ tar -xjf phantomjs-2.1.1-linux-x86_64.tar.bz2
$ export PATH=$PATH:/opt/phantomjs-2.1.1-linux-x86_64/bin

4. 缺少 info.json

根据社区文章:https://community.hortonworks.com/questions/26377/how-can-i-build-hdp-for-source.html 从 github 上下载 HDP 的 ambari 源码包: https://github.com/hortonworks/ambari-release/archive/AMBARI-2.5.1.7-tag.zip

Ambari Web Frontend Development Environment 的办法进行构建,并启动:

$ brunch watch --server

登录 ambari UI 后报错:You are using test mode,发现少了 info.json 文件。自己造一个:

$ cd app/assets/data/clusters
$ vi info.json
{
  "items" : [
    {
      "Clusters" : {
        "cluster_name" : "cc",
        "provisioning_state" : "INSTALLED",
        "version" : "HDP-2.4.3"
      }
    }
  ]
}

重新启动brunch watch --server后问题解决!

api-docs

ambari 的 api 文档以 swagger.json 的方式提供。在 ambari-web 目录看到一个 api-docs 目录,这个目录是 swagger 显示引擎的目录。可以将 nginx 的根目录设置到这里。

$ nginx -t 
nginx: the configuration file /usr/local/openresty/nginx/conf/nginx.conf syntax is ok

编辑上面的 nginx.conf 文件:

   server {
        listen       80;
        server_name  localhost;
        location / {
            root /opt/ambari/ambari-web/api-docs;
            index  index.html index.htm;
        }
   }

然后找到 ambari 的 swagger.json 文件:

$ find /opt/ambari -name swagger.json
/opt/ambari/ambari-server/docs/api/generated/swagger.json
$ cp /opt/ambari/ambari-server/docs/api/generated/swagger.json /opt/ambari/ambari-web/api-docs
$ nginx -t
$ nginx
$ curl localhost

假设这个 linux 虚拟机的 ip 是:192.168.73.102。则在 windows 下用浏览器访问地址 http://192.168.73.102 就可以用 swagger 阅读 ambari API 文档了。

Ember.js

原文
整理后中 Ember.js 的快速开始和教程在这里

Mustache

Mustache 是一个无逻辑模板语言。称无逻辑,因为它的定义中没有循环、判断等语法,只有标签。

官网:http://mustache.github.io

官方只提供了RUBY实现,但大量爱好者提供了各种语言的实现。其 javascript 的实现 在github上有一万多颗星。

Mushtache 的语法在官网的 这个链接

handlebars.js

github home

handlebars.js是Mustache的超集,和javascript实现。

handlebars.js的增强部分:

  • 内部路径,可以访问 json 串内部属性,如 {{author.name}}
  • helpers。在 mustache 的体系下,可以在 json 串中嵌入代码(Lambda),把数据和代码放在一起有些怪。handerbars.js 以 helper 代替,helper 对代码的调用显式定义在模板中,格式类似{fullName author}}fullName 就是一个helper。
  • 块表达式(mustache称为 Section)。增强了 mustache 的 section,使块也支持 helper。格式类似 {{#fillName author}}

Ember Simple Auth Token

https://github.com/jpadilla/ember-simple-auth-token

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84961 人气
更多

推荐作者

已经忘了多久

文章 0 评论 0

15867725375

文章 0 评论 0

LonelySnow

文章 0 评论 0

走过海棠暮

文章 0 评论 0

轻许诺言

文章 0 评论 0

信馬由缰

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文