[ 
https://issues.apache.org/jira/browse/FLINK-18770?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17167889#comment-17167889
 ] 

Leonid Ilyevsky commented on FLINK-18770:
-----------------------------------------

Please see the main function of my app in AppMain.java. I guess, this is the 
only relevant part for the understanding of how I run it.

In the beginning you will see 
{quote}val env = StreamExecutionEnvironment.getExecutionEnvironment
 env.enableCheckpointing(10000, CheckpointingMode.EXACTLY_ONCE)
 env.setParallelism(config.bridgeConfig.parallelism)
{quote}
then it creates the pipeline, and in the end:
{quote}    val _ = env.execute(config.bridgeConfig.instanceId)
{quote}
In the local environment I simply run this code inside IntelliJ.

To run it under cluster, I use python script that generates the command, you 
can see the actual command in run_command.txt file, as printed by the script 
before launching it.

So I basically use org.apache.flink.client.cli.CliFrontend to submit the job.

 

 

 

> Emitting element fails in KryoSerializer
> ----------------------------------------
>
>                 Key: FLINK-18770
>                 URL: https://issues.apache.org/jira/browse/FLINK-18770
>             Project: Flink
>          Issue Type: Bug
>          Components: API / Type Serialization System
>    Affects Versions: 1.11.1
>         Environment: Flink 1.11.1, Linux
>            Reporter: Leonid Ilyevsky
>            Priority: Major
>         Attachments: AppMain.java, KryoException.txt, SolaceSource.java, 
> run_command.txt
>
>
> I wrote a simple Flink connector for Solace, see attached java file. It works 
> fine under local execution environment. However, when I deployed it in the 
> real Flink cluster, it failed with the Kryo exception, see attached.
> After a few hours of search and debugging, I can see now what is going on.
> The data I want to emit from this source is a simple byte array. In the 
> exception stack you can see that when I call 'collect' on the context, it 
> goes into OperatorChain.java:715, and then to KryoSerializer, where it 
> ultimately fails. I didn't have a chance to learn what KryoSerializer is and 
> why it would not know what to do with byte[], but that is not the point now.
> Then I used debugger in my local test, in order to figure out how it manages 
> to work. I saw that after OperatorChain.java:715 it goes into 
> BytePrimitiveArraySerializer, and then everything is working as expected. 
> Obviously BytePrimitiveArraySerializer makes sense for byte[] data.
> The question is, how can I configure the execution environment under cluster 
> so that it does serialization the same way as the local one? I looked at 
> [https://ci.apache.org/projects/flink/flink-docs-stable/dev/execution_configuration.html]
>  , and I was thinking of setting disableForceKryo, but it says it is disabled 
> by default anyway.
>  
> Another question is, why cluster execution environment has different default 
> settings compare to local? This makes it difficult to rely on local tests.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to