You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/12/12 17:24:00 UTC

[jira] [Commented] (BEAM-981) Not possible to directly submit a pipeline on spark cluster

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

ASF GitHub Bot commented on BEAM-981:
-------------------------------------

lgajowy opened a new pull request #4246: [BEAM-981] Add parameter allowing adding jars to spark context
URL: https://github.com/apache/beam/pull/4246
 
 
   Follow this checklist to help us incorporate your contribution quickly and easily:
   
    - [ ] Make sure there is a [JIRA issue](https://issues.apache.org/jira/projects/BEAM/issues/) filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
    - [ ] Each commit in the pull request should have a meaningful subject line and body.
    - [ ] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA issue.
    - [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
    - [ ] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
    - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
   
   ---
   
   This is a PR for BEAM-981. I hope that's ok to submit this PR because the 981 issue seems to be abandoned. Another reason to post this is that this PR also (partially) solves BEAM-1603: by adding appropriate test.jar and shaded.jar file to Spark's classpath (using SparkConfs `addJar()`) we are able to run the IOITs on Spark cluster without the spark-submit tool. This in turn makes it possible to run the tests using PerfKit Benchmarker Tool easily, so it's quite crucial to us. 
   
   @lukecwik could you review this, as you seem to know the topic well?
   @jbonofre does this change interfere in any way with migrating spark to 2.x version?
   @jasonkuster fyi :)
   
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> Not possible to directly submit a pipeline on spark cluster
> -----------------------------------------------------------
>
>                 Key: BEAM-981
>                 URL: https://issues.apache.org/jira/browse/BEAM-981
>             Project: Beam
>          Issue Type: Bug
>          Components: runner-spark
>    Affects Versions: 0.6.0
>            Reporter: Jean-Baptiste Onofré
>            Assignee: Kobi Salant
>
> It's not possible to directly run a pipeline on the spark runner (for instance using {{mvn exec:java}}. It fails with:
> {code}
> [appclient-register-master-threadpool-0] INFO org.apache.spark.deploy.client.AppClient$ClientEndpoint - Connecting to master spark://10.200.118.197:7077...
> [shuffle-client-0] ERROR org.apache.spark.network.client.TransportClient - Failed to send RPC 6813731522650020739 to /10.200.118.197:7077: java.lang.AbstractMethodError: org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted;
> java.lang.AbstractMethodError: org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted;
>         at io.netty.util.ReferenceCountUtil.touch(ReferenceCountUtil.java:73)
>         at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:107)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:820)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:733)
>         at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:111)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:748)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:740)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:826)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:733)
>         at io.netty.handler.timeout.IdleStateHandler.write(IdleStateHandler.java:284)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:748)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:740)
>         at io.netty.channel.AbstractChannelHandlerContext.access$1900(AbstractChannelHandlerContext.java:38)
>         at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1101)
>         at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1148)
>         at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1090)
>         at io.netty.util.concurrent.SingleThreadEventExecutor.safeExecute(SingleThreadEventExecutor.java:451)
>         at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418)
>         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:401)
>         at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:877)
>         at java.lang.Thread.run(Thread.java:745)
> [appclient-register-master-threadpool-0] WARN org.apache.spark.deploy.client.AppClient$ClientEndpoint - Failed to connect to master 10.200.118.197:7077
> java.io.IOException: Failed to send RPC 6813731522650020739 to /10.200.118.197:7077: java.lang.AbstractMethodError: org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted;
>         at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:239)
>         at org.apache.spark.network.client.TransportClient$3.operationComplete(TransportClient.java:226)
>         at io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:514)
>         at io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:507)
>         at io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:486)
>         at io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:427)
>         at io.netty.util.concurrent.DefaultPromise.tryFailure(DefaultPromise.java:129)
>         at io.netty.channel.AbstractChannelHandlerContext.notifyOutboundHandlerException(AbstractChannelHandlerContext.java:845)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:750)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:740)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:826)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:733)
>         at io.netty.handler.timeout.IdleStateHandler.write(IdleStateHandler.java:284)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:748)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:740)
>         at io.netty.channel.AbstractChannelHandlerContext.access$1900(AbstractChannelHandlerContext.java:38)
>         at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.write(AbstractChannelHandlerContext.java:1101)
>         at io.netty.channel.AbstractChannelHandlerContext$WriteAndFlushTask.write(AbstractChannelHandlerContext.java:1148)
>         at io.netty.channel.AbstractChannelHandlerContext$AbstractWriteTask.run(AbstractChannelHandlerContext.java:1090)
>         at io.netty.util.concurrent.SingleThreadEventExecutor.safeExecute(SingleThreadEventExecutor.java:451)
>         at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:418)
>         at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:401)
>         at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:877)
>         at java.lang.Thread.run(Thread.java:745)
> Caused by: java.lang.AbstractMethodError: org.apache.spark.network.protocol.MessageWithHeader.touch(Ljava/lang/Object;)Lio/netty/util/ReferenceCounted;
>         at io.netty.util.ReferenceCountUtil.touch(ReferenceCountUtil.java:73)
>         at io.netty.channel.DefaultChannelPipeline.touch(DefaultChannelPipeline.java:107)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:820)
>         at io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:733)
>         at io.netty.handler.codec.MessageToMessageEncoder.write(MessageToMessageEncoder.java:111)
>         at io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:748)
>         ... 15 more
> {code}
> It looks like a conflict between the Netty version used in Spark and the one in Beam (just guessing).
> The workaround is to use {{spark-submit}}.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)