Skip to content
This repository has been archived by the owner on Apr 4, 2021. It is now read-only.

FALCON-2196 User Extensions Documentation #381

Closed
wants to merge 35 commits into from

Conversation

sandeepSamudrala
Copy link
Contributor

No description provided.

… submission and colo addition to schedule command
@@ -2,64 +2,11 @@

---++ Overview

A Falcon extension is a static process template with parameterized workflow to realize a specific use case and enable non-programmers to capture and re-use very complex business logic. Extensions are defined in server space. Objective of the extension is to solve a standard data management function that can be invoked as a tool using the standard Falcon features (REST API, CLI and UI access) supporting standard falcon features.
A Falcon extension is an implementation comprising entities with a specific use case and enable non-programmers to capture and re-use very complex business logic. Objective of an extension is to solve a standard data processing/management function that can be invoked as a tool using the standard Falcon features (REST API, CLI and UI access) supporting standard falcon features.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we reword - "A Falcon extension is a solution template comprising of entities that solve a specific use case."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack. Made the changes.


For example:
There are two types of extensions:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Falcon currently support two types of extensions:

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack. Made the changes.


---++ Overview

A Falcon Trusted extension is a static process template with parameterized workflow to realize a specific use case and enable non-programmers to capture and re-use very complex business logic. Trusted Extensions are defined in server space. Objective of the trusted extension is to solve a standard data management function that can be invoked as a tool using the standard Falcon features (REST API, CLI and UI access) supporting standard falcon features.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"Objective of .... " is a repetition of uber level overview.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modified accordingly

@@ -2,64 +2,11 @@

---++ Overview

A Falcon extension is a static process template with parameterized workflow to realize a specific use case and enable non-programmers to capture and re-use very complex business logic. Extensions are defined in server space. Objective of the extension is to solve a standard data management function that can be invoked as a tool using the standard Falcon features (REST API, CLI and UI access) supporting standard falcon features.
A Falcon extension is an implementation comprising entities with a specific use case and enable non-programmers to capture and re-use very complex business logic. Objective of an extension is to solve a standard data processing/management function that can be invoked as a tool using the standard Falcon features (REST API, CLI and UI access) supporting standard falcon features.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize f in "falcon features"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modified

* Replicating between HDFS and Hive - either way
* Data masking etc.

---++ Proposal

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a proposal.. Consider moving this to overview section.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved.

@@ -0,0 +1,232 @@
---+ Falcon User Extensions

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize Falcon everywhere.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

corrected


---++ Overview

A Falcon User extension is an Extension Developer's implementation of Falcon Extension builder. A user extension can be used by all falcon users.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't bring out the intent. May be something like this:
A falcon user extension is a solution template that comprises of Falcon entities that a Falcon user can build. The extension so built can be made available to and discovered by other users (sharing the same Falcon installation). Extension users can instantiate the solution template and deploy it by providing relevant parameters.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Modified.


---+++ Extension Registration API
---++++ Extension Registration:
An extension developer has to register his extension with Falcon in order to make it discoverable to other users. Registration of the extension, enables it by default.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

...discoverable by other users.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected.



