The 1.0.0 release introduced API breaking changes. This guide tries to ease the transition from 0.10.x to 1.0.x. It is highly recommended to update to this release as it includes many improvements all over the system.

Maven artifacts 

Maven artifacts are now suffixed with the Scala version, e.g. flink-streaming-java_2.10. Check out the detailed migration guide.

API-breaking changes

DataStream API

  • Removed partitionByHash. Use keyBy instead.
  • Scala API: fold parameters switched.
  • Hash partitioner now scrambles hashes with murmur hash. This might break programs relying on the output of the hashing.
  • enableTimestamps() has been removed. Use setStreamTimeCharacteristic(EventTime) instead.
  • EventTimeSourceFunction interface has been removed. Use SourceFunction instead.
  • OperatorState has been deprecated, use ValueState instead.
  • DataStream.assignTimestamps() has been deprecated, use DataStream.assignTimestampsAndWatermarks() instead.
  • TimestampExtractor has been deprecated, use either AssignerWithPeriodicWatermarks or AssignerWithPunctuatedWatermarks .
  • getRuntimeContext().getKeyValueState() has been deprecated, use getRuntimeContext().getState().
  • All Streaming Sources should now also implement StoppableFunction.

DataSet API

  • Combinable annotation removed. Implement a combinable GroupReduceFunction<IN, OUT> by implementing a CombineFunction<IN, IN> or GroupCombineFunction<IN, IN> interface in the GroupReduceFunction.

Gelly

  • The LabelPropagation library method now supports any Comparable type of label. It used to expect a Long value, so now users have to specify one extra type parameter when calling the method.
  • Gelly vertex-centric model has been renamed to scatter-gather. Graph’s runVertexCentricIteration() methods have been renamed to runScatterGatherIteration() and VertexCentricConfiguration has been renamed to ScatterGatherConfiguration.

 

Start/Stop scripts

  • The ./bin/start-webclient.sh and ./bin/stop-webclient.sh scripts have been removed. The webclient is now included in Flink's web dashboard and activated by default. It can be disabled by configuring jobmanager.web.submit.enable: false in ./conf/flink-conf.yaml.  
  • Streaming mode has been removed (removed start-cluster-streaming.sh script). The start up mode affected when managed memory was allocated (at startup for batch mode or lazily for streaming mode). New default is lazily. You can get allocation at start up via taskmanager.memory.preallocate.

Serialization issues

As JavaKaffee serializer util dependency was removed (see [FLINK-3305]), there may be issues in the serialization/deserialization of Joda DateTime objects (https://github.com/JodaOrg/joda-time/issues/307).

To solve this issue it is sufficient to add the dependency in you pom.xml

    <dependency>
       <groupId>de.javakaffee</groupId>
       <artifactId>kryo-serializers</artifactId>
       <version>0.28</version>
   </dependency>

and register the serializer in the execution environment:

    env.registerTypeWithKryoSerializer(DateTime.class, JodaDateTimeSerializer.class );


Deprecations

  • Number of retries and delay configuration deprecated in favour of restart strategies.

Stability Annotations 

Modules considered stable now have annotations indicating their API stability. Check out the detailed Stability Annotations guide.

  • No labels