Added optional CDN feature to the BnP pipeline.
commit1feb85f4eadcfdf5743ce26b106685bd1dd11d5e
authorCharles Gao <chgao@linkedin.com>
Fri, 21 Jul 2017 19:20:06 +0000 (21 12:20 -0700)
committergaojieliu <gaojieliu@users.noreply.github.com>
Fri, 21 Jul 2017 21:04:28 +0000 (21 14:04 -0700)
tree2e5c7010717398056512a1ae0fe0faf2b4df2970
parent3787b4fc83fe68151e301dcdbd4e366dbfbe35e1
Added optional CDN feature to the BnP pipeline.

Currently the Voldemort Build and Push (BnP) plugin tells Voldemort
cluster to fetch twice from the source HDFS cluster.
This optional CDN feature will instead copy files to dedicated CDN
clusters, and therefore reduce bandwidth requirement for the source.

The following are new attributes that are related to this release:
1. push.cdn.enabled
    The global switch.
    Example: true
    Default: false

2. push.cdn.cluster
    A list of "destination|cdn" pairs separated by comma, where "destination"
    is a Voldemort cluster, and "cdn" is the corresponding HDFS cluster used
    as CDN. if "cdn" is "null", V-cluster will fetch directly from the source
    HDFS cluster instead, in which case the behavior is identical to the
    previous versions of Voldemort.
    Example: tcp://v-cluster1:6666|hdfs://cdn1:9000,tcp://v-cluster2:6666|webhdfs://cdn2:50070,tcp://v-cluster3:6666|null
    Default: null

3. push.cdn.prefix
    A directory on the CDN cluster as the root for all distcp copied files.
    Example: /jobs/VoldemortBnP
    Default: null

4. push.cdn.readByGroup
    Set true if CDN files are read by a different user in the same group.
    Example: true
    Default: true

5. push.cdn.readByOther
    Set true if CDN files are read by a different user in a different group.
    Example: true
    Default: true

6. push.cdn.writtenByGroup
    Set true if CDN files are written by a different user in the same group.
    Example: true
    Default: true

7. push.cdn.writtenByOther
    Set true if CDN files are written by a different user in a different group.
    Example: true
    Default: true

8. push.cdn.storeWhitelist
    A comma-separated list of Voldemort store names to which the CDN feature will
    apply. (for testing purposes)
    Default: null (means apply to every store)

This release is compatible with existing job configurations. The default
behavior is identical to the previous version.
build.gradle
contrib/hadoop-store-builder/src/java/voldemort/store/readonly/hooks/BuildAndPushStatus.java
contrib/hadoop-store-builder/src/java/voldemort/store/readonly/mr/azkaban/GobblinDistcpJob.java [new file with mode: 0644]
contrib/hadoop-store-builder/src/java/voldemort/store/readonly/mr/azkaban/VoldemortBuildAndPushJob.java
contrib/hadoop-store-builder/src/java/voldemort/store/readonly/mr/azkaban/VoldemortSwapJob.java
gobblin/build.gradle [new file with mode: 0644]
settings.gradle