使用apacheambari在非hadoop节点上部署定制服务

ss2ws0br  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(330)

我想使用apacheambari在非hadoop节点上部署一个定制服务。我在/var/lib/ambari-server/resources/common-services中创建了一个定制服务,而不是hadoop的文件夹:/var/lib/ambari-server/resources/stacks/hdp
然后我重新启动了我的ambari服务器。但是有了网络,我就看不到我的新服务了。
我遗漏了什么吗?我需要在任何地方注册我的定制服务吗?
嗨,我不想把我的服务版本硬编码到metainfo.xml中,我能做吗?

<service>
  <name>DUMMY_APP</name>
  <displayName>My Dummy APP</displayName>
  <comment>This is a distributed app.</comment>
  <version>0.1</version> --------------This I don't want to hardcode, Can I doit?
  <components>
  ...
  </components>
</service>
laik7k3q

laik7k3q1#

您仍然需要在堆栈定义中指定您的服务可用于该特定堆栈。公共服务只是维护一组公共服务定义的地方,这些定义可以通过扩展作为堆栈定义的一部分。
例如,假设您创建了版本标识符为“1.0”的自定义服务“myservice”,并希望为hdp2.2堆栈提供它。
您需要将服务定义放置在以下位置:

/var/lib/ambari-server/resources/common-services/MYSERVICE/1.0

上述目录将包含metainfo.xml文件以及配置和包文件夹。这将是您服务的基本定义。
注意:同样重要的是要注意您在中指定的版本 /var/lib/ambari-server/resources/common-services/MYSERVICE/1.0/metainfo.xml 必须与路径中指定的版本号匹配。我们的例子是 <version>1.0</version> .
然后还需要向提供此服务的hdp2.2堆栈中添加一个额外的metainfo.xml文件。

/var/lib/ambari-server/resources/stacks/HDP/2.2/services/MYSERVICE/metainfo.xml

此文件的内容将是:

<?xml version="1.0"?>
<metainfo>
  <schemaVersion>2.0</schemaVersion>
  <services>
    <service>
      <name>MYSERVICE</name>
      <extends>common-services/MYSERVICE/1.0</extends>
    </service>
  </services>
</metainfo>

相关问题