Project: Flink (App Definition and Development / Streaming & Messaging)
File: glossary.md

title: "Glossary" type: docs weight: 5 bookToc: false <!-- 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. --> The location where the will store its snapshot during a checkpoint (Java Heap of or Filesystem). A Flink Application Cluster is a dedicated that only executes from one [Flink Application](#flink-application). The lifetime of the [Flink Cluster](#flink-cluster) is bound to the lifetime of the Flink Application. A Flink Job Cluster is a dedicated that only executes a single . The lifetime of the is bound to the lifetime of the Flink Job. This deployment mode has been deprecated since Flink 1.15. A distributed system consisting of (typically) one and one or more processes. An event is a statement about a change of the state of the domain modelled by the application. Events can be input and/or output of a stream or batch processing application. Events are special types of . see Functions are implemented by the user and encapsulate the application logic of a Flink program. Most Functions are wrapped by a corresponding . The term instance is used to describe a specific instance of a specific type (usually or ) during runtime. As Apache Flink is mostly written in Java, this corresponds to the definition of Instance or Object in Java. In the context of Apache Flink, the term parallel instance is also frequently used to emphasize that multiple instances of the same or type are running in parallel. A Flink application is a Java Application that submits one or multiple [Flink Jobs](#flink-job) from the `main()` method (or by some other means). Submitting jobs is usually done by calling `execute()` on an execution environment. The jobs of an application can either be submitted to a long running [Flink Session Cluster](#flink-session-cluster), to a dedicated [Flink Application Cluster](#flink-application-cluster), or to a [Flink Job Cluster](#flink-job-cluster). A Flink Job is the runtime representation of a (also often called dataflow graph) that is created and submitted by calling `execute()` in a . see The JobManager is the orchestrator of a . It contains three distinct components: Flink Resource Manager, Flink Dispatcher and one per running . JobMasters are one of the components running in the . A JobMaster is responsible for supervising the execution of the of a single job. The JobResultStore is a Flink component that persists the results of globally terminated (i.e. finished, cancelled or failed) jobs to a filesystem, allowing the results to outlive a finished job. These results are then used by Flink to determine whether jobs should be subject to recovery in highly-available

A logical graph is a directed graph where the nodes are and the edges define input/output-relationships of the operators and correspond to data streams or data sets. A logical graph is created by submitting jobs from a . Logical graphs are also often referred to as dataflow graphs. Managed State describes application state which has been registered with the framework. For Managed State, Apache Flink will take care about persistence and rescaling among other things. Node of a . An Operator performs a certain operation, which is usually executed by a . Sources and Sinks are special Operators for data ingestion and data egress. An Operator Chain consists of two or more consecutive without any repartitioning in between. Operators within the same Operator Chain forward records to each other directly without going through serialization or Flink's network stack. A partition is an independent subset of the overall data stream or data set. A data stream or data set is divided into partitions by assigning each to one or more partitions. Partitions of data streams or data sets are consumed by during runtime. A transformation which changes the way a data stream or data set is partitioned is often called repartitioning. A physical graph is the result of translating a for execution in a distributed runtime. The nodes are and the edges indicate input/output-relationships or of data streams or data sets. Records are the constituent elements of a data set or data stream. and receive records as input and emit records as output. DataStream API programs can be executed in one of two execution modes: `BATCH` or `STREAMING`. See for more details. A long-running which accepts multiple for execution. The lifetime of this Flink Cluster is not bound to the lifetime of any Flink Job. Formerly, a Flink Session Cluster was also known as a Flink Cluster in session mode. Compare to . For stream processing programs, the State Backend of a determines how its is stored on each TaskManager (Java Heap of TaskManager or (embedded) RocksDB). A Sub-Task is a responsible for processing a of the data stream. The term "Sub-Task" emphasizes that there are multiple parallel Tasks for the same or . A generic term for pipelines declared with Flink's relational APIs (Table API or SQL). Node of a . A task is the basic unit of work, which is executed by Flink's runtime. Tasks encapsulate exactly one parallel instance of an or . TaskManagers are the worker processes of a . are scheduled to TaskManagers for execution. They communicate with each other to exchange data between subsequent Tasks. A Transformation is applied on one or more data streams or data sets and results in one or more output data streams or data sets. A transformation might change a data stream or data set on a per-record basis, but might also only change its partitioning or perform an aggregation. While and are the "physical" parts of Flink's API, Transformations are only an API concept. Specifically, most transformations are implemented by certain . A unique identifier of an , either provided by the user or determined from the structure of the job. When the is submitted this is converted to a . A unique identifier of an at runtime, otherwise known as "Operator ID" or "Vertex ID" and generated from a . It is commonly exposed in logs, the REST API or metrics, and most importantly is how operators are identified within .