Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id E96EB200C00 for ; Wed, 18 Jan 2017 15:13:55 +0100 (CET) Received: by cust-asf.ponee.io (Postfix) id E804E160B5A; Wed, 18 Jan 2017 14:13:55 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id C0246160B34 for ; Wed, 18 Jan 2017 15:13:53 +0100 (CET) Received: (qmail 26144 invoked by uid 500); 18 Jan 2017 14:13:10 -0000 Mailing-List: contact commits-help@flink.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@flink.apache.org Delivered-To: mailing list commits@flink.apache.org Received: (qmail 17784 invoked by uid 99); 18 Jan 2017 14:10:17 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jan 2017 14:10:17 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 4CCADF404D; Wed, 18 Jan 2017 14:10:10 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: rmetzger@apache.org To: commits@flink.apache.org Date: Wed, 18 Jan 2017 14:11:07 -0000 Message-Id: <5a7a43af461944cb93a219a052271eac@git.apache.org> In-Reply-To: <2b88eaee448d4281a86b52245f82d05e@git.apache.org> References: <2b88eaee448d4281a86b52245f82d05e@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [60/78] [abbrv] flink-web git commit: Rebuild site archived-at: Wed, 18 Jan 2017 14:13:56 -0000 http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/logo/svg/white_filled.svg ---------------------------------------------------------------------- diff --git a/content/img/logo/svg/white_filled.svg b/content/img/logo/svg/white_filled.svg new file mode 100755 index 0000000..28bd9f9 --- /dev/null +++ b/content/img/logo/svg/white_filled.svg @@ -0,0 +1,231 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Filled white + http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/managed-state.png ---------------------------------------------------------------------- diff --git a/content/img/managed-state.png b/content/img/managed-state.png new file mode 100755 index 0000000..3dbb2fd Binary files /dev/null and b/content/img/managed-state.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/memory_heap_division.png ---------------------------------------------------------------------- diff --git a/content/img/memory_heap_division.png b/content/img/memory_heap_division.png new file mode 100644 index 0000000..2b4c2e2 Binary files /dev/null and b/content/img/memory_heap_division.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/navbar-brand-logo.jpg ---------------------------------------------------------------------- diff --git a/content/img/navbar-brand-logo.jpg b/content/img/navbar-brand-logo.jpg new file mode 100755 index 0000000..5993ee8 Binary files /dev/null and b/content/img/navbar-brand-logo.jpg differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/navbar-brand-logo.png ---------------------------------------------------------------------- diff --git a/content/img/navbar-brand-logo.png b/content/img/navbar-brand-logo.png new file mode 100644 index 0000000..152f74e Binary files /dev/null and b/content/img/navbar-brand-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/one_runtime.png ---------------------------------------------------------------------- diff --git a/content/img/one_runtime.png b/content/img/one_runtime.png new file mode 100644 index 0000000..9cb4363 Binary files /dev/null and b/content/img/one_runtime.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/optimizer_choice.png ---------------------------------------------------------------------- diff --git a/content/img/optimizer_choice.png b/content/img/optimizer_choice.png new file mode 100644 index 0000000..1f8004b Binary files /dev/null and b/content/img/optimizer_choice.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/otto-group-logo.jpg ---------------------------------------------------------------------- diff --git a/content/img/otto-group-logo.jpg b/content/img/otto-group-logo.jpg new file mode 100644 index 0000000..f578af6 Binary files /dev/null and b/content/img/otto-group-logo.jpg differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/out_of_order_stream.png ---------------------------------------------------------------------- diff --git a/content/img/out_of_order_stream.png b/content/img/out_of_order_stream.png new file mode 100644 index 0000000..20ad09d Binary files /dev/null and b/content/img/out_of_order_stream.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/parallel_dataflows.png ---------------------------------------------------------------------- diff --git a/content/img/parallel_dataflows.png b/content/img/parallel_dataflows.png new file mode 100644 index 0000000..dbd83b2 Binary files /dev/null and b/content/img/parallel_dataflows.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/alibaba-logo.png ---------------------------------------------------------------------- diff --git a/content/img/poweredby/alibaba-logo.png b/content/img/poweredby/alibaba-logo.png new file mode 100644 index 0000000..fe8ac1a Binary files /dev/null and b/content/img/poweredby/alibaba-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/bouygues-logo.jpg ---------------------------------------------------------------------- diff --git a/content/img/poweredby/bouygues-logo.jpg b/content/img/poweredby/bouygues-logo.jpg new file mode 100755 index 0000000..b48d628 Binary files /dev/null and b/content/img/poweredby/bouygues-logo.jpg differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/capital-one-logo.png ---------------------------------------------------------------------- diff --git a/content/img/poweredby/capital-one-logo.png b/content/img/poweredby/capital-one-logo.png new file mode 100644 index 0000000..752feea Binary files /dev/null and b/content/img/poweredby/capital-one-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/ericsson-logo.png ---------------------------------------------------------------------- diff --git a/content/img/poweredby/ericsson-logo.png b/content/img/poweredby/ericsson-logo.png new file mode 100644 index 0000000..b4e9c2e Binary files /dev/null and b/content/img/poweredby/ericsson-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/king-logo.png ---------------------------------------------------------------------- diff --git a/content/img/poweredby/king-logo.png b/content/img/poweredby/king-logo.png new file mode 100644 index 0000000..f155ed3 Binary files /dev/null and b/content/img/poweredby/king-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/otto-group-logo.png ---------------------------------------------------------------------- diff --git a/content/img/poweredby/otto-group-logo.png b/content/img/poweredby/otto-group-logo.png new file mode 100644 index 0000000..8da680d Binary files /dev/null and b/content/img/poweredby/otto-group-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/researchgate-logo.png ---------------------------------------------------------------------- diff --git a/content/img/poweredby/researchgate-logo.png b/content/img/poweredby/researchgate-logo.png new file mode 100644 index 0000000..5e6847a Binary files /dev/null and b/content/img/poweredby/researchgate-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/poweredby/zalando-logo.jpg ---------------------------------------------------------------------- diff --git a/content/img/poweredby/zalando-logo.jpg b/content/img/poweredby/zalando-logo.jpg new file mode 100644 index 0000000..12c1bcc Binary files /dev/null and b/content/img/poweredby/zalando-logo.jpg differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/researchgate-logo.png ---------------------------------------------------------------------- diff --git a/content/img/researchgate-logo.png b/content/img/researchgate-logo.png new file mode 100644 index 0000000..12834e5 Binary files /dev/null and b/content/img/researchgate-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/runtime.png ---------------------------------------------------------------------- diff --git a/content/img/runtime.png b/content/img/runtime.png new file mode 100755 index 0000000..8fd211f Binary files /dev/null and b/content/img/runtime.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/savepoints.png ---------------------------------------------------------------------- diff --git a/content/img/savepoints.png b/content/img/savepoints.png new file mode 100644 index 0000000..9952450 Binary files /dev/null and b/content/img/savepoints.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/source-transform-sink-update.png ---------------------------------------------------------------------- diff --git a/content/img/source-transform-sink-update.png b/content/img/source-transform-sink-update.png new file mode 100644 index 0000000..3693fb4 Binary files /dev/null and b/content/img/source-transform-sink-update.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/stack.png ---------------------------------------------------------------------- diff --git a/content/img/stack.png b/content/img/stack.png new file mode 100644 index 0000000..2c34722 Binary files /dev/null and b/content/img/stack.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/streaming_performance.png ---------------------------------------------------------------------- diff --git a/content/img/streaming_performance.png b/content/img/streaming_performance.png new file mode 100644 index 0000000..cf712df Binary files /dev/null and b/content/img/streaming_performance.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/windows.png ---------------------------------------------------------------------- diff --git a/content/img/windows.png b/content/img/windows.png new file mode 100644 index 0000000..9fb23b0 Binary files /dev/null and b/content/img/windows.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/img/zalando-logo.png ---------------------------------------------------------------------- diff --git a/content/img/zalando-logo.png b/content/img/zalando-logo.png new file mode 100644 index 0000000..6cbe9d8 Binary files /dev/null and b/content/img/zalando-logo.png differ http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/improve-website.html ---------------------------------------------------------------------- diff --git a/content/improve-website.html b/content/improve-website.html new file mode 100644 index 0000000..9091200 --- /dev/null +++ b/content/improve-website.html @@ -0,0 +1,291 @@ + + + + + + + + Apache Flink: Improving the Website + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+

