This is an automated email from the ASF dual-hosted git repository. mergebot-role pushed a commit to branch mergebot in repository https://gitbox.apache.org/repos/asf/beam-site.git
commit d747c76fdccd138a9c6e7af3c2374c1177d4bd54 Author: melissa <meliss...@google.com> AuthorDate: Fri Sep 29 10:26:40 2017 -0700 Manually add missed files from content dir --- content/documentation/execution-model/index.html | 402 +++++++++++++++++++++ content/documentation/runners/jstorm/index.html | 299 +++++++++++++++ content/documentation/runners/mapreduce/index.html | 275 ++++++++++++++ content/images/execution_model_bundling.svg | 357 ++++++++++++++++++ .../execution_model_bundling_coupled_failure.svg | 59 +++ content/images/execution_model_bundling_gantt.svg | 50 +++ .../images/execution_model_bundling_gantt_max.svg | 67 ++++ content/images/execution_model_bundling_multi.svg | 336 +++++++++++++++++ .../execution_model_bundling_multi_gantt.svg | 52 +++ content/images/execution_model_failure_retry.svg | 56 +++ content/images/logos/runners/jstorm.png | Bin 0 -> 6375 bytes src/documentation/runners/mapreduce.md | 1 + 12 files changed, 1954 insertions(+) diff --git a/content/documentation/execution-model/index.html b/content/documentation/execution-model/index.html new file mode 100644 index 0000000..8afa172 --- /dev/null +++ b/content/documentation/execution-model/index.html @@ -0,0 +1,402 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Beam Execution Model</title> + <meta name="description" content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number of runtimes like Apache Flink, Apache Spark, and Google Cloud Dataflow [...] +"> + <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400" rel="stylesheet"> + <link rel="stylesheet" href="/css/site.css"> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script src="/js/language-switch.js"></script> + <link rel="canonical" href="https://beam.apache.org/documentation/execution-model/" data-proofer-ignore> + <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico"> + <link rel="alternate" type="application/rss+xml" title="Apache Beam" href="https://beam.apache.org/feed.xml"> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-73650088-1', 'auto'); + ga('send', 'pageview'); + </script> +</head> + + <body class="body "> + <nav class="header navbar navbar-fixed-top"> + <div class="navbar-header"> + <a href="/" class="navbar-brand" > + <img alt="Brand" style="height: 25px" src="/images/beam_logo_navbar.png"> + </a> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Get Started <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/get-started/beam-overview/">Beam Overview</a></li> + <li><a href="/get-started/quickstart-java/">Quickstart - Java</a></li> + <li><a href="/get-started/quickstart-py/">Quickstart - Python</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Example Walkthroughs</li> + <li><a href="/get-started/wordcount-example/">WordCount</a></li> + <li><a href="/get-started/mobile-gaming-example/">Mobile Gaming</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Resources</li> + <li><a href="/get-started/downloads">Downloads</a></li> + <li><a href="/get-started/support">Support</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/documentation">Using the Documentation</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Beam Concepts</li> + <li><a href="/documentation/programming-guide/">Programming Guide</a></li> + <li><a href="/documentation/execution-model/">Execution Model</a></li> + <li><a href="/documentation/resources/">Additional Resources</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Pipeline Fundamentals</li> + <li><a href="/documentation/pipelines/design-your-pipeline/">Design Your Pipeline</a></li> + <li><a href="/documentation/pipelines/create-your-pipeline/">Create Your Pipeline</a></li> + <li><a href="/documentation/pipelines/test-your-pipeline/">Test Your Pipeline</a></li> + <li><a href="/documentation/io/io-toc/">Pipeline I/O</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">SDKs</li> + <li><a href="/documentation/sdks/java/">Java SDK</a></li> + <li><a href="/documentation/sdks/javadoc/2.1.0/" target="_blank">Java SDK API Reference <img src="/images/external-link-icon.png" + width="14" height="14" + alt="External link."></a> + </li> + <li><a href="/documentation/sdks/python/">Python SDK</a></li> + <li><a href="/documentation/sdks/pydoc/2.1.0/" target="_blank">Python SDK API Reference <img src="/images/external-link-icon.png" + width="14" height="14" + alt="External link."></a> + </li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Runners</li> + <li><a href="/documentation/runners/capability-matrix/">Capability Matrix</a></li> + <li><a href="/documentation/runners/direct/">Direct Runner</a></li> + <li><a href="/documentation/runners/apex/">Apache Apex Runner</a></li> + <li><a href="/documentation/runners/flink/">Apache Flink Runner</a></li> + <li><a href="/documentation/runners/gearpump/">Apache Gearpump Runner</a></li> + <li><a href="/documentation/runners/spark/">Apache Spark Runner</a></li> + <li><a href="/documentation/runners/dataflow/">Cloud Dataflow Runner</a></li> + + <li role="separator" class="divider"></li> + <li class="dropdown-header">DSLs</li> + <li><a href="/documentation/dsls/sql/">SQL</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Contribute <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/contribute">Get Started Contributing</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Guides</li> + <li><a href="/contribute/contribution-guide/">Contribution Guide</a></li> + <li><a href="/contribute/testing/">Testing Guide</a></li> + <li><a href="/contribute/release-guide/">Release Guide</a></li> + <li><a href="/contribute/ptransform-style-guide/">PTransform Style Guide</a></li> + <li><a href="/contribute/runner-guide/">Runner Authoring Guide</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Technical References</li> + <li><a href="/contribute/design-principles/">Design Principles</a></li> + <li><a href="/contribute/work-in-progress/">Ongoing Projects</a></li> + <li><a href="/contribute/source-repository/">Source Repository</a></li> + <li><a href="/contribute/docker-images/">Docker Images</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Promotion</li> + <li><a href="/contribute/presentation-materials/">Presentation Materials</a></li> + <li><a href="/contribute/logos/">Logos and Design</a></li> + <li role="separator" class="divider"></li> + <li><a href="/contribute/maturity-model/">Maturity Model</a></li> + <li><a href="/contribute/team/">Team</a></li> + </ul> + </li> + + <li><a href="/blog">Blog</a></li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><img src="https://www.apache.org/foundation/press/kit/feather_small.png" alt="Apache Logo" style="height:20px;"><span class="caret"></span></a> + <ul class="dropdown-menu dropdown-menu-right"> + <li><a href="http://www.apache.org/">ASF Homepage</a></li> + <li><a href="http://www.apache.org/licenses/">License</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> + </ul> + </li> + </ul> + </div><!--/.nav-collapse --> +</nav> + + <div class="body__contained"> + <h1 id="apache-beam-execution-model">Apache Beam Execution Model</h1> + +<p>The Beam model allows runners to execute your pipeline in different ways. You +may observe various effects as a result of the runner’s choices. This page +describes these effects so you can better understand how Beam pipelines execute.</p> + +<ul id="markdown-toc"> + <li><a href="#processing-of-elements" id="markdown-toc-processing-of-elements">Processing of elements</a> <ul> + <li><a href="#serialization-and-communication" id="markdown-toc-serialization-and-communication">Serialization and communication</a></li> + <li><a href="#bundling-and-persistence" id="markdown-toc-bundling-and-persistence">Bundling and persistence</a></li> + </ul> + </li> + <li><a href="#parallelism" id="markdown-toc-parallelism">Failures and parallelism within and between transforms</a> <ul> + <li><a href="#data-parallelism" id="markdown-toc-data-parallelism">Data-parallelism within one transform</a></li> + <li><a href="#dependent-parallellism" id="markdown-toc-dependent-parallellism">Dependent-parallelism between transforms</a></li> + <li><a href="#failures-within-one-transform" id="markdown-toc-failures-within-one-transform">Failures within one transform</a></li> + <li><a href="#coupled-failure" id="markdown-toc-coupled-failure">Coupled failure: Failures between transforms</a></li> + </ul> + </li> +</ul> + +<h2 id="processing-of-elements">Processing of elements</h2> + +<p>The serialization and communication of elements between machines is one of the +most expensive operations in a distributed execution of your pipeline. Avoiding +this serialization may require re-processing elements after failures or may +limit the distribution of output to other machines.</p> + +<h3 id="serialization-and-communication">Serialization and communication</h3> + +<p>The runner might serialize elements between machines for communication purposes +and for other reasons such as persistence.</p> + +<p>A runner may decide to transfer elements between transforms in a variety of +ways, such as:</p> + +<ol> + <li>Routing elements to a worker for processing as part of a grouping operation. +This may involve serializing elements and grouping or sorting them by their +key.</li> + <li>Redistributing elements between workers to adjust parallelism. This may +involve serializing elements and communicating them to other workers.</li> + <li>Using the elements in a side input to a <code class="highlighter-rouge">ParDo</code>. This may require +serializing the elements and broadcasting them to all the workers executing +the <code class="highlighter-rouge">ParDo</code>.</li> + <li>Passing elements between transforms that are running on the same worker. +This may allow the runner to avoid serializing elements; instead, the runner +can just pass the elements in memory.</li> +</ol> + +<p>Some situations where the runner may serialize and persist elements are:</p> + +<ol> + <li>When used as part of a stateful <code class="highlighter-rouge">DoFn</code>, the runner may persist values to some +state mechanism.</li> + <li>When committing the results of processing, the runner may persist the outputs +as a checkpoint.</li> +</ol> + +<h3 id="bundling-and-persistence">Bundling and persistence</h3> + +<p>Beam pipelines often focus on “<a href="https://en.wikipedia.org/wiki/embarrassingly_parallel">embarassingly parallel</a>” +problems. Because of this, the APIs emphasize processing elements in parallel, +which makes it difficult to express actions like “assign a sequence number to +each element in a PCollection”. This is intentional as such algorithms are much +more likely to suffer from scalability problems.</p> + +<p>Processing all elements in parallel also has some drawbacks. Specifically, it +makes it impossible to batch any operations, such as writing elements to a sink +or checkpointing progress during processing.</p> + +<p>Instead of processing all elements simultaneously, the elements in a +<code class="highlighter-rouge">PCollection</code> are processed in <em>bundles</em>. The division of the collection into +bundles is arbitrary and selected by the runner. This allows the runner to +choose an appropriate middle-ground between persisting results after every +element, and having to retry everything if there is a failure. For example, a +streaming runner may prefer to process and commit small bundles, and a batch +runner may prefer to process larger bundles.</p> + +<h2 id="parallelism">Failures and parallelism within and between transforms</h2> + +<p>In this section, we discuss how elements in the input collection are processed +in parallel, and how transforms are retried when failures occur.</p> + +<h3 id="data-parallelism">Data-parallelism within one transform</h3> + +<p>When executing a single <code class="highlighter-rouge">ParDo</code>, a runner might divide an example input +collection of nine elements into two bundles as shown in figure 1.</p> + +<p><img src="/images/execution_model_bundling.svg" alt="bundling" /></p> + +<p><strong>Figure 1:</strong> A runner divides an input collection with nine elements +into two bundles.</p> + +<p>When the <code class="highlighter-rouge">ParDo</code> executes, workers may process the two bundles in parallel as +shown in figure 2.</p> + +<p><img src="/images/execution_model_bundling_gantt.svg" alt="bundling_gantt" /></p> + +<p><strong>Figure 2:</strong> Two workers process the two bundles in parallel. The elements in +each bundle are processed in sequence.</p> + +<p>Since elements cannot be split, the maximum parallelism for a transform depends +on the number of elements in the collection. In our example, the input +collection has nine elements, so the maximum parallelism is nine.</p> + +<p><img src="/images/execution_model_bundling_gantt_max.svg" alt="bundling_gantt_max" /></p> + +<p><strong>Figure 3:</strong> The maximum parallelism is nine, as there are nine elements in the +input collection.</p> + +<p>Note: Splittable ParDo allows splitting the processing of a single input across +multiple bundles. This feature is a work in progress.</p> + +<h3 id="dependent-parallellism">Dependent-parallelism between transforms</h3> + +<p><code class="highlighter-rouge">ParDo</code> transforms that are in sequence may be <em>dependently parallel</em> if the +runner chooses to execute the consuming transform on the producing transform’s +output elements without altering the bundling. In figure 4, <code class="highlighter-rouge">ParDo1</code> and +<code class="highlighter-rouge">ParDo2</code> are <em>dependently parallel</em> if the output of <code class="highlighter-rouge">ParDo1</code> for a given +element must be processed on the same worker.</p> + +<p><img src="/images/execution_model_bundling_multi.svg" alt="bundling_multi" /></p> + +<p><strong>Figure 4:</strong> Two transforms in sequence and their corresponding input collections.</p> + +<p>Figure 5 shows how these dependently parallel transforms might execute. The +first worker executes <code class="highlighter-rouge">ParDo1</code> on the elements in bundle A (which results in +bundle C), and then executes <code class="highlighter-rouge">ParDo2</code> on the elements in bundle C. Similarly, +the second worker executes <code class="highlighter-rouge">ParDo1</code> on the elements in bundle B (which results +in bundle D), and then executes <code class="highlighter-rouge">ParDo2</code> on the elements in bundle D.</p> + +<p><img src="/images/execution_model_bundling_multi_gantt.svg" alt="bundling_multi_gantt.svg" /></p> + +<p><strong>Figure 5:</strong> Two workers execute dependently parallel ParDo transforms.</p> + +<p>Executing transforms this way allows a runner to avoid redistributing elements +between workers, which saves on communication costs. However, the maximum parallelism +now depends on the maximum parallelism of the first of the dependently parallel +steps.</p> + +<h3 id="failures-within-one-transform">Failures within one transform</h3> + +<p>If processing of an element within a bundle fails, the entire bundle fails. The +elements in the bundle must be retried (otherwise the entire pipeline fails), +although they do not need to be retried with the same bundling.</p> + +<p>For this example, we will use the <code class="highlighter-rouge">ParDo</code> from figure 1 that has an input +collection with nine elements and is divided into two bundles.</p> + +<p>In figure 6, the first worker successfully processes all five elements in bundle +A. The second worker processes the four elements in bundle B: the first two +elements were successfully processed, the third element’s processing failed, and +there is one element still awaiting processing.</p> + +<p>We see that the runner retries all elements in bundle B and the processing +completes successfully the second time. Note that the retry does not necessarily +happen on the same worker as the original processing attempt, as shown in the +diagram.</p> + +<p><img src="/images/execution_model_failure_retry.svg" alt="failure_retry" /></p> + +<p><strong>Figure 6:</strong> The processing of an element within bundle B fails, and another worker +retries the entire bundle.</p> + +<p>Because we encountered a failure while processing an element in the input +bundle, we had to reprocess <em>all</em> of the elements in the input bundle. This means +the runner must throw away the entire output bundle since all of the results it +contains will be recomputed.</p> + +<p>Note that if the failed transform is a <code class="highlighter-rouge">ParDo</code>, then the <code class="highlighter-rouge">DoFn</code> instance is torn +down and abandoned.</p> + +<h3 id="coupled-failure">Coupled failure: Failures between transforms</h3> + +<p>If a failure to process an element in <code class="highlighter-rouge">ParDo2</code> causes <code class="highlighter-rouge">ParDo1</code> to re-execute, +these two steps are said to be <em>co-failing</em>.</p> + +<p>For this example, we will use the two <code class="highlighter-rouge">ParDo</code>s from figure 4.</p> + +<p>In figure 7, worker two successfully executes <code class="highlighter-rouge">ParDo1</code> on all elements in bundle +B. However, the worker fails to process an element in bundle D, so <code class="highlighter-rouge">ParDo2</code> +fails (shown as the red X). As a result, the runner must discard and recompute +the output of <code class="highlighter-rouge">ParDo2</code>. Because the runner was executing <code class="highlighter-rouge">ParDo1</code> and <code class="highlighter-rouge">ParDo2</code> +together, the output bundle from <code class="highlighter-rouge">ParDo1</code> must also be thrown away, and all +elements in the input bundle must be retried. These two <code class="highlighter-rouge">ParDo</code>s are co-failing.</p> + +<p><img src="/images/execution_model_bundling_coupled_failure.svg" alt="bundling_coupled failure" /></p> + +<p><strong>Figure 7:</strong> Processing of an element within bundle D fails, so all elements in +the input bundle are retried.</p> + +<p>Note that the retry does not necessarily have the same processing time as the +original attempt, as shown in the diagram.</p> + +<p>All <code class="highlighter-rouge">DoFns</code> that experience coupled failures are terminated and must be torn +down since they aren’t following the normal <code class="highlighter-rouge">DoFn</code> lifecycle .</p> + +<p>Executing transforms this way allows a runner to avoid persisting elements +between transforms, saving on persistence costs.</p> + + + </div> + <footer class="footer"> + <div class="footer__contained"> + <div class="footer__cols"> + <div class="footer__cols__col"> + <div class="footer__cols__col__logo"> + <img src="/images/beam_logo_circle.svg" class="footer__logo" alt="Beam logo"> + </div> + <div class="footer__cols__col__logo"> + <img src="/images/apache_logo_circle.svg" class="footer__logo" alt="Apache logo"> + </div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Start</div> + <div class="footer__cols__col__link"><a href="/get-started/beam-overview/">Overview</a></div> + <div class="footer__cols__col__link"><a href="/get-started/quickstart-java/">Quickstart (Java)</a></div> + <div class="footer__cols__col__link"><a href="/get-started/quickstart-py/">Quickstart (Python)</a></div> + <div class="footer__cols__col__link"><a href="/get-started/downloads/">Downloads</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Docs</div> + <div class="footer__cols__col__link"><a href="/documentation/programming-guide/">Concepts</a></div> + <div class="footer__cols__col__link"><a href="/documentation/pipelines/design-your-pipeline/">Pipelines</a></div> + <div class="footer__cols__col__link"><a href="/documentation/runners/capability-matrix/">Runners</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Community</div> + <div class="footer__cols__col__link"><a href="/contribute/">Contribute</a></div> + <div class="footer__cols__col__link"><a href="/contribute/team/">Team</a></div> + <div class="footer__cols__col__link"><a href="/contribute/presentation-materials/">Media</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Resources</div> + <div class="footer__cols__col__link"><a href="/blog/">Blog</a></div> + <div class="footer__cols__col__link"><a href="/get-started/support/">Support</a></div> + <div class="footer__cols__col__link"><a href="https://github.com/apache/beam">GitHub</a></div> + </div> + </div> + </div> + <div class="footer__bottom"> + © + <a href="http://www.apache.org">The Apache Software Foundation</a> + | <a href="/privacy_policy">Privacy Policy</a> + | <a href="/feed.xml">RSS Feed</a> + <br><br> + Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are + either registered trademarks or trademarks of The Apache Software + Foundation. All other products or name brands are trademarks of their + respective holders, including The Apache Software Foundation. + </div> +</footer> + + </body> +</html> diff --git a/content/documentation/runners/jstorm/index.html b/content/documentation/runners/jstorm/index.html new file mode 100644 index 0000000..e511c8c --- /dev/null +++ b/content/documentation/runners/jstorm/index.html @@ -0,0 +1,299 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>JStorm Runner</title> + <meta name="description" content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number of runtimes like Apache Flink, Apache Spark, and Google Cloud Dataflow [...] +"> + <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400" rel="stylesheet"> + <link rel="stylesheet" href="/css/site.css"> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script src="/js/language-switch.js"></script> + <link rel="canonical" href="https://beam.apache.org/documentation/runners/jstorm/" data-proofer-ignore> + <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico"> + <link rel="alternate" type="application/rss+xml" title="Apache Beam" href="https://beam.apache.org/feed.xml"> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-73650088-1', 'auto'); + ga('send', 'pageview'); + </script> +</head> + + <body class="body "> + <nav class="header navbar navbar-fixed-top"> + <div class="navbar-header"> + <a href="/" class="navbar-brand" > + <img alt="Brand" style="height: 25px" src="/images/beam_logo_navbar.png"> + </a> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Get Started <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/get-started/beam-overview/">Beam Overview</a></li> + <li><a href="/get-started/quickstart-java/">Quickstart - Java</a></li> + <li><a href="/get-started/quickstart-py/">Quickstart - Python</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Example Walkthroughs</li> + <li><a href="/get-started/wordcount-example/">WordCount</a></li> + <li><a href="/get-started/mobile-gaming-example/">Mobile Gaming</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Resources</li> + <li><a href="/get-started/downloads">Downloads</a></li> + <li><a href="/get-started/support">Support</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/documentation">Using the Documentation</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Beam Concepts</li> + <li><a href="/documentation/programming-guide/">Programming Guide</a></li> + <li><a href="/documentation/execution-model/">Execution Model</a></li> + <li><a href="/documentation/resources/">Additional Resources</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Pipeline Fundamentals</li> + <li><a href="/documentation/pipelines/design-your-pipeline/">Design Your Pipeline</a></li> + <li><a href="/documentation/pipelines/create-your-pipeline/">Create Your Pipeline</a></li> + <li><a href="/documentation/pipelines/test-your-pipeline/">Test Your Pipeline</a></li> + <li><a href="/documentation/io/io-toc/">Pipeline I/O</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">SDKs</li> + <li><a href="/documentation/sdks/java/">Java SDK</a></li> + <li><a href="/documentation/sdks/javadoc/2.1.0/" target="_blank">Java SDK API Reference <img src="/images/external-link-icon.png" + width="14" height="14" + alt="External link."></a> + </li> + <li><a href="/documentation/sdks/python/">Python SDK</a></li> + <li><a href="/documentation/sdks/pydoc/2.1.0/" target="_blank">Python SDK API Reference <img src="/images/external-link-icon.png" + width="14" height="14" + alt="External link."></a> + </li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Runners</li> + <li><a href="/documentation/runners/capability-matrix/">Capability Matrix</a></li> + <li><a href="/documentation/runners/direct/">Direct Runner</a></li> + <li><a href="/documentation/runners/apex/">Apache Apex Runner</a></li> + <li><a href="/documentation/runners/flink/">Apache Flink Runner</a></li> + <li><a href="/documentation/runners/gearpump/">Apache Gearpump Runner</a></li> + <li><a href="/documentation/runners/spark/">Apache Spark Runner</a></li> + <li><a href="/documentation/runners/dataflow/">Cloud Dataflow Runner</a></li> + + <li role="separator" class="divider"></li> + <li class="dropdown-header">DSLs</li> + <li><a href="/documentation/dsls/sql/">SQL</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Contribute <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/contribute">Get Started Contributing</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Guides</li> + <li><a href="/contribute/contribution-guide/">Contribution Guide</a></li> + <li><a href="/contribute/testing/">Testing Guide</a></li> + <li><a href="/contribute/release-guide/">Release Guide</a></li> + <li><a href="/contribute/ptransform-style-guide/">PTransform Style Guide</a></li> + <li><a href="/contribute/runner-guide/">Runner Authoring Guide</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Technical References</li> + <li><a href="/contribute/design-principles/">Design Principles</a></li> + <li><a href="/contribute/work-in-progress/">Ongoing Projects</a></li> + <li><a href="/contribute/source-repository/">Source Repository</a></li> + <li><a href="/contribute/docker-images/">Docker Images</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Promotion</li> + <li><a href="/contribute/presentation-materials/">Presentation Materials</a></li> + <li><a href="/contribute/logos/">Logos and Design</a></li> + <li role="separator" class="divider"></li> + <li><a href="/contribute/maturity-model/">Maturity Model</a></li> + <li><a href="/contribute/team/">Team</a></li> + </ul> + </li> + + <li><a href="/blog">Blog</a></li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><img src="https://www.apache.org/foundation/press/kit/feather_small.png" alt="Apache Logo" style="height:20px;"><span class="caret"></span></a> + <ul class="dropdown-menu dropdown-menu-right"> + <li><a href="http://www.apache.org/">ASF Homepage</a></li> + <li><a href="http://www.apache.org/licenses/">License</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> + </ul> + </li> + </ul> + </div><!--/.nav-collapse --> +</nav> + + <div class="body__contained"> + <h1 id="using-the-jstorm-runner">Using the JStorm Runner</h1> + +<p>The JStorm Runner can be used to execute Beam pipelines using <a href="http://jstorm.io/">JStorm</a>, while providing:</p> + +<ul> + <li>High throughput and low latency.</li> + <li>At-least-once and exactly-once fault tolerance.</li> +</ul> + +<p>Like a native JStorm topology, users can execute Beam topology with local mode, standalone cluster or jstorm-on-yarn cluster.</p> + +<p>The <a href="/documentation/runners/capability-matrix/">Beam Capability Matrix</a> documents the currently supported capabilities of the JStorm Runner.</p> + +<h2 id="jstorm-runner-prerequisites-and-setup">JStorm Runner prerequisites and setup</h2> + +<p>The JStorm runner currently supports JStorm version 2.5.0-SNAPSHOT.</p> + +<p>You can add a dependency on the latest version of the JStorm runner by adding the following to your pom.xml:</p> +<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="o"><</span><span class="n">dependency</span><span class="o">></span> + <span class="o"><</span><span class="n">groupId</span><span class="o">></span><span class="n">org</span><span class="o">.</span><span class="na">apache</span><span class="o">.</span><span class="na">beam</span><span class="o"></</span><span class="n">groupId</span><span class="o">></span> + <span class="o"><</span><span class="n">artifactId</span><span class="o">></span><span class="n">beam</span><span class="o">-</span><span class="n">runners</span><span class="o">-</span><span class="n">jstorm</span><span class="o"></</span><span class="n">artifactId</span><span class="o">></span> + <span class="o"><</span><span class="n">version</span><span class="o">></span><span class="mf">2.1</span><span class="o">.</span><span class="mi">0</span><span class="o"></</span><span class="n">version</span><span class="o">></span> +<span class="o"></</span><span class="n">dependency</span><span class="o">></span> +</code></pre> +</div> + +<h3 id="deploying-jstorm-with-your-application">Deploying JStorm with your application</h3> + +<p>To run against a Standalone cluster, you can package your program with all Beam dependencies into a fat jar, and then submit the topology with the following command.</p> +<div class="highlighter-rouge"><pre class="highlight"><code>jstorm jar WordCount.jar org.apache.beam.examples.WordCount --runner=org.apache.beam.runners.jstorm.JStormRunner +</code></pre> +</div> + +<p>If you don’t want to package a fat jar, you can upload the Beam dependencies onto all cluster nodes(<code class="highlighter-rouge">$JSTORM_HOME/lib/ext/beam</code>) first. +When you submit a topology with argument <code class="highlighter-rouge">"--external-libs beam"</code>, JStorm will load the Beam dependencies automatically.</p> +<div class="highlighter-rouge"><pre class="highlight"><code>jstorm jar WordCount.jar org.apache.beam.examples.WordCount --external-libs beam --runner=org.apache.beam.runners.jstorm.JStormRunner +</code></pre> +</div> + +<p>To learn about deploying a JStorm cluster, please refer to <a href="http://jstorm.io/QuickStart/Deploy/index.html">JStorm cluster deploy</a></p> + +<h2 id="pipeline-options-for-the-jstorm-runner">Pipeline options for the JStorm Runner</h2> + +<p>When executing your pipeline with the JStorm Runner, you should consider the following pipeline options.</p> + +<table class="table table-bordered"> +<tr> + <th>Field</th> + <th>Description</th> + <th>Default Value</th> +</tr> +<tr> + <td><code>runner</code></td> + <td>The pipeline runner to use. This option allows you to determine the pipeline runner at runtime.</td> + <td>Set to <code>JStormRunner</code> to run using JStorm.</td> +</tr> +<tr> + <td><code>topologyConfig</code></td> + <td>System topology config of JStorm</td> + <td>DefaultMapValueFactory.class</td> +</tr> +<tr> + <td><code>workerNumber</code></td> + <td>Worker number of topology</td> + <td>1</td> +</tr> +<tr> + <td><code>parallelism</code></td> + <td>Global parallelism number of a component</td> + <td>1</td> +</tr> +<tr> + <td><code>parallelismMap</code></td> + <td>Parallelism number of a specified composite PTransform</td> + <td>DefaultMapValueFactory.class</td> +</tr> +<tr> + <td><code>exactlyOnceTopology</code></td> + <td>Indicate if it is an exactly once topology</td> + <td>false</td> +</tr> +<tr> + <td><code>localMode</code></td> + <td>Indicate if the topology is running on local machine or distributed cluster</td> + <td>false</td> +</tr> +<tr> + <td><code>localModeExecuteTimeSec</code></td> + <td>Executing time(sec) of topology on local mode.</td> + <td>60</td> +</tr> +</table> + +<h2 id="additional-notes">Additional notes</h2> + +<h3 id="monitoring-your-job">Monitoring your job</h3> +<p>You can monitor your job with the JStorm UI, which displays all JStorm system metrics and Beam metrics. +For testing on local mode, you can retreive the Beam metrics with the metrics method of PipelineResult.</p> + + </div> + <footer class="footer"> + <div class="footer__contained"> + <div class="footer__cols"> + <div class="footer__cols__col"> + <div class="footer__cols__col__logo"> + <img src="/images/beam_logo_circle.svg" class="footer__logo" alt="Beam logo"> + </div> + <div class="footer__cols__col__logo"> + <img src="/images/apache_logo_circle.svg" class="footer__logo" alt="Apache logo"> + </div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Start</div> + <div class="footer__cols__col__link"><a href="/get-started/beam-overview/">Overview</a></div> + <div class="footer__cols__col__link"><a href="/get-started/quickstart-java/">Quickstart (Java)</a></div> + <div class="footer__cols__col__link"><a href="/get-started/quickstart-py/">Quickstart (Python)</a></div> + <div class="footer__cols__col__link"><a href="/get-started/downloads/">Downloads</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Docs</div> + <div class="footer__cols__col__link"><a href="/documentation/programming-guide/">Concepts</a></div> + <div class="footer__cols__col__link"><a href="/documentation/pipelines/design-your-pipeline/">Pipelines</a></div> + <div class="footer__cols__col__link"><a href="/documentation/runners/capability-matrix/">Runners</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Community</div> + <div class="footer__cols__col__link"><a href="/contribute/">Contribute</a></div> + <div class="footer__cols__col__link"><a href="/contribute/team/">Team</a></div> + <div class="footer__cols__col__link"><a href="/contribute/presentation-materials/">Media</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Resources</div> + <div class="footer__cols__col__link"><a href="/blog/">Blog</a></div> + <div class="footer__cols__col__link"><a href="/get-started/support/">Support</a></div> + <div class="footer__cols__col__link"><a href="https://github.com/apache/beam">GitHub</a></div> + </div> + </div> + </div> + <div class="footer__bottom"> + © + <a href="http://www.apache.org">The Apache Software Foundation</a> + | <a href="/privacy_policy">Privacy Policy</a> + | <a href="/feed.xml">RSS Feed</a> + <br><br> + Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are + either registered trademarks or trademarks of The Apache Software + Foundation. All other products or name brands are trademarks of their + respective holders, including The Apache Software Foundation. + </div> +</footer> + + </body> +</html> diff --git a/content/documentation/runners/mapreduce/index.html b/content/documentation/runners/mapreduce/index.html new file mode 100644 index 0000000..17c422e --- /dev/null +++ b/content/documentation/runners/mapreduce/index.html @@ -0,0 +1,275 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>Apache Hadoop MapReduce Runner</title> + <meta name="description" content="Apache Beam is an open source, unified model and set of language-specific SDKs for defining and executing data processing workflows, and also data ingestion and integration flows, supporting Enterprise Integration Patterns (EIPs) and Domain Specific Languages (DSLs). Dataflow pipelines simplify the mechanics of large-scale batch and streaming data processing and can run on a number of runtimes like Apache Flink, Apache Spark, and Google Cloud Dataflow [...] +"> + <link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400" rel="stylesheet"> + <link rel="stylesheet" href="/css/site.css"> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> + <script src="/js/bootstrap.min.js"></script> + <script src="/js/language-switch.js"></script> + <link rel="canonical" href="https://beam.apache.org/documentation/runners/mapreduce/" data-proofer-ignore> + <link rel="shortcut icon" type="image/x-icon" href="/images/favicon.ico"> + <link rel="alternate" type="application/rss+xml" title="Apache Beam" href="https://beam.apache.org/feed.xml"> + <script> + (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ + (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), + m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) + })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); + ga('create', 'UA-73650088-1', 'auto'); + ga('send', 'pageview'); + </script> +</head> + + <body class="body "> + <nav class="header navbar navbar-fixed-top"> + <div class="navbar-header"> + <a href="/" class="navbar-brand" > + <img alt="Brand" style="height: 25px" src="/images/beam_logo_navbar.png"> + </a> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + </div> + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Get Started <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/get-started/beam-overview/">Beam Overview</a></li> + <li><a href="/get-started/quickstart-java/">Quickstart - Java</a></li> + <li><a href="/get-started/quickstart-py/">Quickstart - Python</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Example Walkthroughs</li> + <li><a href="/get-started/wordcount-example/">WordCount</a></li> + <li><a href="/get-started/mobile-gaming-example/">Mobile Gaming</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Resources</li> + <li><a href="/get-started/downloads">Downloads</a></li> + <li><a href="/get-started/support">Support</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Documentation <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/documentation">Using the Documentation</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Beam Concepts</li> + <li><a href="/documentation/programming-guide/">Programming Guide</a></li> + <li><a href="/documentation/execution-model/">Execution Model</a></li> + <li><a href="/documentation/resources/">Additional Resources</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Pipeline Fundamentals</li> + <li><a href="/documentation/pipelines/design-your-pipeline/">Design Your Pipeline</a></li> + <li><a href="/documentation/pipelines/create-your-pipeline/">Create Your Pipeline</a></li> + <li><a href="/documentation/pipelines/test-your-pipeline/">Test Your Pipeline</a></li> + <li><a href="/documentation/io/io-toc/">Pipeline I/O</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">SDKs</li> + <li><a href="/documentation/sdks/java/">Java SDK</a></li> + <li><a href="/documentation/sdks/javadoc/2.1.0/" target="_blank">Java SDK API Reference <img src="/images/external-link-icon.png" + width="14" height="14" + alt="External link."></a> + </li> + <li><a href="/documentation/sdks/python/">Python SDK</a></li> + <li><a href="/documentation/sdks/pydoc/2.1.0/" target="_blank">Python SDK API Reference <img src="/images/external-link-icon.png" + width="14" height="14" + alt="External link."></a> + </li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Runners</li> + <li><a href="/documentation/runners/capability-matrix/">Capability Matrix</a></li> + <li><a href="/documentation/runners/direct/">Direct Runner</a></li> + <li><a href="/documentation/runners/apex/">Apache Apex Runner</a></li> + <li><a href="/documentation/runners/flink/">Apache Flink Runner</a></li> + <li><a href="/documentation/runners/gearpump/">Apache Gearpump Runner</a></li> + <li><a href="/documentation/runners/spark/">Apache Spark Runner</a></li> + <li><a href="/documentation/runners/dataflow/">Cloud Dataflow Runner</a></li> + + <li role="separator" class="divider"></li> + <li class="dropdown-header">DSLs</li> + <li><a href="/documentation/dsls/sql/">SQL</a></li> + </ul> + </li> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Contribute <span class="caret"></span></a> + <ul class="dropdown-menu"> + <li><a href="/contribute">Get Started Contributing</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Guides</li> + <li><a href="/contribute/contribution-guide/">Contribution Guide</a></li> + <li><a href="/contribute/testing/">Testing Guide</a></li> + <li><a href="/contribute/release-guide/">Release Guide</a></li> + <li><a href="/contribute/ptransform-style-guide/">PTransform Style Guide</a></li> + <li><a href="/contribute/runner-guide/">Runner Authoring Guide</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Technical References</li> + <li><a href="/contribute/design-principles/">Design Principles</a></li> + <li><a href="/contribute/work-in-progress/">Ongoing Projects</a></li> + <li><a href="/contribute/source-repository/">Source Repository</a></li> + <li><a href="/contribute/docker-images/">Docker Images</a></li> + <li role="separator" class="divider"></li> + <li class="dropdown-header">Promotion</li> + <li><a href="/contribute/presentation-materials/">Presentation Materials</a></li> + <li><a href="/contribute/logos/">Logos and Design</a></li> + <li role="separator" class="divider"></li> + <li><a href="/contribute/maturity-model/">Maturity Model</a></li> + <li><a href="/contribute/team/">Team</a></li> + </ul> + </li> + + <li><a href="/blog">Blog</a></li> + </ul> + <ul class="nav navbar-nav navbar-right"> + <li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"><img src="https://www.apache.org/foundation/press/kit/feather_small.png" alt="Apache Logo" style="height:20px;"><span class="caret"></span></a> + <ul class="dropdown-menu dropdown-menu-right"> + <li><a href="http://www.apache.org/">ASF Homepage</a></li> + <li><a href="http://www.apache.org/licenses/">License</a></li> + <li><a href="http://www.apache.org/security/">Security</a></li> + <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> + <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> + <li><a href="https://www.apache.org/foundation/policies/conduct">Code of Conduct</a></li> + </ul> + </li> + </ul> + </div><!--/.nav-collapse --> +</nav> + + <div class="body__contained"> + <h1 id="using-the-apache-hadoop-mapreduce-runner">Using the Apache Hadoop MapReduce Runner</h1> + +<p>The Apache Hadoop MapReduce Runner can be used to execute Beam pipelines using <a href="http://hadoop.apache.org/">Apache Hadoop</a>.</p> + +<p>The <a href="/documentation/runners/capability-matrix/">Beam Capability Matrix</a> documents the currently supported capabilities of the Apache Hadoop MapReduce Runner.</p> + +<h2 id="apache-hadoop-mapreduce-runner-prerequisites-and-setup">Apache Hadoop MapReduce Runner prerequisites and setup</h2> +<p>You need to have an Apache Hadoop environment with either <a href="https://hadoop.apache.org/docs/r1.2.1/single_node_setup.html">Single Node Setup</a> or <a href="https://hadoop.apache.org/docs/r1.2.1/cluster_setup.html">Cluster Setup</a></p> + +<p>The Apache Hadoop MapReduce runner currently supports Apache Hadoop version 2.8.1.</p> + +<p>You can add a dependency on the latest version of the Apache Hadoop MapReduce runner by adding the following to your pom.xml:</p> +<div class="highlighter-rouge"><pre class="highlight"><code><dependency> + <groupId>org.apache.beam</groupId> + <artifactId>beam-runners-mapreduce</artifactId> + <version>2.1.0</version> +</dependency> +</code></pre> +</div> + +<h2 id="deploying-apache-hadoop-mapreduce-with-your-application">Deploying Apache Hadoop MapReduce with your application</h2> +<p>To execute in a local Hadoop environment, use this command:</p> +<div class="highlighter-rouge"><pre class="highlight"><code>$ mvn exec:java -Dexec.mainClass=org.apache.beam.examples.WordCount \ + -Pmapreduce-runner \ + -Dexec.args="--runner=MapReduceRunner \ + --inputFile=/path/to/pom.xml \ + --output=/path/to/counts \ + --fileOutputDir=<directory for intermediate outputs>" +</code></pre> +</div> + +<p>To execute in a Hadoop cluster, package your program along with all dependencies in a fat jar.</p> + +<p>If you are following through the <a href="/get-started/quickstart-java/">Beam Java SDK Quickstart</a>, you can run this command:</p> +<div class="highlighter-rouge"><pre class="highlight"><code>$ mvn package -Pflink-runner +</code></pre> +</div> + +<p>For actually running the pipeline you would use this command</p> +<div class="highlighter-rouge"><pre class="highlight"><code>$ yarn jar word-count-beam-bundled-0.1.jar \ + org.apache.beam.examples.WordCount \ + --runner=MapReduceRunner \ + --inputFile=/path/to/pom.xml \ + --output=/path/to/counts \ + --fileOutputDir=<directory for intermediate outputs>" +</code></pre> +</div> + +<h2 id="pipeline-options-for-the-apache-hadoop-mapreduce-runner">Pipeline options for the Apache Hadoop MapReduce Runner</h2> + +<p>When executing your pipeline with the Apache Hadoop MapReduce Runner, you should consider the following pipeline options.</p> + +<table class="table table-bordered"> +<tr> + <th>Field</th> + <th>Description</th> + <th>Default Value</th> +</tr> +<tr> + <td><code>runner</code></td> + <td>The pipeline runner to use. This option allows you to determine the pipeline runner at runtime.</td> + <td>Set to <code>MapReduceRunner</code> to run using Apache Hadoop MapReduce.</td> +</tr> +<tr> + <td><code>jarClass</code></td> + <td>The jar class of the user Beam program.</td> + <td>JarClassInstanceFactory.class</td> +</tr> +<tr> + <td><code>fileOutputDir</code></td> + <td>The directory for output files.</td> + <td>"/tmp/mapreduce/"</td> +</tr> +</table> + + </div> + <footer class="footer"> + <div class="footer__contained"> + <div class="footer__cols"> + <div class="footer__cols__col"> + <div class="footer__cols__col__logo"> + <img src="/images/beam_logo_circle.svg" class="footer__logo" alt="Beam logo"> + </div> + <div class="footer__cols__col__logo"> + <img src="/images/apache_logo_circle.svg" class="footer__logo" alt="Apache logo"> + </div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Start</div> + <div class="footer__cols__col__link"><a href="/get-started/beam-overview/">Overview</a></div> + <div class="footer__cols__col__link"><a href="/get-started/quickstart-java/">Quickstart (Java)</a></div> + <div class="footer__cols__col__link"><a href="/get-started/quickstart-py/">Quickstart (Python)</a></div> + <div class="footer__cols__col__link"><a href="/get-started/downloads/">Downloads</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Docs</div> + <div class="footer__cols__col__link"><a href="/documentation/programming-guide/">Concepts</a></div> + <div class="footer__cols__col__link"><a href="/documentation/pipelines/design-your-pipeline/">Pipelines</a></div> + <div class="footer__cols__col__link"><a href="/documentation/runners/capability-matrix/">Runners</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Community</div> + <div class="footer__cols__col__link"><a href="/contribute/">Contribute</a></div> + <div class="footer__cols__col__link"><a href="/contribute/team/">Team</a></div> + <div class="footer__cols__col__link"><a href="/contribute/presentation-materials/">Media</a></div> + </div> + <div class="footer__cols__col footer__cols__col--md"> + <div class="footer__cols__col__title">Resources</div> + <div class="footer__cols__col__link"><a href="/blog/">Blog</a></div> + <div class="footer__cols__col__link"><a href="/get-started/support/">Support</a></div> + <div class="footer__cols__col__link"><a href="https://github.com/apache/beam">GitHub</a></div> + </div> + </div> + </div> + <div class="footer__bottom"> + © + <a href="http://www.apache.org">The Apache Software Foundation</a> + | <a href="/privacy_policy">Privacy Policy</a> + | <a href="/feed.xml">RSS Feed</a> + <br><br> + Apache Beam, Apache, Beam, the Beam logo, and the Apache feather logo are + either registered trademarks or trademarks of The Apache Software + Foundation. All other products or name brands are trademarks of their + respective holders, including The Apache Software Foundation. + </div> +</footer> + + </body> +</html> diff --git a/content/images/execution_model_bundling.svg b/content/images/execution_model_bundling.svg new file mode 100644 index 0000000..8fc4ef7 --- /dev/null +++ b/content/images/execution_model_bundling.svg @@ -0,0 +1,357 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + height="217.11" + width="421.51" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="execution_model_bundling.svg"> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1146" + id="namedview37" + showgrid="false" + inkscape:zoom="1.9795165" + inkscape:cx="16.948817" + inkscape:cy="88.348045" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="g5315" /> + <defs + id="defs28"> + <marker + inkscape:stockid="Arrow2Lstart" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Lstart" + style="overflow:visible"> + <path + id="path4078" + style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(1,0)" /> + </marker> + <marker + inkscape:stockid="Arrow1Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow1Lend" + style="overflow:visible;"> + <path + id="path4063" + d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;" + transform="scale(0.8) rotate(180) translate(12.5,0)" /> + </marker> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2Lend" + style="overflow:visible;"> + <path + id="path3923" + style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) rotate(180) translate(1,0)" /> + </marker> + <marker + id="Arrow2Lend-1" + refY="0" + refX="0" + orient="auto"> + <path + id="path3823-1" + stroke-linejoin="round" + d="M8.7186,4.0337-2.2073,0.016013,8.7186-4.0017c-1.7455,2.3721-1.7354,5.6175-6E-7,8.0354z" + fill-rule="evenodd" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + stroke-width="0.625" /> + </marker> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + id="g5315"> + <g + stroke-miterlimit="4" + transform="matrix(0.88811359,0,0,1,-3.8563836,-770.72906)" + id="g3135" + style="stroke-width:0.53056151;stroke-miterlimit:4;stroke-dasharray:none"> + <rect + x="49.662998" + y="876.54999" + width="147.47" + height="34.285999" + ry="11.782" + id="rect2987" + style="fill:#f4a460;stroke:#000000" /> + </g> + <path + d="m 103.79,140.11 0.18839,60.668" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend)" + id="path12814" + inkscape:connector-curvature="0" /> + <path + d="m 103.17,15.5 0.18366,89.157" + style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Lend);marker-mid:none" + id="path12814-7" + inkscape:connector-curvature="0" /> + <g + id="g4404"> + <text + id="text3163" + font-size="20px" + line-height="125%" + font-family="Sans" + xml:space="preserve" + style="letter-spacing:0px;word-spacing:0px;" + y="152.86745" + x="231.89923" + font-weight="normal" + font-style="normal" + fill="#000000"><tspan + id="tspan3165" + y="152.86745" + x="231.89923" + font-size="12px">Bundle A (five elements)</tspan></text> + <text + id="text3163-1" + font-size="20px" + line-height="125%" + font-family="Sans" + xml:space="preserve" + style="letter-spacing:0px;word-spacing:0px;" + y="173.16542" + x="231.81685" + font-weight="normal" + font-style="normal" + fill="#000000"><tspan + id="tspan3165-8" + y="173.16542" + x="231.81685" + font-size="12px">Bundle B (four elements)</tspan></text> + <rect + id="rect3025-9" + stroke-dasharray="none" + height="14.365" + width="21.511" + stroke="#000" + stroke-miterlimit="4" + y="141.93" + x="203.73" + stroke-width="0.5" + fill="#d8bfd8" /> + <rect + id="rect3025-9-3" + stroke-dasharray="none" + height="14.365" + width="21.511" + stroke="#000" + stroke-miterlimit="4" + y="162.32" + x="204.03" + stroke-width="0.5" + fill="#add8e6" /> + </g> + <g + id="g4412"> + <text + id="text3153" + font-size="20px" + line-height="125%" + font-family="Sans" + xml:space="preserve" + style="letter-spacing:0px;word-spacing:0px;" + y="32.067104" + x="180.63188" + font-weight="normal" + font-style="normal" + fill="#000000"><tspan + id="tspan3155" + y="32.067104" + x="180.63188" + font-size="16px">Input collection:</tspan></text> + <g + id="g18259" + transform="matrix(1.0730169,0,0,1,-9.331575,-27.774711)"> + <rect + id="rect3161" + height="51.429" + width="5" + y="66.479" + x="243.12" + fill="#1c2422" /> + <rect + id="rect3025-4" + stroke-dasharray="none" + height="36.368" + width="115.97" + stroke="#000" + stroke-miterlimit="4" + y="74.242" + x="127.82" + stroke-width="1.0104" + fill="#d8bfd8" /> + <rect + id="rect3025-0" + stroke-dasharray="none" + height="36.656" + width="23.053" + stroke="#000" + stroke-miterlimit="4" + y="74.098" + x="127.66" + stroke-width="0.80829" + fill="#d8bfd8" /> + <rect + id="rect3025-0-0" + stroke-dasharray="none" + height="36.656" + width="23.053" + stroke="#000" + stroke-miterlimit="4" + y="74.098" + x="174.03" + stroke-width="0.80829" + fill="#d8bfd8" /> + <rect + id="rect3025-0-4" + stroke-dasharray="none" + height="36.656" + width="23.053" + stroke="#000" + stroke-miterlimit="4" + y="74.098" + x="150.85" + stroke-width="0.80829" + fill="#d8bfd8" /> + <rect + id="rect3025-0-44" + stroke-dasharray="none" + height="36.656" + width="23.053" + stroke="#000" + stroke-miterlimit="4" + y="74.098" + x="220.41" + stroke-width="0.80829" + fill="#d8bfd8" /> + <rect + id="rect3025-0-47" + stroke-dasharray="none" + height="36.656" + width="23.053" + stroke="#000" + stroke-miterlimit="4" + y="74.098" + x="197.22" + stroke-width="0.80829" + fill="#d8bfd8" /> + <g + id="g18250" + transform="matrix(1.1135475,0,0,0.99880924,127.32861,191.51183)" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + stroke-width="0.7723012" + fill="#add8e6"> + <g + id="g18243" + transform="translate(-157.70925,-188.54625)"> + <g + id="g18240" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + stroke-width="0.7723012" + fill="#add8e6"> + <rect + id="rect3025-5-11" + stroke-dasharray="none" + height="36.539" + width="82.466" + stroke="#000" + stroke-miterlimit="4" + y="71.073" + x="266.04" + stroke-width="0.7723" + fill="#add8e6" /> + </g> + </g> + <rect + id="rect3025-0-47-6" + y="-117.55" + width="21.024" + x="108.43" + height="36.695" /> + <rect + id="rect3025-0-47-3" + y="-117.55" + width="21.024" + x="149.4" + height="36.695" /> + <rect + id="rect3025-0-47-1" + y="-117.55" + width="21.024" + x="128.7" + height="36.695" /> + <rect + id="rect3025-0-47-7" + y="-117.55" + width="21.024" + x="170.47" + height="36.695" /> + </g> + </g> + </g> + <text + line-height="125%" + x="76.725883" + y="127.85606" + font-style="normal" + font-size="42.44491959px" + xml:space="preserve" + font-weight="normal" + style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;font-family:Sans" + id="text9065" + sodipodi:linespacing="125%"><tspan + x="76.725883" + y="127.85606" + font-size="16.97796822px" + id="tspan9067" + style="font-size:16px">ParDo1</tspan></text> + </g> +</svg> diff --git a/content/images/execution_model_bundling_coupled_failure.svg b/content/images/execution_model_bundling_coupled_failure.svg new file mode 100644 index 0000000..33d6cb2 --- /dev/null +++ b/content/images/execution_model_bundling_coupled_failure.svg @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="256.37" width="679.06" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> + </cc:Work> + </rdf:RDF> + </metadata> + <g id="layer1" transform="translate(16.157673,-773.52648)"> + <g id="g3140-54" transform="matrix(1.4703519,0,0,1.2733995,38.653989,-84.095098)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.39496601" fill="#add8e6"> + <rect id="rect3025-7-1-9-8-74" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.39497" fill="#add8e6"/> + </g> + <g id="g3140-54-9" transform="matrix(1.7799058,0,0,1.2747744,115.81366,-85.229582)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.32553703" fill="#1e90ff"> + <rect id="rect3025-7-1-9-8-74-5" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.32554" fill="#1e90ff"/> + </g> + <g id="g3140-54-1" transform="matrix(1.6807803,0,0,1.2732496,36.109093,-142.39997)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.3731702" fill="#d8bfd8"> + <rect id="rect3025-7-1-9-8-74-7" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.37317" fill="#d8bfd8"/> + </g> + <g id="g3140-54-9-6" transform="matrix(1.1255822,0,0,1.2770216,141.67597,-145.5124)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.34072345" fill="#9370db"> + <rect id="rect3025-7-1-9-8-74-5-1" height="36.429" width="63.501" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="9.8924" stroke-width="0.34072" fill="#9370db"/> + </g> + <path id="path3207-9" stroke-linejoin="miter" d="m49.897,826.21,0,175.89h435.32" stroke="#000" stroke-linecap="butt" stroke-width="0.94508249px" fill="none"/> + <text id="text7100" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="812.71613" x="51.514202" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7104" y="812.71613" x="51.514202" font-size="16px" style="text-anchor:middle;text-align:center;">Worker</tspan></text> + <text id="text6762" font-size="16px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="994.6684" x="529.6355" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6764" y="994.6684" x="529.6355" style="text-anchor:middle;text-align:center;">Processing</tspan><tspan id="tspan6766" y="1014.6685" x="529.6355" style="text-anchor:middle;text-align:center;">Time</tspan></text> + <g id="g3140-54-1-5" transform="matrix(0.45891321,0,0,0.41422951,427.99183,478.05141)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="1.00000155" fill="#d8bfd8"> + <rect id="rect3025-7-1-9-8-74-7-6" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="1" fill="#d8bfd8"/> + </g> + <g id="g3140-54-4" transform="matrix(0.49362044,0,0,0.44268692,428.24508,431.02429)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.99901491" fill="#87cefa"> + <rect id="rect3025-7-1-9-8-74-8" height="34.087" width="51.484" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="808.1" x="11.799" stroke-width="0.99901" fill="#87cefa"/> + </g> + <text id="text6979" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="800.12573" x="467.31888" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6981" y="800.12573" x="467.31888" font-size="12px">Bundle A (ParDo1 input)</tspan></text> + <text id="text6979-3" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="848.48145" x="468.29507" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6981-9" y="848.48145" x="468.29507" font-size="12px">Bundle C (ParDo2 input)</tspan></text> + <text id="text6979-0" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="823.63007" x="468.2951" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6981-8" y="823.63007" x="468.2951" font-size="12px">Bundle B (ParDo1 input)</tspan></text> + <text id="text6979-0-8" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="872.59741" x="468.65836" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6981-8-5" y="872.59741" x="468.65836" font-size="12px">Bundle D (ParDo2 input)</tspan></text> + <text id="text6979-0-0" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="898.10181" x="468.69962" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6981-8-9" y="898.10181" x="468.69962" font-size="12px">Element processing failed</tspan></text> + <text id="text7061" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="914.45178" x="29.878115" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7063" y="914.45178" x="29.878115" font-size="14px">2</tspan></text> + <text id="text7061-6" font-size="40px" font-family="Sans" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" xml:space="preserve" y="973.8656" x="29.225224" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7063-3" y="973.8656" x="29.225224" font-size="14px">1</tspan></text> + <path id="path6657-3-5-62-2-2" stroke-linejoin="miter" d="m41.658,909.91h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-62-2-2-8" stroke-linejoin="miter" d="M41.005,967.98h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <g id="g3140-54-1-4" transform="matrix(1.0418535,0,0,1.2764221,224.78434,-145.282)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.3731702" fill="#d8bfd8"> + <rect id="rect3025-7-1-9-8-74-7-0" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.37317" fill="#d8bfd8"/> + </g> + <g id="g3140-54-9-6-5" transform="matrix(1.5768018,0,0,1.2749736,281.03685,-144.08674)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.34072345" fill="#9370db"> + <rect id="rect3025-7-1-9-8-74-5-1-94" height="36.429" width="63.501" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="9.8924" stroke-width="0.34072" fill="#9370db"/> + </g> + <g id="g3140-54-1-5-4" transform="matrix(0.45891321,0,0,0.41422951,428.31828,502.82028)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="1.00000155" fill="#1e90ff"> + <rect id="rect3025-7-1-9-8-74-7-6-8" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="1" fill="#1e90ff"/> + </g> + <g id="g3140-54-1-5-1" transform="matrix(0.45891321,0,0,0.41422951,428.31828,527.63044)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="1.00000155" fill="#9370db"> + <rect id="rect3025-7-1-9-8-74-7-6-2" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="1" fill="#9370db"/> + </g> + <text id="text18024-8" style="letter-spacing:0px;word-spacing:0px;" font-family="Sans" font-weight="normal" xml:space="preserve" stroke-dasharray="none" font-size="40px" stroke="#000000" stroke-miterlimit="4" font-style="normal" y="899.92407" x="441.27896" stroke-width="0.2" line-height="125%" fill="#000000"><tspan id="tspan18026-9" stroke-width="0.2" stroke-dasharray="none" font-size="16px" stroke="#000000" stroke-miterlimit="4" y="899.92407" x="441.27896" font-weight="bold" fill="#ff [...] + <text id="text18024-8-3" style="letter-spacing:0px;word-spacing:0px;" font-family="Sans" font-weight="normal" xml:space="preserve" stroke-dasharray="none" font-size="40px" stroke="#000000" stroke-miterlimit="4" font-style="normal" y="913.63501" x="181.38664" stroke-width="0.2" line-height="125%" fill="#000000"><tspan id="tspan18026-9-6" stroke-width="0.2" stroke-dasharray="none" font-size="16px" stroke="#000000" stroke-miterlimit="4" y="913.63501" x="181.38664" font-weight="bold" fill= [...] + </g> +</svg> diff --git a/content/images/execution_model_bundling_gantt.svg b/content/images/execution_model_bundling_gantt.svg new file mode 100644 index 0000000..d73fc19 --- /dev/null +++ b/content/images/execution_model_bundling_gantt.svg @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="221.19" width="584.79" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> + </cc:Work> + </rdf:RDF> + </metadata> + <path id="path3207" stroke-linejoin="miter" d="m65.679,40.835,0,153.56h360.38" stroke="#000" stroke-linecap="butt" stroke-width="0.80344409px" fill="none"/> + <text id="text3213" font-size="16px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-style="normal" y="174.03949" x="572.71991" font-weight="normal" fill="#000000"><tspan id="tspan3215" y="174.03949" x="530.67303" style="text-anchor:middle;text-align:center;"/></text> + <g id="g3006" transform="translate(15.777413,-820.77153)"> + <text id="text3163" font-size="20px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-style="normal" y="854.52179" x="422.17236" font-weight="normal" fill="#000000"><tspan id="tspan3165" y="854.52179" x="422.17236" font-size="12px">Bundle A element</tspan></text> + <text id="text3163-1" font-size="20px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-style="normal" y="882.88568" x="421.50021" font-weight="normal" fill="#000000"><tspan id="tspan3165-8" y="882.88568" x="421.50021" font-size="12px">Bundle B element</tspan></text> + <path id="path6657-3" stroke-linejoin="miter" d="M44.308,976.84h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5" stroke-linejoin="miter" d="M44.777,920.73h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <text id="text6695" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="981.909" x="29.374258" font-weight="normal" fill="#000000"><tspan id="tspan6697" y="981.909" x="29.374258" font-size="14px">1</tspan></text> + <text id="text6699" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="926.83972" x="30.668245" font-weight="normal" fill="#000000"><tspan id="tspan6701" y="926.83972" x="30.668245" font-size="14px">2</tspan></text> + <rect id="rect3025-7-1-9-2" height="20.191" width="33.113" stroke="#000" y="868.96" x="377.83" fill="#add8e6"/> + <g id="g18259" transform="matrix(1.0730169,0,0,1,-86.480557,643.26922)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4"> + <g id="g18357" fill="#d8bfd8" transform="matrix(2.5823283,0,0,1,-198.50272,244.2816)"> + <rect id="rect3025-4" height="36.41" width="104.74" y="73.34" x="131.48" stroke-width="0.41851"/> + <rect id="rect3025-0" height="36.695" width="21.024" y="73.198" x="131.34" stroke-width="0.42052"/> + <rect id="rect3025-0-0" height="36.695" width="21.024" y="73.198" x="173.63" stroke-width="0.42052"/> + <rect id="rect3025-0-4" height="36.695" width="21.024" y="73.198" x="152.48" stroke-width="0.42052"/> + <rect id="rect3025-0-44" height="36.695" width="21.024" y="73.198" x="215.66" stroke-width="0.42052"/> + <rect id="rect3025-0-47" height="36.695" width="21.024" y="73.198" x="194.77" stroke-width="0.42052"/> + </g> + <g id="g18365" stroke-width="0.41577438" fill="#add8e6" transform="matrix(2.6416425,0,0,1,-948.11581,183.56421)"> + <g id="g18250" transform="translate(309.37641,193.57296)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.41577438" fill="#add8e6"> + <g id="g18243" transform="translate(-157.70925,-188.54625)"> + <g id="g18240" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.41577438" fill="#add8e6"> + <rect id="rect3025-5-11" stroke-dasharray="none" height="36.539" width="82.466" stroke="#000" stroke-miterlimit="4" y="71.073" x="266.04" stroke-width="0.41577" fill="#add8e6"/> + </g> + </g> + <rect id="rect3025-0-47-6" y="-117.55" width="21.024" x="108.43" height="36.695"/> + <rect id="rect3025-0-47-3" y="-117.55" width="21.024" x="149.4" height="36.695"/> + <rect id="rect3025-0-47-1" y="-117.55" width="21.024" x="128.7" height="36.695"/> + <rect id="rect3025-0-47-7" y="-117.55" width="21.024" x="170.1" height="36.695"/> + </g> + </g> + </g> + <rect id="rect3025-7-1-9-2-5" height="20.191" width="33.113" stroke="#000" y="839.83" x="377.86" fill="#d8bfd8"/> + </g> + <text id="text6762" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="16px" font-style="normal" y="185.96609" x="477.86038" font-weight="normal" fill="#000000"><tspan id="tspan6764" y="185.96609" x="477.86038" style="text-anchor:middle;text-align:center;">Processing</tspan><tspan id="tspan6766" y="205.96609" x="477.86038" style="text-anchor:middle;text-align:center;">Time</tspan></text> + <text id="text7100" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="27.15625" x="67.671875" font-weight="normal" fill="#000000"><tspan id="tspan7104" y="27.15625" x="67.671875" style="text-anchor:middle;text-align:center;" font-size="16px">Worker</tspan></text> +</svg> diff --git a/content/images/execution_model_bundling_gantt_max.svg b/content/images/execution_model_bundling_gantt_max.svg new file mode 100644 index 0000000..06f65c5 --- /dev/null +++ b/content/images/execution_model_bundling_gantt_max.svg @@ -0,0 +1,67 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="276.81" width="557.19" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> + </cc:Work> + </rdf:RDF> + </metadata> + <g id="g10906"> + <g id="g3140" transform="matrix(1.7363636,0,0,0.31372546,50.783157,-199.0263)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.99991053" fill="#3cb371"> + <rect id="rect3025-7-1-9-8" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.99991" fill="#3cb371"/> + </g> + <g id="g3140-0" fill="#3cb371" transform="matrix(1.7181818,0,0,0.31372546,55.040303,-156.25844)" stroke="#000"> + <rect id="rect3025-7-1-9-8-6" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-1" fill="#3cb371" transform="matrix(1.6636364,0,0,0.31372546,51.811739,-70.722744)" stroke="#000"> + <rect id="rect3025-7-1-9-8-5" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-5" fill="#3cb371" transform="matrix(1.7818182,0,0,0.31372546,56.140294,-134.87452)" stroke="#000"> + <rect id="rect3025-7-1-9-8-4" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-7" fill="#3cb371" transform="matrix(1.6818182,0,0,0.31372546,73.554594,-49.338814)" stroke="#000"> + <rect id="rect3025-7-1-9-8-65" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-6" fill="#3cb371" transform="matrix(1.8181818,0,0,0.31372546,73.626003,-177.64237)" stroke="#000"> + <rect id="rect3025-7-1-9-8-9" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-3" fill="#3cb371" transform="matrix(1.6727273,0,0,0.31372546,51.683166,-113.49059)" stroke="#000"> + <rect id="rect3025-7-1-9-8-7" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-4" fill="#3cb371" transform="matrix(1.6545455,0,0,0.31372546,99.940308,-92.106664)" stroke="#000"> + <rect id="rect3025-7-1-9-8-52" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <g id="g3140-54" fill="#3cb371" transform="matrix(1.6636363,0,0,0.31372546,63.81174,-27.954894)" stroke="#000"> + <rect id="rect3025-7-1-9-8-74" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#3cb371"/> + </g> + <path id="path3207-9" stroke-linejoin="miter" d="m66.967,39.115,0,209.2h360.24" stroke="#000" stroke-linecap="butt" stroke-width="0.93760067px" fill="none"/> + <text id="text6762" font-size="16px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="241.58237" x="475.89737" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6764" y="241.58237" x="475.89737" style="text-anchor:middle;text-align:center;">Processing</tspan><tspan id="tspan6766" y="261.58237" x="475.89737" style="text-anchor:middle;text-align:center;">Time</tspan></text> + <g id="g3140-12" transform="matrix(0.43986114,0,0,0.31372546,321.10866,-217.39942)" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.99871421" fill="#3cb371"> + <rect id="rect3025-7-1-9-8-70" height="36.429" width="55" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.99871" fill="#3cb371"/> + </g> + <text id="text6979" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="46.411533" x="360.37134" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan6981" y="46.411533" x="360.37134" font-size="12px">Element in the collection</tspan></text> + <path id="path6657-3-5" stroke-linejoin="miter" d="M59.393,60.15h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-9" stroke-linejoin="miter" d="M59.893,82.615h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-3" stroke-linejoin="miter" d="M60.392,102.58h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-6" stroke-linejoin="miter" d="M60.891,123.55h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-0" stroke-linejoin="miter" d="M59.893,146.02h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-62" stroke-linejoin="miter" d="M60.392,167.98h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <text id="text7057" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="235.87523" x="47.467484" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7059" y="235.87523" x="47.467484" font-size="14px">1</tspan></text> + <text id="text7061" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="215.40685" x="47.46748" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7063" y="215.40685" x="47.46748" font-size="14px">2</tspan></text> + <text id="text7065" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="193.44386" x="46.965172" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7067" y="193.44386" x="46.965172" font-size="14px">3</tspan></text> + <text id="text7069" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="172.47627" x="46.965168" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7071" y="172.47627" x="46.965168" font-size="14px">4</tspan></text> + <text id="text7073" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="151.50867" x="46.968254" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7075" y="151.50867" x="46.968254" font-size="14px">5</tspan></text> + <text id="text7077" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="129.54257" x="46.965176" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7079" y="129.54257" x="46.965176" font-size="14px">6</tspan></text> + <text id="text7081" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="108.07574" x="47.963634" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7083" y="108.07574" x="47.963634" font-size="14px">7</tspan></text> + <text id="text7085" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="87.108109" x="47.963631" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7087" y="87.108109" x="47.963631" font-size="14px">8</tspan></text> + <text id="text7089" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="64.1436" x="47.464424" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7091" y="64.1436" x="47.464424" font-size="14px">9</tspan></text> + <text id="text7100" font-size="40px" font-family="Sans" xml:space="preserve" style="letter-spacing:0px;word-spacing:0px;" font-style="normal" y="27.15625" x="67.671875" font-weight="normal" line-height="125%" fill="#000000"><tspan id="tspan7104" y="27.15625" x="67.671875" font-size="16px" style="text-anchor:middle;text-align:center;">Worker</tspan></text> + <path id="path6657-3-5-62-2" stroke-linejoin="miter" d="M59.893,188.44h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-62-2-0" stroke-linejoin="miter" d="M59.893,210.42h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-62-2-2" stroke-linejoin="miter" d="M59.893,230.39h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + </g> +</svg> diff --git a/content/images/execution_model_bundling_multi.svg b/content/images/execution_model_bundling_multi.svg new file mode 100644 index 0000000..75a29d8 --- /dev/null +++ b/content/images/execution_model_bundling_multi.svg @@ -0,0 +1,336 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg2" + height="396.51" + width="405.69" + version="1.1" + inkscape:version="0.48.4 r9939" + sodipodi:docname="execution_model_bundling_multi.svg"> + <sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1920" + inkscape:window-height="1146" + id="namedview36" + showgrid="false" + inkscape:zoom="1.6834602" + inkscape:cx="102.45652" + inkscape:cy="198.255" + inkscape:window-x="0" + inkscape:window-y="0" + inkscape:window-maximized="1" + inkscape:current-layer="svg2" /> + <defs + id="defs7289"> + <marker + inkscape:stockid="Arrow2Lend" + orient="auto" + refY="0.0" + refX="0.0" + id="marker4605" + style="overflow:visible;"> + <path + id="path4370" + style="fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) rotate(180) translate(1,0)" /> + </marker> + <marker + id="Arrow2Lend" + refY="0" + refX="0" + orient="auto"> + <path + id="path3823" + stroke-linejoin="round" + d="M8.7186,4.0337-2.2073,0.016013,8.7186-4.0017c-1.7455,2.3721-1.7354,5.6175-6E-7,8.0354z" + fill-rule="evenodd" + transform="matrix(-1.1,0,0,-1.1,-1.1,0)" + stroke-width="0.625" /> + </marker> + </defs> + <metadata + id="metadata7"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <rect + id="rect3025-5" + height="36.429" + width="136.1" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + y="70.871" + x="229.33" + stroke-width="0.5" + fill="#d8bfd8" /> + <rect + id="rect3025-9" + height="36.429" + width="96.969" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + y="71.523" + x="128.32" + stroke-width="0.5" + fill="#add8e6" /> + <rect + id="rect3161-3" + height="51.429" + width="5" + y="64.023" + x="224.46" + fill="#1c2422" /> + <text + id="text3163-19" + style="letter-spacing:0px;word-spacing:0px;" + font-family="Sans" + xml:space="preserve" + font-size="20px" + line-height="125%" + font-style="normal" + y="94.810165" + x="146.11887" + font-weight="normal" + fill="#000000"><tspan + id="tspan3165-4" + y="94.810165" + x="146.11887" + font-size="14px">Bundle A</tspan></text> + <text + id="text3163-1-7" + style="letter-spacing:0px;word-spacing:0px;" + font-family="Sans" + xml:space="preserve" + font-size="20px" + line-height="125%" + font-style="normal" + y="94.810158" + x="261.11557" + font-weight="normal" + fill="#000000"><tspan + id="tspan3165-8-8" + y="94.810158" + x="261.11557" + font-size="14px">Bundle B</tspan></text> + <rect + id="rect3025-5-4" + stroke-dasharray="none" + transform="scale(-1,1)" + height="36.429" + width="136.1" + stroke="#000" + stroke-miterlimit="4" + y="221.22" + x="-264.42" + stroke-width="0.5" + fill="#1e90ff" /> + <rect + id="rect3025-9-5" + transform="scale(-1,1)" + height="36.429" + width="96.969" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + y="221.87" + x="-365.44" + stroke-width="0.5" + fill="#9370db" /> + <rect + id="rect3161-3-0" + transform="scale(-1,1)" + height="51.429" + width="5" + y="214.37" + x="-269.3" + fill="#1c2422" /> + <g + id="g3135-2" + transform="matrix(0.88811359,0,0,1,-3.8561905,-743.90322)" + stroke="#000" + stroke-miterlimit="4" + stroke-dasharray="none" + stroke-width="0.53056151" + fill="#f4a460"> + <rect + id="rect2987-2" + ry="11.782" + height="34.286" + width="147.47" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + y="876.55" + x="49.663" + stroke-width="0.53056" + fill="#f4a460" /> + </g> + <g + id="g3135-7" + transform="matrix(0.88811359,0,0,1,-3.0891015,-592.0192)"> + <rect + id="rect2987-36" + ry="11.782" + height="34.286" + width="147.47" + stroke="#000" + stroke-dasharray="none" + stroke-miterlimit="4" + y="876.55" + x="49.663" + stroke-width="0.53056" + fill="#f4a460" /> + <text + id="text9065" + style="letter-spacing:0px;word-spacing:0px;" + font-weight="normal" + xml:space="preserve" + transform="scale(1.061123,0.94239781)" + font-size="42.44491959px" + font-style="normal" + y="792.91864" + x="85.25296" + font-family="Sans" + line-height="125%" + fill="#000000"><tspan + id="tspan9067" + font-size="16.97796822px" + y="792.91864" + x="85.25296">ParDo1</tspan></text> + <text + id="text9069" + style="letter-spacing:0px;word-spacing:0px;" + font-weight="normal" + xml:space="preserve" + transform="scale(1.061123,0.94239781)" + font-size="42.44491959px" + font-style="normal" + y="953.38422" + x="85.319267" + font-family="Sans" + line-height="125%" + fill="#000000"><tspan + id="tspan9071" + font-size="16.97796822px" + y="953.38422" + x="85.319267">ParDo2</tspan></text> + <text + id="text3153" + font-size="21.22245979px" + font-family="Sans" + transform="scale(1.061123,0.94239781)" + style="letter-spacing:0px;word-spacing:0px;" + line-height="125%" + xml:space="preserve" + y="686.90991" + x="151.91734" + font-weight="normal" + font-style="normal" + fill="#000000"><tspan + id="tspan3155" + y="686.90991" + x="151.91734" + font-size="16.97796822px">Input collection to ParDo1:</tspan></text> + <text + id="text3153-3" + font-size="21.22245979px" + font-family="Sans" + transform="scale(1.061123,0.94239781)" + style="letter-spacing:0px;word-spacing:0px;" + line-height="125%" + xml:space="preserve" + y="848.19299" + x="150.28938" + font-weight="normal" + font-style="normal" + fill="#000000"><tspan + id="tspan3155-1" + y="848.19299" + x="150.28938" + font-size="16.97796822px">Input collection to ParDo2:</tspan></text> + </g> + <text + id="text3163-19-6" + style="letter-spacing:0px;word-spacing:0px;" + font-family="Sans" + xml:space="preserve" + font-size="20px" + line-height="125%" + font-style="normal" + y="243.86116" + x="168.85825" + font-weight="normal" + fill="#000000"><tspan + id="tspan3165-4-3" + y="243.86116" + x="168.85825" + font-size="14px">Bundle C</tspan></text> + <text + id="text3163-19-2" + style="letter-spacing:0px;word-spacing:0px;" + font-family="Sans" + xml:space="preserve" + font-size="20px" + line-height="125%" + font-style="normal" + y="244.16243" + x="286.22314" + font-weight="normal" + fill="#000000"><tspan + id="tspan3165-4-0" + y="244.16243" + x="286.22314" + font-size="14px">Bundle D</tspan></text> + <path + id="path8330" + stroke-linejoin="miter" + style="marker-end:url(#marker4605)" + d="m106.48,15.5,0,117.4" + stroke="#000" + stroke-linecap="butt" + stroke-width="1px" + fill="none" /> + <path + id="path8330-5" + stroke-linejoin="miter" + style="marker-end:url(#marker4605)" + d="m105.72,167.38,0,117.4" + stroke="#000" + stroke-linecap="butt" + stroke-width="1px" + fill="none" /> + <path + id="path8522" + stroke-linejoin="miter" + style="marker-end:url(#marker4605)" + d="m105.54,318.99-0.71152,61.191" + stroke="#000" + stroke-linecap="butt" + stroke-width="1px" + fill="none" /> +</svg> diff --git a/content/images/execution_model_bundling_multi_gantt.svg b/content/images/execution_model_bundling_multi_gantt.svg new file mode 100644 index 0000000..547a6d4 --- /dev/null +++ b/content/images/execution_model_bundling_multi_gantt.svg @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="222.47" width="640.8" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> + </cc:Work> + </rdf:RDF> + </metadata> + <path id="path3207" stroke-linejoin="miter" d="m65.786,41.192,0,154.12h436.54" stroke="#000" stroke-linecap="butt" stroke-width="0.88588864px" fill="none"/> + <g id="g3140-54" transform="matrix(2.7741088,0,0,1.2745098,41.451621,-950.10162)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.26591122" fill="#d8bfd8"> + <rect id="rect3025-7-1-9-8-74" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.26591" fill="#d8bfd8"/> + </g> + <g id="g3140-54-9" transform="matrix(1.8497901,0,0,1.2745098,207.10026,-950.10162)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.32563958" fill="#9370db"> + <rect id="rect3025-7-1-9-8-74-5" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.32564" fill="#9370db"/> + </g> + <g id="g3140-54-1" transform="matrix(1.8350217,0,0,1.2745098,54.454778,-891.85754)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.32694733" fill="#add8e6"> + <rect id="rect3025-7-1-9-8-74-7" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.32695" fill="#add8e6"/> + </g> + <g id="g3140-54-9-6" transform="matrix(2.8020374,0,0,1.2745098,141.5615,-891.85754)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="0.26458269" fill="#1e90ff"> + <rect id="rect3025-7-1-9-8-74-5-1" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="0.26458" fill="#1e90ff"/> + </g> + <text id="text7100" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="27.15625" x="67.671875" font-weight="normal" fill="#000000"><tspan id="tspan7104" y="27.15625" x="67.671875" style="text-anchor:middle;text-align:center;" font-size="16px">Worker</tspan></text> + <text id="text6762" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="16px" font-style="normal" y="187.24072" x="553.37195" font-weight="normal" fill="#000000"><tspan id="tspan6764" y="187.24072" x="553.37195" style="text-anchor:middle;text-align:center;">Processing</tspan><tspan id="tspan6766" y="207.24072" x="553.37195" style="text-anchor:middle;text-align:center;">Time</tspan></text> + <g id="g3140-54-1-7" transform="matrix(0.51284591,0,0,0.55742729,407.92987,-421.19411)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="1.03240836" fill="#add8e6"> + <rect id="rect3025-7-1-9-8-74-7-6" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="1.0324" fill="#add8e6"/> + </g> + <g id="g3140-54-9-6-5" fill="#1e90ff" stroke="#000" transform="matrix(0.51711225,0,0,0.59618851,408.10523,-396.76975)"> + <rect id="rect3025-7-1-9-8-74-5-1-6" height="36.429" width="55" stroke="#000" y="806.93" x="14.143" fill="#1e90ff"/> + </g> + <g id="g3140-54-9-5" transform="matrix(0.52769358,0,0,0.5768079,408.0176,-352.22682)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="1.00053561" fill="#9370db"> + <rect id="rect3025-7-1-9-8-74-5-2" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="1.0005" fill="#9370db"/> + </g> + <path id="path6657-3-5-62-2" stroke-linejoin="miter" d="M57.323,162.92h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-62-2-5" stroke-linejoin="miter" d="M58.735,102.91h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <text id="text7065" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="108.07944" x="43.947361" font-weight="normal" fill="#000000"><tspan id="tspan7067" y="108.07944" x="43.947361" font-size="14px">2</tspan></text> + <text id="text7065-4" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="167.8378" x="43.831757" font-weight="normal" fill="#000000"><tspan id="tspan7067-7" y="167.8378" x="43.831757" font-size="14px">1</tspan></text> + <text id="text9219" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="43.542969" x="455.73755" font-weight="normal" fill="#000000"><tspan id="tspan9221" y="43.542969" x="455.73755" font-size="12px">Bundle A (ParDo1 input)</tspan></text> + <text id="text9219-4" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="98.928284" x="455.15936" font-weight="normal" fill="#000000"><tspan id="tspan9221-4" y="98.928284" x="455.15936" font-size="12px">Bundle C (ParDo2 input)</tspan></text> + <text id="text9219-3" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="70.64399" x="455.15939" font-weight="normal" fill="#000000"><tspan id="tspan9221-0" y="70.64399" x="455.15939" font-size="12px">Bundle B (ParDo1 input)</tspan></text> + <text id="text9219-7" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="40px" font-style="normal" y="126.50546" x="455.86649" font-weight="normal" fill="#000000"><tspan id="tspan9221-8" y="126.50546" x="455.86649" font-size="12px">Bundle D (ParDo2 input)</tspan></text> + <g id="g3140-54-9-5-9" transform="matrix(0.52769358,0,0,0.5768079,407.23906,-409.04606)" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" stroke-width="1.00053561" fill="#d8bfd8"> + <rect id="rect3025-7-1-9-8-74-5-2-6" stroke-dasharray="none" height="36.429" width="55" stroke="#000" stroke-miterlimit="4" y="806.93" x="14.143" stroke-width="1.0005" fill="#d8bfd8"/> + </g> + <text id="text3163-19" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="20px" y="165.46114" x="98.791801" font-weight="normal" font-style="normal" fill="#000000"><tspan id="tspan3165-4" y="165.46114" x="98.791801" font-size="14px">Bundle A</tspan></text> + <text id="text3163-19-6" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="20px" y="164.04692" x="224.87898" font-weight="normal" font-style="normal" fill="#000000"><tspan id="tspan3165-4-3" y="164.04692" x="224.87898" font-size="14px">Bundle C</tspan></text> + <text id="text3163-1-7" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="20px" y="107.47837" x="126.0857" font-weight="normal" font-style="normal" fill="#000000"><tspan id="tspan3165-8-8" y="107.47837" x="126.0857" font-size="14px">Bundle B</tspan></text> + <text id="text3163-19-2" style="letter-spacing:0px;word-spacing:0px;" line-height="125%" font-family="Sans" xml:space="preserve" font-size="20px" y="106.77127" x="253.40208" font-weight="normal" font-style="normal" fill="#000000"><tspan id="tspan3165-4-0" y="106.77127" x="253.40208" font-size="14px">Bundle D</tspan></text> +</svg> diff --git a/content/images/execution_model_failure_retry.svg b/content/images/execution_model_failure_retry.svg new file mode 100644 index 0000000..1e8a68c --- /dev/null +++ b/content/images/execution_model_failure_retry.svg @@ -0,0 +1,56 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="248.27" width="601.9" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/"> + <metadata id="metadata7"> + <rdf:RDF> + <cc:Work rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> + <dc:title/> + </cc:Work> + </rdf:RDF> + </metadata> + <path id="path3207-9" stroke-linejoin="miter" d="m65.98,68.662,0,151.23h360.38" stroke="#000" stroke-linecap="butt" stroke-width="0.79734099px" fill="none"/> + <text id="text7100" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="56.552471" x="67.671875" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan7104" style="text-anchor:middle;text-align:center;" font-size="16px" y="56.552471" x="67.671875">Worker</tspan></text> + <text id="text6762" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="16px" font-style="normal" y="213.0417" x="478.54456" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan6764" style="text-anchor:middle;text-align:center;" y="213.0417" x="478.54456">Processing</tspan><tspan id="tspan6766" style="text-anchor:middle;text-align:center;" y="233.0417" x="478.54456">Time</tspan></text> + <text id="text9219" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="32.49892" x="378.46069" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan9221" font-size="12px" y="32.49892" x="378.46069">Bundle A</tspan></text> + <rect id="rect3025-7-19-4-92" height="22.065" width="27.454" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="41.803" x="340.93" stroke-width="0.5" fill="#add8e6"/> + <text id="text9219-0" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="56.003277" x="378.46069" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan9221-6" font-size="12px" y="56.003277" x="378.46069">Bundle B</tspan></text> + <text id="text7065" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="140.70111" x="44.729984" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan7067" font-size="14px" y="140.70111" x="44.729984">2</tspan></text> + <text id="text7065-4" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="193.45233" x="45.071857" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan7067-7" font-size="14px" y="193.45233" x="45.071857">1</tspan></text> + <path id="path6657-3-5-62-2-5" stroke-linejoin="miter" d="m59.774,134.81h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <path id="path6657-3-5-62-2-5-1" stroke-linejoin="miter" d="m60.427,187.7h11.088" stroke="#000" stroke-linecap="butt" stroke-width="1.09913433px" fill="none"/> + <text id="text9219-0-2" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="83.930176" x="378.79578" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan9221-6-7" font-size="12px" y="83.930176" x="378.79578">Element processing successful</tspan></text> + <text id="text9219-0-2-1" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="104.47797" x="378.26312" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan9221-6-7-0" font-size="12px" y="104.47797" x="378.26312">Element awaiting processing</tspan></text> + <text id="text9219-0-2-6" style="letter-spacing:0px;word-spacing:0px;" font-weight="normal" xml:space="preserve" font-size="40px" font-style="normal" y="124.71785" x="378.26312" font-family="Sans" line-height="125%" fill="#000000"><tspan id="tspan9221-6-7-1" font-size="12px" y="124.71785" x="378.26312">Element processing failed</tspan></text> + <path id="path3029-9-9-5" d="m359.12,79.622c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-06-64-9" d="m358.47,99.862c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#FF0"/> + <rect id="rect3025-7-19-4-92-2" height="22.065" width="27.454" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="15.25" x="340.8" stroke-width="0.5" fill="#d8bfd8"/> + <rect id="rect3025-0" height="36.608" width="27.716" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="82.188" stroke-width="0.88569" fill="#d8bfd8"/> + <rect id="rect3025-0-0" height="36.608" width="27.716" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="137.94" stroke-width="0.88569" fill="#d8bfd8"/> + <rect id="rect3025-0-4" height="36.608" width="27.716" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="110.06" stroke-width="0.88569" fill="#d8bfd8"/> + <rect id="rect3025-0-44" height="36.608" width="27.716" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="193.69" stroke-width="0.88569" fill="#d8bfd8"/> + <rect id="rect3025-0-47" height="36.608" width="27.716" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="165.82" stroke-width="0.88569" fill="#d8bfd8"/> + <rect id="rect3025-0-47-6" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="232.45" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-3" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="286.21" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-1" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="259.04" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-7" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="168.59" x="313.86" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-6-1" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="117.01" x="100.23" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-3-7" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="117.01" x="154" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-1-8" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="117.01" x="126.83" stroke-width="0.8837" fill="#add8e6"/> + <rect id="rect3025-0-47-7-5" height="36.612" width="27.589" stroke="#000" stroke-dasharray="none" stroke-miterlimit="4" y="117.01" x="181.65" stroke-width="0.8837" fill="#add8e6"/> + <path id="path3029-06-64-9-3" d="m198.85,135.97c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#FF0"/> + <path id="path3029-9-9-5-8" d="m117.89,135.97c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-6" d="m144.01,135.97c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-0" d="m99.609,187.55c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-4" d="m156.41,186.9c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-88" d="m127.68,186.9c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-89" d="m183.83,187.55c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-7" d="m211.91,187.55c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-76" d="m249.12,187.55c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-43" d="m276.54,187.55c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-03" d="m305.27,186.9c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <path id="path3029-9-9-5-09" d="m332.04,186.9c0,2.3669-1.9188,4.2857-4.2857,4.2857s-4.2857-1.9188-4.2857-4.2857c0.001-2.367,1.919-4.286,4.286-4.286,2.3669,0,4.2857,1.9188,4.2857,4.2857z" stroke="#000" stroke-miterlimit="4" stroke-dasharray="none" stroke-width="0.5" fill="#32cd32"/> + <text id="text18024-8" style="letter-spacing:0px;word-spacing:0px;" font-family="Sans" font-weight="normal" xml:space="preserve" stroke-dasharray="none" transform="scale(0.97018693,1.0307292)" stroke="#000000" stroke-miterlimit="4" font-size="36.6902771px" font-style="normal" y="121.74629" x="359.76794" stroke-width="0.18345138" line-height="125%" fill="#000000"><tspan id="tspan18026-9" stroke-width="0.18345138" stroke-dasharray="none" font-size="14.67611027px" stroke="#000000" stroke-m [...] + <text id="text18024-8-8" style="letter-spacing:0px;word-spacing:0px;" font-family="Sans" font-weight="normal" xml:space="preserve" stroke-dasharray="none" transform="scale(0.97018693,1.0307292)" stroke="#000000" stroke-miterlimit="4" font-size="36.6902771px" font-style="normal" y="137.26543" x="166.62782" stroke-width="0.18345138" line-height="125%" fill="#000000"><tspan id="tspan18026-9-0" stroke-width="0.18345138" stroke-dasharray="none" font-size="14.67611027px" stroke="#000000" stro [...] +</svg> diff --git a/content/images/logos/runners/jstorm.png b/content/images/logos/runners/jstorm.png new file mode 100644 index 0000000..c0435db Binary files /dev/null and b/content/images/logos/runners/jstorm.png differ diff --git a/src/documentation/runners/mapreduce.md b/src/documentation/runners/mapreduce.md index f863ca5..fb32848 100644 --- a/src/documentation/runners/mapreduce.md +++ b/src/documentation/runners/mapreduce.md @@ -1,6 +1,7 @@ --- layout: default title: "Apache Hadoop MapReduce Runner" +permalink: /documentation/runners/mapreduce/ --- # Using the Apache Hadoop MapReduce Runner -- To stop receiving notification emails like this one, please contact "commits@beam.apache.org" <commits@beam.apache.org>.