Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

How to add dependencies on the custom services

Solved Go to solution
Highlighted

How to add dependencies on the custom services

Explorer

Hello,

I am following the documentation to add a custom service to the Ambari. So far, I am able to understand and create a custom service and was able to successfully add to the Ambari.

Next, I need to add the dependencies which needs to be installed prior to the custom service. For example, before deploying custom service it will install the dependencies such as SPARK, KAFKA, YARN, HDFS. For this purpose I was looking into HIVE:metainfo.xml file and could understand the below portions needs to be added in order to add the dependencies

<dependencies>
  <dependency>
    <name>ZOOKEEPER/ZOOKEEPER_SERVER</name>
    <scope>cluster</scope>
    <auto-deploy>
      <enabled>true</enabled>
      <co-locate>HIVE/HIVE_SERVER</co-locate>
    </auto-deploy>
  </dependency>
  <dependency>
    <name>YARN/YARN_CLIENT</name>
    <scope>host</scope>
    <auto-deploy>
      <enabled>true</enabled>
    </auto-deploy>
  </dependency>
  <dependency>
    <name>MAPREDUCE2/MAPREDUCE2_CLIENT</name>
    <scope>host</scope>
    <auto-deploy>
      <enabled>true</enabled>
    </auto-deploy>
  </dependency>
</dependencies>

<requiredServices>
   <service>ZOOKEEPER</service>
   <service>YARN</service>
   <service>TEZ</service>
</requiredServices>

However, there are some aspects I could not find and was not able to understand about the "dependency". So, I would like to know about:

  1. Is there some additional resources on how to add the "dependency" on the custom service ?
  2. I would like to know more about the specifics of the tags, so that I know the tags usage. For example
  3. <dependency>
        <name>ZOOKEEPER/ZOOKEEPER_SERVER</name> [How this naming are put ?]
        <scope>cluster</scope>                  [When to use which scope ?]
        <auto-deploy>
          <enabled>true</enabled>
          <co-locate>HIVE/HIVE_SERVER</co-locate>
        </auto-deploy>
     </dependency>

Thank you !

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: How to add dependencies on the custom services

Contributor

hi @Sayed Anisul Hoque.

@1. you already linked to the resources handling custom services, maybe the sub-menu brings more light

@2. depdency.name: this is <Service>/<Component>, have a look at the other metainfo.xml definitions. As another example, if you depend on an HBase Master you would write HBASE/HBASE_MASTER

@2 dependency.scope: this is the scope the dependency has to have. In your example, 'cluster' means that a Zookeeper Server has to be installed somewhere on your cluster. When you have scope 'host' it would mean that the component Zookeeper Server has to be on the same host as your custom service.

Hope that helps.

View solution in original post

3 REPLIES 3
Highlighted

Re: How to add dependencies on the custom services

Contributor

hi @Sayed Anisul Hoque.

@1. you already linked to the resources handling custom services, maybe the sub-menu brings more light

@2. depdency.name: this is <Service>/<Component>, have a look at the other metainfo.xml definitions. As another example, if you depend on an HBase Master you would write HBASE/HBASE_MASTER

@2 dependency.scope: this is the scope the dependency has to have. In your example, 'cluster' means that a Zookeeper Server has to be installed somewhere on your cluster. When you have scope 'host' it would mean that the component Zookeeper Server has to be on the same host as your custom service.

Hope that helps.

View solution in original post

Re: How to add dependencies on the custom services

Explorer

Thank you David Pocivalnik !

I have one more question. Maybe it is a bit dumb question but suppose, i have couple of component for example there's Master, Slave components. How will I know, to which component type to add the dependencies ?

Highlighted

Re: How to add dependencies on the custom services

Contributor

I don't know of any best practice, but I did refer to an existing service, e.g. HBase

This example shows that the dependencies are only defined for the Master component. But anyhow, it totally depends on your components. So if your slave depends on having e.g. a RegionServer on the same host you should add this dependency to your slave component. If you just require to have a RegionServer on the cluster I'd just go with defining the dependency at the Master component.

What's also important is the '<requiredServices>' section in the sample linked to above.

I hope this information helps.

Don't have an account?
Coming from Hortonworks? Activate your account here