---++ Extension Developer
This user is the developer of an user extension.Following are the various actions a falcon extension developer performs:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Space after period(.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected.

Sample Output:
falcon/default/resume successful (feed) out-feed-abc
submit/falcon/default/resume successful (process) pig-process-abc
</verbatim>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you also want to add a note saying instance operations will have to be performed using the falcon instance API?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added


For example:

* Replicating directories from one HDFS cluster to another (not timed partitions)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feed replication from one cluster to another.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessarily feed replication, for example hdfs snapshot mirroring just replicates the directory without any feed.

|-- <extension name>
|-- README // This file will be ‘cat’ when extension user issues the “describe” command.
|-- META
|-- properties file // This file will be ‘cat’ when extension user issues the “definition” command.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

give an example for definition command here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added


---+++ Details of an extension job
Gets the details of a particular job:
---++++Command: bin/falcon extension -get -jobName <jobName>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bin/falcon extension -detail -jobName

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected it.

@PracheerAgarwal-zz
Copy link
Contributor

Please add a note that extensions commands can be executed on only prism.

---+++Suspend an Extension Job(Idempotent)
Suspending an extension job will suspend all the entities that are part of the extension.
As of now there is no support for suspending in specific colos in distributed mode.
---++++Commands: falcon extension -suspend -extensionName <extension name> -jobName <name to be used in all the extension entities>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extensionName is not required in suspend command.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed it

---+++Resume an Extension Job(Idempotent)
Resuming an extension job will resume all the entities that are part of the extension.
As of now there is no support for resuming in specific colos in distributed mode.
---++++Commands: falcon extension -resume -extensionName <extension name> -jobName <name to be used in all the extension entities>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extensionName argument is not required for resume.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed it

---+++ Extension Instatiation validation.
Validates the configs supplied for an instantiation of the given extension.
<verbatim>
Sample Command: falcon extension -validate -extensionName data-quality-check -file extensions/hdfs-mirroring//META/hdfs-mirroring-properties.json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added

<verbatim>
Sample Output:
falcon/default/Submit successful (feed) out-feed-abc
submit/falcon/default/Submit successful (process) pig-process-abc
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you may move the schedule documentation here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Moved it below submit, but don't want to merge with submitAndSchedule.

---+++Delete an Extension Job(Idempotent)
Deletion of the entities that are part of an extension can only be deleted by deleting an extension.
All the write operations(submit, submitAndSchedule, update and delete) of entites that are part of an extension job can be done only via extension job apis.
---++++Commands: falcon extension -delete -extensionName <extension name> -jobName <name to be used in all the extension entities>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extensionName is not required.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed it

Users will have an option to update a particular instance of an extension. He can supply new parameters during update. However, an update will always update the entities to use the latest libs of the extension.
---++++Commands:
<verbatim>
falcon extension -update -extensionName <extension name> -jobName <name to be used in all the extension entities> -file <path to extension parameters>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extensionName is not required.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed it

---+++Schedule an Extension Job(Idempotent)
A submitted extension job can be shceduled.
As of now there is no support for scheduling in specific colos in distributed mode.
---++++Commands: falcon extension -schedule -extensionName <extension name> -jobName <name to be used in all the extension entities>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extensionName not required.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

removed it


---+++ List of the instantiations of an extension
Lists all the instances of a given extension
---++++Command: bin/falcon extension -list -extensionName <extension name>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also mention, if extensionName not given - it will return all extension jobs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added info accordingly

Copy link

@pallavi-rao pallavi-rao left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, apart from the 2 minor nits.


There are two types of extensions:
Falcon currently support two types of extensions:

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Falcon currently supports ....

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected

@@ -2,16 +2,16 @@

---++ Overview

A Falcon User extension is an Extension Developer's implementation of Falcon Extension builder. A user extension can be used by all falcon users.
There are mainly two roles into Falcon User Extensions:
A falcon user extension is a solution template that comprises of Falcon entities that a Falcon user can build. The extension so built can be made available to and discovered by other users (sharing the same Falcon installation).

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capitalize F in Falcon.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected

@asfgit asfgit closed this in 7800d34 Apr 10, 2017
pallavi-rao pushed a commit to pallavi-rao/falcon that referenced this pull request Feb 16, 2018
Author: sandeep <sandysmdl@gmail.com>
Author: sandeep <sandeep@kickseed.corp.inmobi.com>

Reviewers: "Pallavi Rao <pallavi.rao@inmobi.com>, Pracheer Agarwal <pracheeragarwal@gmail.com>"

Closes apache#381 from sandeepSamudrala/FALCON-2196 and squashes the following commits:

362dcec [sandeep] FALCON-2196 Incorporated review comments
485f38c [sandeep] FALCON-2196 Incorporated review comments
b525b58 [sandeep] FALCON-2196 User Extensions Documentation
68b1a51 [sandeep] Merge branch 'master' of https://github.com/apache/falcon into FALCON-2196
cf7ea21 [sandeep] Merge branch 'master' of https://github.com/apache/falcon into FALCON-2196
79e8d64 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
7de7798 [sandeep] go -b FALCON-2263Merge branch 'master' of https://github.com/apache/falcon
c5da0a2 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
7e16263 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
a234d94 [sandeep] FALCON-2231 Incoporated review comments and small fixes for duplicate submission and colo addition to schedule command
26e3350 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
73fbf75 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
cc28658 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
089b10d [sandeep] Merge branch 'master' of https://github.com/apache/falcon
456d4ee [sandeep] Merge branch 'master' of https://github.com/apache/falcon
0cf9af6 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
4a2e23e [sandeep] Merge branch 'master' of https://github.com/apache/falcon
b1546ed [sandeep] Merge branch 'master' of https://github.com/apache/falcon
0a433fb [sandeep] Merge branch 'master' of https://github.com/apache/falcon
194f36a [sandeep] Merge branch 'master' of https://github.com/apache/falcon
e0ad358 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
f96a084 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
9cf36e9 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
bbca081 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
48f6afa [sandeep] Merge branch 'master' of https://github.com/apache/falcon
250cc46 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
d0393e9 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
a178805 [sandeep] Merge branch 'master' of https://github.com/apache/falcon
d6dc8bf [sandeep] Merge branch 'master' of https://github.com/apache/falcon
1bb8d3c [sandeep] Merge branch 'master' of https://github.com/apache/falcon
c065566 [sandeep] reverting last line changes made
1a4dcd2 [sandeep] rebased and resolved the conflicts from master
271318b [sandeep] FALCON-2097. Adding UT to the new method for getting next instance time with Delay.
a94d4fe [sandeep] rebasing from master
9e68a57 [sandeep] FALCON-298. Feed update with replication delay creates holes
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants