FALCON-2267 Definition api fails if resources are empty

This is extension of sandeepSamudrala's work on PR 353. Completing it on his behalf as he is out on vacation.

Dev testing done:
`IM1738M1:falcon-0.11-SNAPSHOT pallavi.rao$ bin/falcon extension -enumerate
[
  {
    "name": "sample",
    "type": "Custom extension",
    "location": "hdfs://192.168.138.236:8020/tmp/extensions/extension-example"
  },
  …..
  {
    "name": "hive-mirroring",
    "type": "Trusted extension",
    "description": "This extension implements replicating hive metadata and data from one Hadoop cluster to another Hadoop cluster.",
    "location": "file:/Users/pallavi.rao/falcon/falcon-0.11-SNAPSHOT/extensions/hive-mirroring"
  }
]
IM1738M1:falcon-0.11-SNAPSHOT pallavi.rao$ bin/falcon extension -definition -extensionName hive-mirroring

{
    "shortDescription":"This extension implements replicating hive metadata and data from one Hadoop cluster to another Hadoop cluster.",
    "properties":[
        {
            "propertyName":"jobName",
            "required":true,
            "description":"Unique job name",
            "example":"hive-monthly-sales-dr"
        },
….
    ]
}
IM1738M1:falcon-0.11-SNAPSHOT pallavi.rao$ bin/falcon extension -definition -extensionName sample
Contents of file config:

Contents of file config2:
<workflow-app xmlns="uri:oozie:workflow:0.1" name="merlin-workflow">
 ….

IM1738M1:falcon-0.11-SNAPSHOT pallavi.rao$ bin/falcon extension -describe -extensionName sample
Extension Test

IM1738M1:falcon-0.11-SNAPSHOT pallavi.rao$ bin/falcon extension -describe -extensionName hive-mirroring
.....
Hive Mirroring Extension

Overview
Falcon provides feature to replicate Hive metadata and data events from source cluster to destination cluster.
…..`

Author: Pallavi Rao <pallavi.rao@inmobi.com>

Reviewers: @PracheerAgarwal, @sandeepSamudrala

Closes #356 from pallavi-rao/2267
5 files changed
tree: f08a2b9dc85c05eb18453591c3b9537e086375d1
  1. acquisition/
  2. addons/
  3. archival/
  4. build-tools/
  5. cli/
  6. client/
  7. common/
  8. common-types/
  9. distro/
  10. docs/
  11. examples/
  12. extensions/
  13. falcon-regression/
  14. falcon-ui/
  15. hadoop-dependencies/
  16. html5-ui/
  17. lifecycle/
  18. messaging/
  19. metrics/
  20. monitoring/
  21. oozie/
  22. oozie-el-extensions/
  23. prism/
  24. release-docs/
  25. replication/
  26. rerun/
  27. retention/
  28. scheduler/
  29. shell/
  30. src/
  31. test-tools/
  32. test-util/
  33. titan/
  34. unit/
  35. webapp/
  36. .gitignore
  37. .reviewboardrc
  38. CHANGES.txt
  39. falcon_merge_pr.py
  40. Installation-steps.txt
  41. LICENSE.txt
  42. NOTICE.txt
  43. pom.xml
  44. README.md
README.md

Apache Falcon

Falcon is a feed processing and feed management system aimed at making it easier for end consumers to onboard their feed processing and feed management on hadoop clusters.

Why Apache Falcon?

  • Dependencies across various data processing pipelines are not easy to establish. Gaps here typically leads to either incorrect/partial processing or expensive reprocessing. Repeated duplicate definition of a single feed multiple times can lead to inconsistencies / issues.

  • Input data may not arrive always on time and it is required to kick off the processing without waiting for all data to arrive and accommodate late data separately

  • Feed management services such as feed retention, replications across clusters, archival etc are tasks that are burdensome on individual pipeline owners and better offered as a service for all customers.

  • It should be easy to onboard new workflows/pipelines

  • Smoother integration with metastore/catalog

  • Provide notification to end customer based on availability of feed groups (logical group of related feeds, which are likely to be used together)

Online Documentation

You can find the documentation on Apache Falcon website.

How to Contribute

Before opening a pull request, please go through the Contributing to Apache Falcon wiki. It lists steps that are required before creating a PR and the conventions that we follow. If you are looking for issues to pick up then you can look at starter tasks or open tasks

Release Notes

You can download release notes of previous releases from the following links.

0.8

0.7