我想使用Apache Ambari在非hadoop节点上部署一个自定义服务。我在里面创建了一个自定义服务/var/lib/ambari-server/resources/common-services/var/lib/ambari-server/资源/栈/黄芪丹参滴丸
然后我重新启动了我的ambari服务器。但是有了web,我无法看到我的新服务。
我错过了什么,我必须在任何地方注册我的自定义服务吗?
嗨,我不想硬编码我的服务版本到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>
您仍然需要在堆栈定义中指定您的服务可用于该特定堆栈。公共服务只是维护一组公共服务定义的地方,这些服务定义可以通过扩展用作堆栈定义的一部分。
例如,假设你创建了自定义服务'MYSERVICE',版本标识符为'1.0',并希望为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>
-
您还需要在HDP 2.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>