前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ambari 集成的服务部署时只执行 install(),不执行 start() 的原因...

Ambari 集成的服务部署时只执行 install(),不执行 start() 的原因...

作者头像
create17
发布2024-04-25 13:59:30
1160
发布2024-04-25 13:59:30
举报
文章被收录于专栏:大数据实战演练

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

今天给大家聊聊一个学员朋友遇到的 Ambari 自定义集成服务的问题。

希望我接下来的分享给大家带来一些帮助和启发🤔

一、问题描述

学员集成 DS 服务,在部署时发现,服务只执行了安装操作,没有启动操作,如下图所示:

二、问题排查

首先,我怀疑造成问题的原因可能是服务组件的类别(category)被设置为 CLIENT,因为客户端通常只会执行 install() 方法。但经过进一步确认,我发现 category 实际被设置为 MASTER,这意味着它应该执行 start() 方法。

接下来,我查看了学员发送给我的集成服务源码。在仔细审查代码后,我注意到 python 执行文件中的 status() 方法并没有包含真正执行的代码。具体问题如附图所示:

status() 方法修改如下:

check_process_status() 函数是 Ambari Python 类库中的一部分,它接受一个文件路径作为参数,该文件中记录了服务的进程 ID (pid)。这个函数的工作原理是检查指定的 pid 是否存在于系统中。如果 pid 不存在,表明服务没有运行,此时函数会抛出一个异常,通知 Ambari 页面该服务处于停止状态。

为了测试这一点,我故意指定了一个不存在的 pid 文件路径。结果是,在服务部署完成后,Ambari 页面上显示的服务状态为停止。

如下图所示,展示了 check_process_status() 函数的具体内容。

修改以后,果然服务安装部署时,就有了 start 步骤了。如下图所示:

解决了以后,立马反馈修改办法:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-04-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据实战演练 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、问题描述
  • 二、问题排查
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档