Improving the Website

+ +

The Apache Flink website presents Apache Flink and its community. It serves several purposes including:

+ +
    +
  • Informing visitors about Apache Flink and its features.
  • +
  • Encouraging visitors to download and use Flink.
  • +
  • Encouraging visitors to engage with the community.
  • +
+ +

We welcome any contribution to improve our website. This document contains all information that is necessary to improve Flink’s website.

+ + + +

Obtain the website sources

+ +

The website of Apache Flink is hosted in a dedicated git repository which is mirrored to Github at https://github.com/apache/flink-web.

+ +

The easiest way to contribute website updates is to fork the mirrored website repository on Github into your own Github account by clicking on the fork button at the top right. If you have no Github account, you can create one for free.

+ +

Next, clone your fork to your local machine.

+ +
git clone https://github.com/<your-user-name>/flink-web.git
+
+ +

The flink-web directory contains the cloned repository. The website resides in the asf-site branch of the repository. Run the following commands to enter the directory and switch to the asf-site branch.

+ +
cd flink-web
+git checkout asf-site
+
+ +

Directory structure and files

+ +

Flink’s website is written in Markdown. Markdown is a lightweight markup language which can be translated to HTML. We use Jekyll to generate static HTML files from Markdown.

+ +

The files and directories in the website git repository have the following roles:

