<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>question Re: Oozie custom action deployment on Cloudera 5.4.x clusters running Cloudera Manager in Archives of Support Questions (Read Only)</title>
    <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30049#M6632</link>
    <description>I've posted a reply on your other thread opened for this topic: &lt;A href="http://community.cloudera.com/t5/Batch-Processing-and-Workflow/Cloudera-5-4-x-Oozie-Custom-Action-python-to-configure-classes/m-p/29952" target="_blank"&gt;http://community.cloudera.com/t5/Batch-Processing-and-Workflow/Cloudera-5-4-x-Oozie-Custom-Action-python-to-configure-classes/m-p/29952&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Lets carry on there, and mark this thread resolved (for benefit of others looking for the same thing)?</description>
    <pubDate>Sat, 25 Jul 2015 01:34:51 GMT</pubDate>
    <dc:creator>Harsh J</dc:creator>
    <dc:date>2015-07-25T01:34:51Z</dc:date>
    <item>
      <title>Oozie custom action deployment on Cloudera 5.4.x clusters running Cloudera Manager</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/29693#M6629</link>
      <description>&lt;P&gt;Our environment runs multiple Cloudera 5.4.x clusters, each running Cloudera Manager.&lt;/P&gt;&lt;P&gt;We would like to deploy an oozie custom action, and automate it as much as possible. &amp;nbsp;For development we uave used the Cloudera Quickstart vm and do roughly the following steps:&lt;/P&gt;&lt;P&gt;1) Stop oozie and it's dependiencies - Use cloudera manager to stop Hue first then Oozie (since hue depends on oozie).&lt;/P&gt;&lt;P&gt;2) Configure oozie and deploy jars that launch the custom action.&lt;/P&gt;&lt;P&gt;2a)For the initial install only, register the custom action with oozie iusing Cloudera Manager (in particular identify the xml schema and the corresponding class).&lt;/P&gt;&lt;P&gt;2b) On the intial install and for every upgrade, deploy the jars required to launch the costom action to /var/lib/oozie.&lt;/P&gt;&lt;P&gt;3) Restart oozie and its dependencies - Use cloudera manager to restart oozie then hue.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I would like to have command line&amp;nbsp;automation for steps 1, 2a and 3 if possible, epecially steps 1 and 3.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For steps 1 and 3 (stopping and restarting oozie),&amp;nbsp;is there a&amp;nbsp;command line interface suitable for inclusion into the a rpm's shell scripts (invoked via rpm), in particular it seems taht using the command line "service" interface is contraindicated as per&amp;nbsp;&lt;A href="http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_services_stop.html" target="_blank"&gt;http://www.cloudera.com/content/cloudera/en/documentation/core/latest/topics/cdh_ig_services_stop.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For step 2a) I'm not sure if I can do this via a script, the changes are not being reflected in the oozie-site.xml file (&amp;nbsp;/etc/oozie/conf.dist/oozie-site.xml) does not seem to be updated or accessed by oozie.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 21 Apr 2026 13:58:09 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/29693#M6629</guid>
      <dc:creator>BillM.</dc:creator>
      <dc:date>2026-04-21T13:58:09Z</dc:date>
    </item>
    <item>
      <title>Re: Oozie custom action deployment on Cloudera 5.4.x clusters running Cloudera Manager</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/29711#M6630</link>
      <description>For all of these steps, you can make use of CM's API and other extension features.&lt;BR /&gt;&lt;BR /&gt;The CM API allows you to use REST API (via curl cli commands, python or java programs, etc.) to set configuration, restart clusters, services or instances, and a lot more. This is documented with some examples at the CM API website: &lt;A href="http://cloudera.github.io/cm_api/" target="_blank"&gt;http://cloudera.github.io/cm_api/&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;For deploying custom jars easily, you can also consider writing a custom parcel (if you already use parcels and not RPM/DEB packages to run CDH in CM). Documentation on what parcels are and how to write a parcel is at &lt;A href="https://github.com/cloudera/cm_ext/wiki/Parcels:-What-and-Why%3F," target="_blank"&gt;https://github.com/cloudera/cm_ext/wiki/Parcels:-What-and-Why%3F,&lt;/A&gt; &lt;A href="https://github.com/cloudera/cm_ext/wiki/The-parcel-format" target="_blank"&gt;https://github.com/cloudera/cm_ext/wiki/The-parcel-format&lt;/A&gt; and &lt;A href="https://github.com/cloudera/cm_ext/wiki/Building-a-parcel" target="_blank"&gt;https://github.com/cloudera/cm_ext/wiki/Building-a-parcel&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;One example Oozie-related parcel I have in my personal repo is one that installs the extjs UI libraries in an automatic manner. You can reference it for building your own custom jar deployment parcel: &lt;A href="https://github.com/QwertyManiac/extjs-parcel" target="_blank"&gt;https://github.com/QwertyManiac/extjs-parcel&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Does this help?</description>
      <pubDate>Fri, 17 Jul 2015 04:00:47 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/29711#M6630</guid>
      <dc:creator>Harsh J</dc:creator>
      <dc:date>2015-07-17T04:00:47Z</dc:date>
    </item>
    <item>
      <title>Re: Oozie custom action deployment on Cloudera 5.4.x clusters running Cloudera Manager</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30040#M6631</link>
      <description>&lt;P&gt;Thanks for the help. &amp;nbsp;Regarding the API and the documentation, I've had a chance to look over it and stopping, starting/restarting the oozie server and its dependencies are fairly streigth forward. &amp;nbsp;However, I'm not quite clear on how to update the properties to register the custom actions classes via the&lt;/P&gt;&lt;P&gt;Oozie ActionService Executor Extension Classes (oozie.service.ActionService.executor.ext.classes) and &amp;nbsp;the&amp;nbsp;Oozie SchemaService Workflow Extension Schemas&lt;BR /&gt;&amp;nbsp;(oozie.service.SchemaService.wf.ext.schemas). &amp;nbsp;I've tried several different approaches via the python API as seen at &lt;A href="http://cloudera.github.io/cm_api/docs/python-client/," target="_blank"&gt;http://cloudera.github.io/cm_api/docs/python-client/,&lt;/A&gt; &amp;nbsp;however so far I have had no luck. &amp;nbsp;If anyone knows how to do this, I'd appreaciate it.&lt;/P&gt;</description>
      <pubDate>Fri, 24 Jul 2015 17:37:21 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30040#M6631</guid>
      <dc:creator>BillM.</dc:creator>
      <dc:date>2015-07-24T17:37:21Z</dc:date>
    </item>
    <item>
      <title>Re: Oozie custom action deployment on Cloudera 5.4.x clusters running Cloudera Manager</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30049#M6632</link>
      <description>I've posted a reply on your other thread opened for this topic: &lt;A href="http://community.cloudera.com/t5/Batch-Processing-and-Workflow/Cloudera-5-4-x-Oozie-Custom-Action-python-to-configure-classes/m-p/29952" target="_blank"&gt;http://community.cloudera.com/t5/Batch-Processing-and-Workflow/Cloudera-5-4-x-Oozie-Custom-Action-python-to-configure-classes/m-p/29952&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;Lets carry on there, and mark this thread resolved (for benefit of others looking for the same thing)?</description>
      <pubDate>Sat, 25 Jul 2015 01:34:51 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30049#M6632</guid>
      <dc:creator>Harsh J</dc:creator>
      <dc:date>2015-07-25T01:34:51Z</dc:date>
    </item>
    <item>
      <title>Re: Oozie custom action deployment on Cloudera 5.4.x clusters running Cloudera Manager</title>
      <link>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30453#M6633</link>
      <description>The following steps can be done to get/set configurations:

