Key | Default | Type | Description
--- | --- | --- | ---
##### pipeline.auto-generate-uids | true | Boolean | When auto-generated UIDs are disabled, users are forced to manually specify UIDs on DataStream applications. It is highly recommended that users specify UIDs before deploying to production since they are used to match state in savepoints to operators in a job. Because auto-generated ID's are likely to change when modifying a job, specifying custom IDs allow an application to evolve over time without discarding state.
##### pipeline.auto-watermark-interval | 200 ms | Duration | The interval of the automatic watermark emission. Watermarks are used throughout the streaming system to keep track of the progress of time. They are used, for example, for time based windowing.
##### pipeline.cached-files | (none) | List<String> | Files to be registered at the distributed cache under the given name. The files will be accessible from any user-defined function in the (distributed) runtime under a local path. Files may be local files (which will be distributed via BlobServer), or files in a distributed file system. The runtime will copy the files temporarily to a local cache, if needed. Example: `name:file1,path:'file:///tmp/file1';name:file2,path:'hdfs:///tmp/file2'`
##### pipeline.classpaths | (none) | List<String> | A semicolon-separated list of the classpaths to package with the job jars to be sent to the cluster. These have to be valid URLs.
##### pipeline.closure-cleaner-level | RECURSIVE | Enum | Configures the mode in which the closure cleaner works. Possible values: "NONE": Disables the closure cleaner completely. "TOP_LEVEL": Cleans only the top-level class without recursing into fields. "RECURSIVE": Cleans all fields recursively.
##### pipeline.force-avro | false | Boolean | Forces Flink to use the Apache Avro serializer for POJOs. Important: Make sure to include the `flink-avro` module.
##### pipeline.force-kryo | false | Boolean | If enabled, forces TypeExtractor to use Kryo serializer for POJOS even though we could analyze as POJO. In some cases this might be preferable. For example, when using interfaces with subclasses that cannot be analyzed as POJO.
##### pipeline.force-kryo-avro | (none) | Boolean | Forces Flink to register avro classes in kryo serializer. Important: Make sure to include the flink-avro module. Otherwise, nothing will be registered. For backward compatibility, the default value is empty to conform to the behavior of the older version. That is, always register avro with kryo, and if flink-avro is not in the class path, register a dummy serializer. In Flink-2.0, we will set the default value to true.
##### pipeline.generic-types | true | Boolean | If the use of generic types is disabled, Flink will throw an `UnsupportedOperationException` whenever it encounters a data type that would go through Kryo for serialization. Disabling generic types can be helpful to eagerly find and eliminate the use of types that would go through Kryo serialization during runtime. Rather than checking types individually, using this option will throw exceptions eagerly in the places where generic types are used. We recommend to use this option only during development and pre-production phases, not during actual production use. The application program and/or the input data may be such that new, previously unseen, types occur at some point. In that case, setting this option would cause the program to fail.
##### pipeline.global-job-parameters | (none) | Map | Register a custom, serializable user configuration object. The configuration can be accessed in operators
##### pipeline.jars | (none) | List<String> | A semicolon-separated list of the jars to package with the job jars to be sent to the cluster. These have to be valid paths.
##### pipeline.jobvertex-parallelism-overrides |  | Map | A parallelism override map (jobVertexId -> parallelism) which will be used to update the parallelism of the corresponding job vertices of submitted JobGraphs.
##### pipeline.max-parallelism | -1 | Integer | The program-wide maximum parallelism used for operators which haven't specified a maximum parallelism. The maximum parallelism specifies the upper limit for dynamic scaling and the number of key groups used for partitioned state. Changing the value explicitly when recovery from original job will lead to state incompatibility. Must be less than or equal to 32768.
##### pipeline.name | (none) | String | The job name used for printing and logging.
##### pipeline.object-reuse | false | Boolean | When enabled objects that Flink internally uses for deserialization and passing data to user-code functions will be reused. Keep in mind that this can lead to bugs when the user-code function of an operation is not aware of this behaviour.
##### pipeline.operator-chaining.chain-operators-with-different-max-parallelism | true | Boolean | Operators with different max parallelism can be chained together. Default behavior may prevent rescaling when the AdaptiveScheduler is used.
##### pipeline.operator-chaining.enabled | true | Boolean | Operator chaining allows non-shuffle operations to be co-located in the same thread fully avoiding serialization and de-serialization.
##### pipeline.serialization-config | (none) | List<String> | List of pairs of class names and serializer configs to be used. There is a `type` field in the serializer config and each type has its own configuration. Note: only standard YAML config parser is supported, please use "config.yaml" as the config file. The fields involved are: `type`: the serializer type which could be "pojo", "kryo" or "typeinfo". If the serializer type is "pojo" or "kryo" without field `kryo-type`, it means the data type will use POJO or Kryo serializer directly. `kryo-type`: the Kryo serializer type which could be "default" or "registered". The Kryo serializer will use the serializer for the data type as default serializers when the kryo-type is "default", and register the data type and its serializer to Kryo serializer when the kryo-type is registered. When the field exists, there must be a field `class` to specify the serializer class name. `class`: the serializer class name for type "kryo" or "typeinfo". For "kryo", it should be a subclass of `com.esotericsoftware.kryo.Serializer`. For "typeinfo", it should be a subclass of `org.apache.flink.api.common.typeinfo.TypeInfoFactory`. Example: `[org.example.ExampleClass1: {type: pojo}, org.example.ExampleClass2: {type: kryo}, org.example.ExampleClass3: {type: kryo, kryo-type: default, class: org.example.Class3KryoSerializer}, org.example.ExampleClass4: {type: kryo, kryo-type: registered, class: org.example.Class4KryoSerializer}, org.example.ExampleClass5: {type: typeinfo, class: org.example.Class5TypeInfoFactory}]`
##### pipeline.vertex-description-mode | TREE | Enum | The mode how we organize description of a job vertex. Possible values: "TREE" "CASCADING"
##### pipeline.vertex-name-include-index-prefix | false | Boolean | Whether name of vertex includes topological index or not. When it is true, the name will have a prefix of index of the vertex, like '[vertex-0]Source: source'. It is false by default
##### pipeline.watermark-alignment.allow-unaligned-source-splits | false | Boolean | If watermark alignment is used, sources with multiple splits will attempt to pause/resume split readers to avoid watermark drift of source splits. However, if split readers don't support pause/resume, an UnsupportedOperationException will be thrown when there is an attempt to pause/resume. To allow use of split readers that don't support pause/resume and, hence, to allow unaligned splits while still using watermark alignment, set this parameter to true. The default value is false. Note: This parameter may be removed in future releases.
##### pipeline.watermark-alignment.buffer-size | 3 | Integer | Controls size of the ring buffer used to smooth out watermark alignment due to the inherent latency of the alignment process. Allowed watermarks are announced at the updateInterval and this means they are often out of date after the round trip, which means that watermark alignment might be pausing splits too much using this outdated information. To address this problem, when pausing consumption of records, max allowed watermark is not checked against the latest value of the watermark in any given split/source, but against the oldest value in the ring buffer, that is updated at every updateInterval. This is the config option that controls the size of the ring buffer. The default buffer size is 3. Buffer size of 1 can result in under utilised job's resources when processing backlog of records. Size of the buffer de facto delays the application of the watermark alignment process by that many updateIntervals. With the default size 3, splits can produce arbitrary amount of records for the duration of 3 * updateInterval before watermark alignment might pause them. You can set the watermarkBufferSize to 0 to restore pre Flink 2.3 behaviour with sampling disabled and always using the latest watermark. The default value of 3 has been chosen to cover the round trip delay of watermark alignment that is equal to 2 updateIntervals plus one more to cover for network/GC or other hiccups.