+ +
    +
  • All files ending with .md are Markdown files. These files are translated into static HTML files.
  • +
  • Regular directories (not starting with an underscore (_)) contain also .md files. The directory structure is reflected in the generated HTML files and the published website.
  • +
  • The _posts directory contains blog posts. Each blog post is written as one Markdown file. To contribute a post, add a new file there.
  • +
  • The _includes/ directory contains includeable files such as the navigation bar or the footer.
  • +
  • The docs/ directory contains copies of the documentation of Flink for different releases. There is a directory inside docs/ for each stable release and the latest SNAPSHOT version. The build script is taking care of the maintenance of this directory.
  • +
  • The content/ directory contains the generated HTML files from Jekyll. It is important to place the files in this directory since the Apache Infrastructure to host the Flink website is pulling the HTML content from his directory. (For committers: When pushing changes to the website git, push also the updates in the content/ directory!)
  • +
+ +

Update or extend the documentation

+ +

You can update and extend the website by modifying or adding Markdown files or any other resources such as CSS files. To verify your changes start the build script in preview mode.

+ +
./build.sh -p
+
+ +

The script compiles the Markdown files into HTML and starts a local webserver. Open your browser at http://localhost:4000 to view the website including your changes. The served website is automatically re-compiled and updated when you modify and save any file and refresh your browser.

+ +

Please feel free to ask any questions you have on the developer mailing list.

+ +

Submit your contribution

+ +

The Flink project accepts website contributions through the GitHub Mirror as Pull Requests. Pull requests are a simple way of offering a patch by providing a pointer to a code branch that contains the changes.

+ +

To prepare and submit a pull request follow these steps.

