GitHub user manuzhang opened a pull request:

    https://github.com/apache/incubator-beam/pull/323

    [BEAM-79] add Gearpump runner

    Be sure to do all of the following to help us incorporate your contribution
    quickly and easily:
    
     - [ ] Make sure the PR title is formatted like:
       `[BEAM-<Jira issue #>] Description of pull request`
     - [ ] Make sure tests pass via `mvn clean verify`. (Even better, enable
           Travis-CI on your fork and ensure the whole test matrix passes).
     - [ ] Replace `<Jira issue #>` in the title with the actual Jira issue
           number, if there is one.
     - [ ] If this contribution is large, please file an Apache
           [Individual Contributor License 
Agreement](https://www.apache.org/licenses/icla.txt).
    
    ---
    
    This PR adds Gearpump runner to Beam meeting the goals of phase 1 in the 
[design 
document](https://docs.google.com/document/d/1nw64QUWVfT8L7FUprPGLEeNjSBpDMkn1otfLt2rHM5g/edit).
    
    The Gearpump runner supports the following functionalities,
    
    * Transformations: ParDo, GroupByKey, Flatten
    * Windows: using Beam's window logic and code
    * side outputs
    * serialization/deserialization: using Gearpump's Kryo serializer
    * sources: Beam's UnboundedSource
    * message delivery guarantee: at-most-once
    * tests: integration test for various translators
    
    Here's a snapshot of running the following Beam example on Gearpump cluster
    
    ```java
        PCollection<KV<String, Long>> wordCounts =
            p.apply(Read.from(new UnboundedTextSource()).named("WordStream"))
                .apply(ParDo.of(new ExtractWordsFn()))
                
.apply(Window.<String>into(FixedWindows.of(Duration.standardSeconds(10))))
                .apply(Count.<String>perElement());
    
        wordCounts.apply(ParDo.of(new FormatAsStringFn()));
    ```
    
    
![snip20160511_4](https://cloud.githubusercontent.com/assets/1191767/15171197/fd6ffba0-177e-11e6-99a1-30c7c2597244.png)
    
    Note that the Gearpump runner is still in early stage and lacking 
capabilities like trigger, side inputs, aggregator. However, I'd like to have 
the community to get a feel of what Gearpump is like, whether Beam and Gearpump 
go well, and gather ideas for improvements. 
    
    


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/manuzhang/incubator-beam gearpump_runner

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-beam/pull/323.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #323
    
----
commit 73e5978f599bcf32ed8c2f1d54b6bd3bd8350092
Author: manuzhang <owenzhang1...@gmail.com>
Date:   2016-03-15T08:15:16Z

    [BEAM-79] add Gearpump runner

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to