1

我想使用 Apache Ambari 将自定义服务部署到非 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>
4

1 回答 1

0

您仍然需要在堆栈定义中指定您的服务可用于该特定堆栈。公共服务只是维护一组公共服务定义的地方,这些定义可以通过扩展用作堆栈定义的一部分。

例如,假设您创建了版本标识符为“1.0”的自定义服务“MYSERVICE”,并希望为 HDP 2.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>.

  • 然后,您还需要将额外的 metainfo.xml 文件添加到将提供此服务的 HDP 2.2 堆栈。

    /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>
    
于 2015-08-17T20:04:07.977 回答