+ +
    +
  1. +

    Commit your changes to your local git repository. Please Make sure that your commit does not include translated files (any files in the content/ directory). Unless your contribution is a major rework of the website, please squash it into a single commit.

    +
  2. +
  3. +

    Push the commit to a dedicated branch of your fork of the Flink repository at Github.

    + +

    + git push origin myBranch +

    +
  4. +
  5. +

    Go the website of your repository fork (https://github.com/<your-user-name>/flink-web) and use the “Create Pull Request” button to start creating a pull request. Make sure that the base fork is apache/flink-web asf-site and the head fork selects the branch with your changes. Give the pull request a meaningful description and submit it.

    +
  6. +
+ +

Committer section

+ +

This section is only relevant for committers.

+ +

ASF website git repositories

+ +

ASF writable: https://git-wip-us.apache.org/repos/asf/flink-web.git

+ +

ASF read-only: git://git.apache.org/repos/asf/flink-web.git

+ +

Details on how to set the credentials for the ASF git repository are linked here.

+ +

Merging a pull request

+ +

Contributions are expected to be done on the source files only (no modifications on the compiled files in the content/ directory.). Before pushing a website change, please run the build script

+ +
./build.sh
+
+ +

add the changes to the content/ directory as an additional commit and push the changes to the ASF base repository.

+ +

Updating the documentation directory

+ +

The build script does also take care of maintaining the docs/ directory. Set the -u flag to update documentation. This includes fetching the Flink git repository and copying different versions of the documentation.

+ + +
+
+ +
+
+ +
+ +
+ +
+
+ + + + + + + + + + + http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/index.html ---------------------------------------------------------------------- diff --git a/content/index.html b/content/index.html new file mode 100644 index 0000000..ee32676 --- /dev/null +++ b/content/index.html @@ -0,0 +1,348 @@ + + + + + + + + Apache Flink: Scalable Stream and Batch Data Processing + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+ +
+

Apache Flink® is an open-source stream processing framework for distributed, high-performing, always-available, and accurate data streaming applications.

+ Introduction to Flink +
+ +
+
+
+ +
+ +
+ +
+ + + +
+ +
+
+
+ +
+ +

Latest Blog Posts

+ +
+ +
+ +
+ +
Apache Flink 1.1.4 Released
+

The Apache Flink community released the next bugfix version of the Apache Flink 1.1 series.

+ +
+ +
Apache Flink in 2016: Year in Review
+

As 2016 comes to a close, let's take a moment to look back on the Flink community's great work during the past year.

+ +
Apache Flink 1.1.3 Released
+

The Apache Flink community released the next bugfix version of the Apache Flink 1.1. series.

+ +
+ +
Apache Flink 1.1.2 Released
+

The Apache Flink community released another bugfix version of the Apache Flink 1.1. series.

+ +
+ +
Flink Forward 2016: Announcing Schedule, Keynotes, and Panel Discussion
+

An update for the Flink community: the Flink Forward 2016 schedule is now available online. This year's event will include 2 days of talks from stream processing experts at Google, MapR, Alibaba, Netflix, Cloudera, and more. Following the talks is a full day of hands-on Flink training.

+ +
+ +
+ +
+ + + +
+
+ + +
+

Powered by Flink

+ + + +
+
    +
  • +
    Alibaba
    + + +
  • +
  • +
    Bouygues
    + +
  • +
  • +
    Capital One
    + +
  • +
  • +
    Ericsson
    + +
  • +
  • +
    King
    + +
  • +
  • +
    Otto Group
    + +
  • +
  • +
    ResearchGate
    + +
  • +
  • +
    Zalando
    + +
  • +
+
+ + + + +
+ +
+ + + + +
+ +
+
+ +
+ +
+ +
+
+ + + + + + + + + + + http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/introduction.html ---------------------------------------------------------------------- diff --git a/content/introduction.html b/content/introduction.html new file mode 100644 index 0000000..f5dc3f6 --- /dev/null +++ b/content/introduction.html @@ -0,0 +1,343 @@ + + + + + + + + Apache Flink: Introduction to Apache Flink® + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + +
+
+
+

Introduction to Apache Flink®

+ +


+Below is a high-level overview of Apache Flink and stream processing. For a more technical introduction, we recommend the “Concepts” page in the Flink documentation. +

+ + +

Continuous Processing for Unbounded Datasets

+

Before we go into detail about Flink, let’s review at a higher level the types of datasets you’re likely to encounter when processing data as well as types of execution models you can choose for processing. These two ideas are often conflated, and it’s useful to clearly separate them.

+ +

First, 2 types of datasets

+ +
    +
  • Unbounded: Infinite datasets that are appended to continuously
  • +
  • Bounded: Finite, unchanging datasets
  • +
+ +

Many real-word data sets that are traditionally thought of as bounded or “batch” data are in reality unbounded datasets. This is true whether the data is stored in a sequence of directories on HDFS or in a log-based system like Apache Kafka.

+ +

Examples of unbounded datasets include but are not limited to:

+ +
    +
  • End users interacting with mobile or web applications
  • +
  • Physical sensors providing measurements
  • +
  • Financial markets
  • +
  • Machine log data
  • +
+ +

Second, 2 types of execution models

+ +
    +
  • Streaming: Processing that executes continuously as long as data is being produced
  • +
  • Batch: Processing that is executed and runs to completeness in a finite amount of time, releasing computing resources when finished
  • +
+ +

It’s possible, though not necessarily optimal, to process either type of dataset with either type of execution model. For instance, batch execution has long been applied to unbounded datasets despite potential problems with windowing, state management, and out-of-order data.

+ +

Flink relies on a streaming execution model, which is an intuitive fit for processing unbounded datasets: streaming execution is continuous processing on data that is continuously produced. And alignment between the type of dataset and the type of execution model offers many advantages with regard to accuracy and performance.

+ + + +

Flink is an open-source framework for distributed stream processing that:

+ +
    +
  • Provides results that are accurate, even in the case of out-of-order or late-arriving data
  • +
  • Is stateful and fault-tolerant and can seamlessly recover from failures while maintaining exactly-once application state
  • +
  • Performs at large scale, running on thousands of nodes with very good throughput and latency characteristics
  • +
+ +

Earlier, we discussed aligning the type of dataset (bounded vs. unbounded) with the type of execution model (batch vs. streaming). Many of the Flink features listed below–state management, handling of out-of-order data, flexible windowing–are essential for computing accurate results on unbounded datasets and are enabled by Flink’s streaming execution model.

+ +
    +
  • Flink guarantees exactly-once semantics for stateful computations. ‘Stateful’ means that applications can maintain an aggregation or summary of data that has been processed over time, and Flink’s checkpointing mechanism ensures exactly-once semantics for an application’s state in the event of a failure.
  • +
+ +

Exactly Once State

+ +
    +
  • Flink supports stream processing and windowing with event time semantics. Event time makes it easy to compute accurate results over streams where events arrive out of order and where events may arrive delayed.
  • +
+ +

Out Of Order Stream

+ +
    +
  • Flink supports flexible windowing based on time, count, or sessions in addition to data-driven windows. Windows can be customized with flexible triggering conditions to support sophisticated streaming patterns. Flink’s windowing makes it possible to model the reality of the environment in which data is created.
  • +
+ +

Windows

+ +
    +
  • Flink’s fault tolerance is lightweight and allows the system to maintain high throughput rates and provide exactly-once consistency guarantees at the same time. Flink recovers from failures with zero data loss while the tradeoff between reliability and latency is negligible.
  • +
+ +

Snapshots

+ +
    +
  • Flink is capable of high throughput and low latency (processing lots of data quickly). The charts below show the performance of Apache Flink and Apache Storm completing a distributed item counting task that requires streaming data shuffles.
  • +
+ +

Performance

+ +
    +
  • Flink’s savepoints provide a state versioning mechanism, making it possible to update applications or reprocess historic data with no lost state and minimal downtime.
  • +
+ +

Savepoints

+ +
    +
  • Flink is designed to run on large-scale clusters with many thousands of nodes, and in addition to a standalone cluster mode, Flink provides support for YARN and Mesos.
  • +
+ +

Parallel

+ + + +

If you’ve reviewed Flink’s documentation, you might have noticed both a DataStream API for working with unbounded data as well as a DataSet API for working with bounded data.

+ +

Earlier in this write-up, we introduced the streaming execution model (“processing that executes continuously, an event-at-a-time”) as an intuitive fit for unbounded datasets. So how do bounded datasets relate to the stream processing paradigm?

+ +

In Flink’s case, the relationship is quite natural. A bounded dataset can simply be treated as a special case of an unbounded one, so it’s possible to apply all of the same streaming concepts that we’ve laid out above to finite data.

+ +

This is exactly how Flink’s DataSet API behaves. A bounded dataset is handled inside of Flink as a “finite stream”, with only a few minor differences in how Flink manages bounded vs. unbounded datasets.

+ +

And so it’s possible to use Flink to process both bounded and unbounded data, with both APIs running on the same distributed streaming execution engine–a simple yet powerful architecture.

+ + + +

Source

+ +

Deployment modes

+

Flink can run in the cloud or on premise and on a standalone cluster or on a cluster managed by YARN or Mesos.

+ +

Runtime

+

Flink’s core is a distributed streaming dataflow engine, meaning that data is processed an event-at-a-time rather than as a series of batches–an important distinction, as this is what enables many of Flink’s resilience and performance features that are detailed above.

+ +

APIs

+ +
    +
  • Flink’s DataStream API is for programs that implement transformations on data streams (e.g., filtering, updating state, defining windows, aggregating).
  • +
  • The DataSet API is for programs that implement transformations on data sets (e.g., filtering, mapping, joining, grouping).
  • +
  • The Table API is a SQL-like expression language for relational stream and batch processing that can be easily embedded in Flink’s DataSet and DataStream APIs (Java and Scala).
  • +
  • Streaming SQL enables SQL queries to be executed on streaming and batch tables. The syntax is based on Apache Calcite™.
  • +
+ +

Libraries

+

Flink also includes special-purpose libraries for complex event processing, machine learning, graph processing, and Apache Storm compatibility.

+ + + +

At the most basic level, a Flink program is made up of:

+ +
    +
  • Data source: Incoming data that Flink processes
  • +
  • Transformations: The processing step, when Flink modifies incoming data
  • +
  • Data sink: Where Flink sends data after processing
  • +
+ +

Source

+ +

A well-developed ecosystem is necessary for the efficient movement of data in and out of a Flink program, and Flink supports a wide range of connectors to third-party systems for data sources and sinks.

+ +

If you’re interested in learning more, we’ve collected information about the Flink ecosystem here.

+ +

Key Takeaways and Next Steps

+ +

In summary, Apache Flink is an open-source stream processing framework that eliminates the “performance vs. reliability” tradeoff often associated with open-source streaming engines and performs consistently in both categories. Following this introduction, we recommend you try our quickstart, download the most recent stable version of Flink, or review the documentation.

+ +

And we encourage you to join the Flink user mailing list and to share your questions with the community. We’re here to help you get the most out of Flink.

+ + +
+
+ +
+
+ +
+ +
+ +
+
+ + + + + + + + + + + http://git-wip-us.apache.org/repos/asf/flink-web/blob/9ec0a879/content/js/codetabs.js ---------------------------------------------------------------------- diff --git a/content/js/codetabs.js b/content/js/codetabs.js new file mode 100755 index 0000000..878aa32 --- /dev/null +++ b/content/js/codetabs.js @@ -0,0 +1,121 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* Note: This file is originally from the Apache Spark project. */ + +/* Custom JavaScript code in the MarkDown docs */ + +// Enable language-specific code tabs +function codeTabs() { + var counter = 0; + var langImages = { + "scala": "img/scala-sm.png", + "python": "img/python-sm.png", + "java": "img/java-sm.png" + }; + $("div.codetabs").each(function() { + $(this).addClass("tab-content"); + + // Insert the tab bar + var tabBar = $(''); + $(this).before(tabBar); + + // Add each code sample to the tab bar: + var codeSamples = $(this).children("div"); + codeSamples.each(function() { + $(this).addClass("tab-pane"); + var lang = $(this).data("lang"); + var image = $(this).data("image"); + var notabs = $(this).data("notabs"); + var capitalizedLang = lang.substr(0, 1).toUpperCase() + lang.substr(1); + var id = "tab_" + lang + "_" + counter; + $(this).attr("id", id); + if (image != null && langImages[lang]) { + var buttonLabel = "" + capitalizedLang + ""; + } else if (notabs == null) { + var buttonLabel = "" + capitalizedLang + ""; + } else { + var buttonLabel = "" + } + tabBar.append( + '
  • ' + buttonLabel + '
  • ' + ); + }); + + codeSamples.first().addClass("active"); + tabBar.children("li").first().addClass("active"); + counter++; + }); + $("ul.nav-tabs a").click(function (e) { + // Toggling a tab should switch all tabs corresponding to the same language + // while retaining the scroll position + e.preventDefault(); + var scrollOffset = $(this).offset().top - $(document).scrollTop(); + $("." + $(this).attr('class')).tab('show'); + $(document).scrollTop($(this).offset().top - scrollOffset); + }); +} + +function makeCollapsable(elt, accordionClass, accordionBodyId, title) { + $(elt).addClass("accordion-inner"); + $(elt).wrap('
    ') + $(elt).wrap('
    ') + $(elt).wrap('
    ') + $(elt).parent().before( + '
    ' + + '' + + title + + '' + + '
    ' + ); +} + +// Enable "view solution" sections (for exercises) +function viewSolution() { + var counter = 0 + $("div.solution").each(function() { + var id = "solution_" + counter + makeCollapsable(this, "", id, + '' + + '' + "View Solution"); + counter++; + }); +} + +// A script to fix internal hash links because we have an overlapping top bar. +// Based on https://github.com/twitter/bootstrap/issues/193#issuecomment-2281510 +function maybeScrollToHash() { + console.log("HERE"); + if (window.location.hash && $(window.location.hash).length) { + console.log("HERE2", $(window.location.hash), $(window.location.hash).offset().top); + var newTop = $(window.location.hash).offset().top - 57; + $(window).scrollTop(newTop); + } +} + +$(function() { + codeTabs(); + viewSolution(); + + $(window).bind('hashchange', function() { + maybeScrollToHash(); + }); + + // Scroll now too in case we had opened the page on a hash, but wait a bit because some browsers + // will try to do *their* initial scroll after running the onReady handler. + $(window).load(function() { setTimeout(function() { maybeScrollToHash(); }, 25); }); +});