==== Oozie ActionService Executor Extension Classes ====
&amp;gt;&amp;gt;&amp;gt; from cm_api.api_client import ApiResource
&amp;gt;&amp;gt;&amp;gt; print ApiResource('nightly54-1.vpc.cloudera.com').get_all_clusters()[0].get_all_services()[4].get_all_roles()[0].get_config(view='full')['oozie_executor_extension_classes']
&lt;APICONFIG&gt;: oozie_executor_extension_classes = none
&amp;gt;&amp;gt;&amp;gt; print ApiResource('nightly54-1.vpc.cloudera.com').get_all_clusters()[0].get_all_services()[4].get_all_roles()[0].update_config({'oozie_executor_extension_classes':'oozie_test.class'})
&amp;gt;&amp;gt;&amp;gt; print ApiResource('nightly54-1.vpc.cloudera.com').get_all_clusters()[0].get_all_services()[4].get_all_roles()[0].get_config(view='full')['oozie_executor_extension_classes']
&lt;APICONFIG&gt;: oozie_executor_extension_classes = oozie_test.class
====================


==== Oozie SchemaService Workflow Extension Schemas ====
&amp;gt;&amp;gt;&amp;gt; from cm_api.api_client import ApiResource
&amp;gt;&amp;gt;&amp;gt; print ApiResource('nightly54-1.vpc.cloudera.com').get_all_clusters()[0].get_all_services()[4].get_all_roles()[0].get_config(view='full')['oozie_workflow_extension_schemas']&lt;APICONFIG&gt;: oozie_workflow_extension_schemas = ssh-action-0.1.xsd,hive-action-0.3.xsd,sqoop-action-0.3.xsd,shell-action-0.2.xsd,shell-action-0.1.xsd
&amp;gt;&amp;gt;&amp;gt; ApiResource('nightly54-1.vpc.cloudera.com').get_all_clusters()[0].get_all_services()[4].get_all_roles()[0].update_config({'oozie_workflow_extension_schemas':'ssh-action-0.1.xsd,hive-action-0.3.xsd,sqoop-action-0.3.xsd,shell-action-0.2.xsd,shell-action-0.1.xsd,oozie-test-action.xsd'})
&amp;gt;&amp;gt;&amp;gt; print ApiResource('nightly54-1.vpc.cloudera.com').get_all_clusters()[0].get_all_services()[4].get_all_roles()[0].get_config(view='full')['oozie_workflow_extension_schemas']&lt;APICONFIG&gt;: oozie_workflow_extension_schemas = ssh-action-0.1.xsd,hive-action-0.3.xsd,sqoop-action-0.3.xsd,shell-action-0.2.xsd,shell-action-0.1.xsd,oozie-test-action.xsd
===================

Hardcoded value used for method such as "get_all_clusters()[0]" for brevity. A for-loop would be needed to parse for specific value and
return the object for the next call, etc... [1]. For future reference, all the modules can be found at ".../cm_api/endpoints."

[1] &lt;A href="http://cloudera.github.io/cm_api/docs/python-client" target="_blank"&gt;http://cloudera.github.io/cm_api/docs/python-client&lt;/A&gt;&lt;/APICONFIG&gt;&lt;/APICONFIG&gt;&lt;/APICONFIG&gt;&lt;/APICONFIG&gt;</description>
      <pubDate>Tue, 04 Aug 2015 23:39:35 GMT</pubDate>
      <guid>https://community.cloudera.com/t5/Archives-of-Support-Questions/Oozie-custom-action-deployment-on-Cloudera-5-4-x-clusters/m-p/30453#M6633</guid>
      <dc:creator>Dat Pham</dc:creator>
      <dc:date>2015-08-04T23:39:35Z</dc:date>
    </item>
  </channel>
</rss>

