The head Revision of 0.10-SNAPSHOT.


> Am 18.08.2015 um 17:10 schrieb Robert Metzger <rmetz...@apache.org>:
> 
> I'm still working on writing a test case for reproducing the issue.
> Which Flink version are you using?
> If you are using 0.10-SNAPSHOT, which exact commit?
> 
>> On Tue, Aug 18, 2015 at 2:09 PM, Robert Metzger <rmetz...@apache.org> wrote:
>> I created a JIRA for the issue: 
>> https://issues.apache.org/jira/browse/FLINK-2543
>> 
>> Once I'm done with the Kafka pull request, I'll take a look into this.
>> 
>>> On Tue, Aug 18, 2015 at 1:56 PM, Stephan Ewen <se...@apache.org> wrote:
>>> Yep, that is a valid bug!
>>> State is apparently not resolved with the correct classloader.
>>> 
>>> As a workaround, you can checkpoint byte arrays and serialize/deserialize 
>>> the state into byte arrays yourself. You can use the apache commons 
>>> SerializationUtil class, or Flinks InstantiationUtil class for that.
>>> 
>>> You can get the ClassLoader for the user code (needed for deserialization) 
>>> via "getRuntimeContext().getUserCodeClassLoader()".
>>> 
>>> Let us know if that workaround works. We'll try to get a fix for that out 
>>> very soon!
>>> 
>>> Greetings,
>>> Stephan
>>> 
>>> 
>>> 
>>>> On Tue, Aug 18, 2015 at 12:23 PM, Robert Metzger <rmetz...@apache.org> 
>>>> wrote:
>>>> Java's HashMap is serializable.
>>>> If it is only the map, you can just use the HashMap<> as the state.
>>>> 
>>>> If you have more data, you can use TupleX, for example:
>>>> 
>>>> Tuple2<HashMap<Integer, String>, Long>(myMap, myLong);
>>>> 
>>>> 
>>>>> On Tue, Aug 18, 2015 at 12:21 PM, Rico Bergmann <i...@ricobergmann.de> 
>>>>> wrote:
>>>>> Hi!
>>>>> 
>>>>> Using TupleX is not possible since the state is very big (a Hashtable). 
>>>>> 
>>>>> How would I have to do serialization into a byte array?
>>>>> 
>>>>> Greets. Rico. 
>>>>> 
>>>>> 
>>>>> 
>>>>>> Am 18.08.2015 um 11:44 schrieb Robert Metzger <rmetz...@apache.org>:
>>>>>> 
>>>>>> Hi Rico,
>>>>>> 
>>>>>> I'm pretty sure that this is a valid bug you've found, since this case 
>>>>>> is not yet tested (afaik).
>>>>>> We'll fix the issue asap, until then, are you able to encapsulate your 
>>>>>> state in something that is available in Flink, for example a TupleX or 
>>>>>> just serialize it yourself into a byte[] ?
>>>>>> 
>>>>>>> On Tue, Aug 18, 2015 at 11:32 AM, Rico Bergmann <i...@ricobergmann.de> 
>>>>>>> wrote:
>>>>>>> Hi!
>>>>>>> Is it possible to use your own class?
>>>>>>> I'm using the file state handler at the Jobmanager and implemented the 
>>>>>>> Checkpointed interface. 
>>>>>>> 
>>>>>>> I tried this and got an exception:
>>>>>>> 
>>>>>>> Error: java.lang.RuntimeException: Failed to deserialize state handle 
>>>>>>> and setup initial operator state.
>>>>>>> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:544)
>>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>>> Caused by: java.lang.ClassNotFoundException: 
>>>>>>> com.ottogroup.bi.searchlab.searchsessionizer.OperatorState
>>>>>>>> at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
>>>>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>>>>>>>> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
>>>>>>>> at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>>>>>>>> at java.lang.Class.forName0(Native Method)
>>>>>>>> at java.lang.Class.forName(Class.java:348)
>>>>>>>> at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:626)
>>>>>>>> at 
>>>>>>>> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1613)
>>>>>>>> at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1518)
>>>>>>>> at 
>>>>>>>> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1774)
>>>>>>>> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1351)
>>>>>>>> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:371)
>>>>>>>> at 
>>>>>>>> org.apache.flink.runtime.state.ByteStreamStateHandle.getState(ByteStreamStateHandle.java:63)
>>>>>>>> at 
>>>>>>>> org.apache.flink.runtime.state.ByteStreamStateHandle.getState(ByteStreamStateHandle.java:33)
>>>>>>>> at 
>>>>>>>> org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.restoreInitialState(AbstractUdfStreamOperator.java:83)
>>>>>>>> at 
>>>>>>>> org.apache.flink.streaming.runtime.tasks.StreamTask.setInitialState(StreamTask.java:276)
>>>>>>>> at 
>>>>>>>> org.apache.flink.runtime.state.StateUtils.setOperatorState(StateUtils.java:51)
>>>>>>>> at org.apache.flink.runtime.taskmanager.Task.run(Task.java:541)
> 

Reply via email to