Class StreamConfig
- java.lang.Object
-
- org.apache.flink.streaming.api.graph.StreamConfig
-
- All Implemented Interfaces:
Serializable
@Internal public class StreamConfig extends Object implements Serializable
Internal configuration for aStreamOperator
. This is created and populated by theStreamingJobGraphGenerator
.- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
StreamConfig.InputConfig
Interface representing chained inputs.static class
StreamConfig.InputRequirement
Requirements of the different inputs of an operator.static class
StreamConfig.NetworkInputConfig
A representation of a NetworkStreamConfig.InputConfig
.static class
StreamConfig.SourceInputConfig
A serialized representation of an input.
-
Field Summary
Fields Modifier and Type Field Description static String
SERIALIZED_UDF
static String
SERIALIZED_UDF_CLASS
Introduce serializedUdfClassName to avoid unnecessarily heavygetStreamOperatorFactory(java.lang.ClassLoader)
.
-
Constructor Summary
Constructors Constructor Description StreamConfig(org.apache.flink.configuration.Configuration config)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
clearInitialConfigs()
In general, we don't clear any configuration.Duration
getAlignedCheckpointTimeout()
org.apache.flink.api.common.attribute.Attribute
getAttribute(ClassLoader cl)
List<StreamEdge>
getChainedOutputs(ClassLoader cl)
int
getChainIndex()
org.apache.flink.core.execution.CheckpointingMode
getCheckpointMode()
CheckpointStorage
getCheckpointStorage(ClassLoader cl)
org.apache.flink.configuration.Configuration
getConfiguration()
List<StreamEdge>
getInPhysicalEdges(ClassLoader cl)
StreamConfig.InputConfig[]
getInputs(ClassLoader cl)
String
getIterationId()
long
getIterationWaitTime()
double
getManagedMemoryFractionOperatorUseCaseOfSlot(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, org.apache.flink.configuration.Configuration jobConfig, org.apache.flink.configuration.Configuration taskManagerConfig, ClassLoader cl)
Fraction of total managed memory in the slot that this operator should use for the given use case.int
getMaxConcurrentCheckpoints()
int
getMaxSubtasksPerChannelStateFile()
int
getNumberOfNetworkInputs()
int
getNumberOfOutputs()
OperatorID
getOperatorID()
String
getOperatorName()
List<NonChainedOutput>
getOperatorNonChainedOutputs(ClassLoader cl)
CompletableFuture<StreamConfig>
getSerializationFuture()
StateBackend
getStateBackend(ClassLoader cl)
<K> org.apache.flink.api.common.typeutils.TypeSerializer<K>
getStateKeySerializer(ClassLoader cl)
<IN,K extends Serializable>
org.apache.flink.api.java.functions.KeySelector<IN,K>getStatePartitioner(int input, ClassLoader cl)
<T extends StreamOperator<?>>
TgetStreamOperator(ClassLoader cl)
<T extends StreamOperatorFactory<?>>
TgetStreamOperatorFactory(ClassLoader cl)
<T extends StreamOperatorFactory<?>>
Class<T>getStreamOperatorFactoryClass(ClassLoader cl)
InternalTimeServiceManager.Provider
getTimerServiceProvider(ClassLoader cl)
Map<Integer,StreamConfig>
getTransitiveChainedTaskConfigs(ClassLoader cl)
Map<Integer,StreamConfig>
getTransitiveChainedTaskConfigsWithSelf(ClassLoader cl)
<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>
getTypeSerializerIn(int index, ClassLoader cl)
<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>
getTypeSerializerIn1(ClassLoader cl)
Deprecated.<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>
getTypeSerializerIn2(ClassLoader cl)
Deprecated.<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>
getTypeSerializerOut(ClassLoader cl)
<T> org.apache.flink.api.common.typeutils.TypeSerializer<T>
getTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, ClassLoader cl)
Integer
getVertexID()
List<NonChainedOutput>
getVertexNonChainedOutputs(ClassLoader cl)
Set<AbstractInternalWatermarkDeclaration<?>>
getWatermarkDeclarations(ClassLoader cl)
boolean
isChainEnd()
boolean
isChainStart()
org.apache.flink.util.TernaryBoolean
isChangelogStateBackendEnabled(ClassLoader cl)
boolean
isCheckpointingEnabled()
boolean
isExactlyOnceCheckpointMode()
boolean
isGraphContainingLoops()
boolean
isUnalignedCheckpointsEnabled()
boolean
isUnalignedCheckpointsSplittableTimersEnabled()
static boolean
requiresSorting(StreamConfig.InputConfig inputConfig)
void
serializeAllConfigs()
Serialize all object configs synchronously.void
setAlignedCheckpointTimeout(Duration alignedCheckpointTimeout)
void
setAndSerializeTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)
void
setAttribute(org.apache.flink.api.common.attribute.Attribute attribute)
void
setChainedOutputs(List<StreamEdge> chainedOutputs)
void
setChainEnd()
void
setChainIndex(int index)
void
setChainStart()
void
setChangelogStateBackendEnabled(org.apache.flink.util.TernaryBoolean enabled)
void
setCheckpointingEnabled(boolean enabled)
void
setCheckpointMode(org.apache.flink.core.execution.CheckpointingMode mode)
void
setCheckpointStorage(CheckpointStorage storage)
void
setGraphContainingLoops(boolean graphContainingLoops)
void
setInPhysicalEdges(List<StreamEdge> inEdges)
void
setInputs(StreamConfig.InputConfig... inputs)
void
setIterationId(String iterationId)
void
setIterationWaitTime(long time)
void
setManagedMemoryFractionOperatorOfUseCase(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, double fraction)
Fraction of managed memory reserved for the given use case that this operator should use.void
setMaxConcurrentCheckpoints(int maxConcurrentCheckpoints)
void
setMaxSubtasksPerChannelStateFile(int maxSubtasksPerChannelStateFile)
void
setNumberOfNetworkInputs(int numberOfInputs)
void
setNumberOfOutputs(int numberOfOutputs)
void
setOperatorID(OperatorID operatorID)
void
setOperatorName(String name)
void
setOperatorNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)
Sets the operator level non-chained outputs.void
setSerializedCheckpointStorage(org.apache.flink.util.SerializedValue<CheckpointStorage> serializedCheckpointStorage)
void
setSerializedStateBackend(org.apache.flink.util.SerializedValue<StateBackend> serializedStateBackend, boolean useManagedMemory)
void
setStateBackend(StateBackend backend)
void
setStateBackendUsesManagedMemory(boolean usesManagedMemory)
void
setStateKeySerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
void
setStatePartitioner(int input, org.apache.flink.api.java.functions.KeySelector<?,?> partitioner)
void
setStreamOperator(StreamOperator<?> operator)
void
setStreamOperatorFactory(StreamOperatorFactory<?> factory)
void
setTimerServiceProvider(InternalTimeServiceManager.Provider timerServiceProvider)
void
setTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)
void
setTypeSerializerOut(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
void
setTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
void
setUnalignedCheckpointsEnabled(boolean enabled)
void
setUnalignedCheckpointsSplittableTimersEnabled(boolean enabled)
void
setupNetworkInputs(org.apache.flink.api.common.typeutils.TypeSerializer<?>... serializers)
void
setVertexID(Integer vertexID)
void
setVertexNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)
Sets the job vertex level non-chained outputs.void
setWatermarkDeclarations(byte[] serializedWatermarkDeclarations)
String
toString()
CompletableFuture<StreamConfig>
triggerSerializationAndReturnFuture(Executor ioExecutor)
Trigger the object config serialization and return the completable future.
-
-
-
Field Detail
-
SERIALIZED_UDF
public static final String SERIALIZED_UDF
- See Also:
- Constant Field Values
-
SERIALIZED_UDF_CLASS
public static final String SERIALIZED_UDF_CLASS
Introduce serializedUdfClassName to avoid unnecessarily heavygetStreamOperatorFactory(java.lang.ClassLoader)
.- See Also:
- Constant Field Values
-
-
Method Detail
-
getConfiguration
public org.apache.flink.configuration.Configuration getConfiguration()
-
getSerializationFuture
public CompletableFuture<StreamConfig> getSerializationFuture()
-
triggerSerializationAndReturnFuture
public CompletableFuture<StreamConfig> triggerSerializationAndReturnFuture(Executor ioExecutor)
Trigger the object config serialization and return the completable future.
-
serializeAllConfigs
public void serializeAllConfigs()
Serialize all object configs synchronously. Only used for operators which need to reconstruct the StreamConfig internally or test.
-
setAndSerializeTransitiveChainedTaskConfigs
@VisibleForTesting public void setAndSerializeTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)
-
setVertexID
public void setVertexID(Integer vertexID)
-
getVertexID
public Integer getVertexID()
-
setManagedMemoryFractionOperatorOfUseCase
public void setManagedMemoryFractionOperatorOfUseCase(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, double fraction)
Fraction of managed memory reserved for the given use case that this operator should use.
-
getManagedMemoryFractionOperatorUseCaseOfSlot
public double getManagedMemoryFractionOperatorUseCaseOfSlot(org.apache.flink.core.memory.ManagedMemoryUseCase managedMemoryUseCase, org.apache.flink.configuration.Configuration jobConfig, org.apache.flink.configuration.Configuration taskManagerConfig, ClassLoader cl)
Fraction of total managed memory in the slot that this operator should use for the given use case.
-
setTypeSerializerOut
public void setTypeSerializerOut(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
-
getTypeSerializerOut
public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerOut(ClassLoader cl)
-
setTypeSerializerSideOut
public void setTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
-
getTypeSerializerSideOut
public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerSideOut(org.apache.flink.util.OutputTag<?> outputTag, ClassLoader cl)
-
setWatermarkDeclarations
public void setWatermarkDeclarations(byte[] serializedWatermarkDeclarations)
-
getWatermarkDeclarations
public Set<AbstractInternalWatermarkDeclaration<?>> getWatermarkDeclarations(ClassLoader cl)
-
setupNetworkInputs
public void setupNetworkInputs(org.apache.flink.api.common.typeutils.TypeSerializer<?>... serializers)
-
setInputs
public void setInputs(StreamConfig.InputConfig... inputs)
-
getInputs
public StreamConfig.InputConfig[] getInputs(ClassLoader cl)
-
getTypeSerializerIn1
@Deprecated public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerIn1(ClassLoader cl)
Deprecated.
-
getTypeSerializerIn2
@Deprecated public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerIn2(ClassLoader cl)
Deprecated.
-
getTypeSerializerIn
public <T> org.apache.flink.api.common.typeutils.TypeSerializer<T> getTypeSerializerIn(int index, ClassLoader cl)
-
setStreamOperator
@VisibleForTesting public void setStreamOperator(StreamOperator<?> operator)
-
setStreamOperatorFactory
public void setStreamOperatorFactory(StreamOperatorFactory<?> factory)
-
getStreamOperator
@VisibleForTesting public <T extends StreamOperator<?>> T getStreamOperator(ClassLoader cl)
-
getStreamOperatorFactory
public <T extends StreamOperatorFactory<?>> T getStreamOperatorFactory(ClassLoader cl)
-
getStreamOperatorFactoryClass
public <T extends StreamOperatorFactory<?>> Class<T> getStreamOperatorFactoryClass(ClassLoader cl)
-
setIterationId
public void setIterationId(String iterationId)
-
getIterationId
public String getIterationId()
-
setIterationWaitTime
public void setIterationWaitTime(long time)
-
getIterationWaitTime
public long getIterationWaitTime()
-
setNumberOfNetworkInputs
public void setNumberOfNetworkInputs(int numberOfInputs)
-
getNumberOfNetworkInputs
public int getNumberOfNetworkInputs()
-
setNumberOfOutputs
public void setNumberOfOutputs(int numberOfOutputs)
-
getNumberOfOutputs
public int getNumberOfOutputs()
-
setOperatorNonChainedOutputs
public void setOperatorNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)
Sets the operator level non-chained outputs.
-
getOperatorNonChainedOutputs
public List<NonChainedOutput> getOperatorNonChainedOutputs(ClassLoader cl)
-
setChainedOutputs
public void setChainedOutputs(List<StreamEdge> chainedOutputs)
-
getChainedOutputs
public List<StreamEdge> getChainedOutputs(ClassLoader cl)
-
setInPhysicalEdges
public void setInPhysicalEdges(List<StreamEdge> inEdges)
-
getInPhysicalEdges
public List<StreamEdge> getInPhysicalEdges(ClassLoader cl)
-
setCheckpointingEnabled
public void setCheckpointingEnabled(boolean enabled)
-
isCheckpointingEnabled
public boolean isCheckpointingEnabled()
-
setCheckpointMode
public void setCheckpointMode(org.apache.flink.core.execution.CheckpointingMode mode)
-
getCheckpointMode
public org.apache.flink.core.execution.CheckpointingMode getCheckpointMode()
-
setUnalignedCheckpointsEnabled
public void setUnalignedCheckpointsEnabled(boolean enabled)
-
isUnalignedCheckpointsEnabled
public boolean isUnalignedCheckpointsEnabled()
-
setUnalignedCheckpointsSplittableTimersEnabled
public void setUnalignedCheckpointsSplittableTimersEnabled(boolean enabled)
-
isUnalignedCheckpointsSplittableTimersEnabled
public boolean isUnalignedCheckpointsSplittableTimersEnabled()
-
isExactlyOnceCheckpointMode
public boolean isExactlyOnceCheckpointMode()
-
getAlignedCheckpointTimeout
public Duration getAlignedCheckpointTimeout()
-
setAlignedCheckpointTimeout
public void setAlignedCheckpointTimeout(Duration alignedCheckpointTimeout)
-
setMaxConcurrentCheckpoints
public void setMaxConcurrentCheckpoints(int maxConcurrentCheckpoints)
-
getMaxConcurrentCheckpoints
public int getMaxConcurrentCheckpoints()
-
getMaxSubtasksPerChannelStateFile
public int getMaxSubtasksPerChannelStateFile()
-
setMaxSubtasksPerChannelStateFile
public void setMaxSubtasksPerChannelStateFile(int maxSubtasksPerChannelStateFile)
-
setVertexNonChainedOutputs
public void setVertexNonChainedOutputs(List<NonChainedOutput> nonChainedOutputs)
Sets the job vertex level non-chained outputs. The given output list must have the same order withJobVertex.getProducedDataSets()
.
-
getVertexNonChainedOutputs
public List<NonChainedOutput> getVertexNonChainedOutputs(ClassLoader cl)
-
setTransitiveChainedTaskConfigs
public void setTransitiveChainedTaskConfigs(Map<Integer,StreamConfig> chainedTaskConfigs)
-
getTransitiveChainedTaskConfigs
public Map<Integer,StreamConfig> getTransitiveChainedTaskConfigs(ClassLoader cl)
-
getTransitiveChainedTaskConfigsWithSelf
public Map<Integer,StreamConfig> getTransitiveChainedTaskConfigsWithSelf(ClassLoader cl)
-
setOperatorID
public void setOperatorID(OperatorID operatorID)
-
getOperatorID
public OperatorID getOperatorID()
-
setOperatorName
public void setOperatorName(String name)
-
getOperatorName
public String getOperatorName()
-
setChainIndex
public void setChainIndex(int index)
-
getChainIndex
public int getChainIndex()
-
setStateBackend
public void setStateBackend(StateBackend backend)
-
setChangelogStateBackendEnabled
public void setChangelogStateBackendEnabled(org.apache.flink.util.TernaryBoolean enabled)
-
setStateBackendUsesManagedMemory
@VisibleForTesting public void setStateBackendUsesManagedMemory(boolean usesManagedMemory)
-
setSerializedStateBackend
public void setSerializedStateBackend(org.apache.flink.util.SerializedValue<StateBackend> serializedStateBackend, boolean useManagedMemory)
-
setSerializedCheckpointStorage
public void setSerializedCheckpointStorage(org.apache.flink.util.SerializedValue<CheckpointStorage> serializedCheckpointStorage)
-
getStateBackend
public StateBackend getStateBackend(ClassLoader cl)
-
isChangelogStateBackendEnabled
public org.apache.flink.util.TernaryBoolean isChangelogStateBackendEnabled(ClassLoader cl)
-
setCheckpointStorage
@VisibleForTesting public void setCheckpointStorage(CheckpointStorage storage)
-
getCheckpointStorage
public CheckpointStorage getCheckpointStorage(ClassLoader cl)
-
setTimerServiceProvider
public void setTimerServiceProvider(InternalTimeServiceManager.Provider timerServiceProvider)
-
getTimerServiceProvider
public InternalTimeServiceManager.Provider getTimerServiceProvider(ClassLoader cl)
-
setStatePartitioner
public void setStatePartitioner(int input, org.apache.flink.api.java.functions.KeySelector<?,?> partitioner)
-
getStatePartitioner
public <IN,K extends Serializable> org.apache.flink.api.java.functions.KeySelector<IN,K> getStatePartitioner(int input, ClassLoader cl)
-
setStateKeySerializer
public void setStateKeySerializer(org.apache.flink.api.common.typeutils.TypeSerializer<?> serializer)
-
getStateKeySerializer
public <K> org.apache.flink.api.common.typeutils.TypeSerializer<K> getStateKeySerializer(ClassLoader cl)
-
setChainStart
public void setChainStart()
-
isChainStart
public boolean isChainStart()
-
setChainEnd
public void setChainEnd()
-
isChainEnd
public boolean isChainEnd()
-
setGraphContainingLoops
public void setGraphContainingLoops(boolean graphContainingLoops)
-
isGraphContainingLoops
public boolean isGraphContainingLoops()
-
setAttribute
public void setAttribute(org.apache.flink.api.common.attribute.Attribute attribute)
-
getAttribute
public org.apache.flink.api.common.attribute.Attribute getAttribute(ClassLoader cl)
-
clearInitialConfigs
public void clearInitialConfigs()
In general, we don't clear any configuration. However, theSERIALIZED_UDF
may be very large when operator includes some large objects, the SERIALIZED_UDF is used to create a StreamOperator and usually only needs to be called once.CHAINED_TASK_CONFIG
may be large as well due to the StreamConfig of all non-head operators in OperatorChain will be serialized and stored in CHAINED_TASK_CONFIG. They can be cleared to reduce the memory after StreamTask is initialized. If so, TM will have more memory during running. See FLINK-33315 and FLINK-33317 for more information.
-
requiresSorting
public static boolean requiresSorting(StreamConfig.InputConfig inputConfig)
-
-