2016-01-19 9 views
8

タイトルに記載されているように、* .jarをスパーク送信する必要があるのでしょうか?スパークアプリケーションジャーを提出する必要はありますか?

私はDatastax Enterprise Cassandraをしばらく使用していますが、今はSparkも使用する必要があります。私はDS320: DataStax Enterprise Analytics with Apache Sparkからほとんどすべてのビデオを見て、Javaアプリケーションから遠隔地に火花を付けるための接続については何もありません。

私はDSEの実行ノードを3つ持っています。私はスパークシェルからスパークに接続することができます。しかし、JavaコードからSparkに接続しようと2日後に私はあきらめています。

これは私がSPARK_MASTER_IP、SPARK_LOCAL_IPや他の多くの設定変数を変更しようとしましたが、成功せず

16/01/18 14:32:43 ERROR TransportResponseHandler: Still have 2 requests outstanding when connection from *.*.*.*/*.*.*.*:7077 is closed 
16/01/18 14:32:43 WARN AppClient$ClientEndpoint: Failed to connect to master *.*.*.*:7077 
java.io.IOException: Connection from *.*.*.*/*.*.*.*:7077 closed 
    at org.apache.spark.network.client.TransportResponseHandler.channelUnregistered(TransportResponseHandler.java:124) 
    at org.apache.spark.network.server.TransportChannelHandler.channelUnregistered(TransportChannelHandler.java:94) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelUnregistered(ChannelInboundHandlerAdapter.java:53) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelUnregistered(ChannelInboundHandlerAdapter.java:53) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelUnregistered(ChannelInboundHandlerAdapter.java:53) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.DefaultChannelPipeline.fireChannelUnregistered(DefaultChannelPipeline.java:739) 
    at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:659) 
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357) 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) 
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) 
    at java.lang.Thread.run(Thread.java:745) 
16/01/18 14:33:03 ERROR TransportResponseHandler: Still have 2 requests outstanding when connection from *.*.*.*/*.*.*.*:7077 is closed 
16/01/18 14:33:03 WARN AppClient$ClientEndpoint: Failed to connect to master *.*.*.*:7077 
java.io.IOException: Connection from *.*.*.*/*.*.*.*:7077 closed 
    at org.apache.spark.network.client.TransportResponseHandler.channelUnregistered(TransportResponseHandler.java:124) 
    at org.apache.spark.network.server.TransportChannelHandler.channelUnregistered(TransportChannelHandler.java:94) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelUnregistered(ChannelInboundHandlerAdapter.java:53) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelUnregistered(ChannelInboundHandlerAdapter.java:53) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelUnregistered(ChannelInboundHandlerAdapter.java:53) 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelUnregistered(AbstractChannelHandlerContext.java:158) 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelUnregistered(AbstractChannelHandlerContext.java:144) 
    at io.netty.channel.DefaultChannelPipeline.fireChannelUnregistered(DefaultChannelPipeline.java:739) 
    at io.netty.channel.AbstractChannel$AbstractUnsafe$8.run(AbstractChannel.java:659) 
    at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:357) 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:357) 
    at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) 
    at java.lang.Thread.run(Thread.java:745) 
16/01/18 14:33:23 ERROR SparkDeploySchedulerBackend: Application has been killed. Reason: All masters are unresponsive! Giving up. 
16/01/18 14:33:23 WARN SparkDeploySchedulerBackend: Application ID is not initialized yet. 
16/01/18 14:33:23 WARN AppClient$ClientEndpoint: Drop UnregisterApplication(null) because has not yet connected to master 
16/01/18 14:33:23 ERROR MapOutputTrackerMaster: Error communicating with MapOutputTracker 
java.lang.InterruptedException 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326) 
    at scala.concurrent.impl.Promise$DefaultPromise.tryAwait(Promise.scala:208) 
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:218) 
    at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223) 
    at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190) 
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) 
    at scala.concurrent.Await$.result(package.scala:190) 
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75) 
    at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:101) 
    at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:77) 
    at org.apache.spark.MapOutputTracker.askTracker(MapOutputTracker.scala:110) 
    at org.apache.spark.MapOutputTracker.sendTracker(MapOutputTracker.scala:120) 
    at org.apache.spark.MapOutputTrackerMaster.stop(MapOutputTracker.scala:462) 
    at org.apache.spark.SparkEnv.stop(SparkEnv.scala:93) 
    at org.apache.spark.SparkContext$$anonfun$stop$12.apply$mcV$sp(SparkContext.scala:1756) 
    at org.apache.spark.util.Utils$.tryLogNonFatalError(Utils.scala:1229) 
    at org.apache.spark.SparkContext.stop(SparkContext.scala:1755) 
    at org.apache.spark.scheduler.cluster.SparkDeploySchedulerBackend.dead(SparkDeploySchedulerBackend.scala:127) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint.markDead(AppClient.scala:264) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2$$anonfun$run$1.apply$mcV$sp(AppClient.scala:134) 
    at org.apache.spark.util.Utils$.tryOrExit(Utils.scala:1163) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2.run(AppClient.scala:129) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
16/01/18 14:33:23 ERROR Utils: Uncaught exception in thread appclient-registration-retry-thread 
org.apache.spark.SparkException: Error communicating with MapOutputTracker 
    at org.apache.spark.MapOutputTracker.askTracker(MapOutputTracker.scala:114) 
    at org.apache.spark.MapOutputTracker.sendTracker(MapOutputTracker.scala:120) 
    at org.apache.spark.MapOutputTrackerMaster.stop(MapOutputTracker.scala:462) 
    at org.apache.spark.SparkEnv.stop(SparkEnv.scala:93) 
    at org.apache.spark.SparkContext$$anonfun$stop$12.apply$mcV$sp(SparkContext.scala:1756) 
    at org.apache.spark.util.Utils$.tryLogNonFatalError(Utils.scala:1229) 
    at org.apache.spark.SparkContext.stop(SparkContext.scala:1755) 
    at org.apache.spark.scheduler.cluster.SparkDeploySchedulerBackend.dead(SparkDeploySchedulerBackend.scala:127) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint.markDead(AppClient.scala:264) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2$$anonfun$run$1.apply$mcV$sp(AppClient.scala:134) 
    at org.apache.spark.util.Utils$.tryOrExit(Utils.scala:1163) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2.run(AppClient.scala:129) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.InterruptedException 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1326) 
    at scala.concurrent.impl.Promise$DefaultPromise.tryAwait(Promise.scala:208) 
    at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:218) 
    at scala.concurrent.impl.Promise$DefaultPromise.result(Promise.scala:223) 
    at scala.concurrent.Await$$anonfun$result$1.apply(package.scala:190) 
    at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) 
    at scala.concurrent.Await$.result(package.scala:190) 
    at org.apache.spark.rpc.RpcTimeout.awaitResult(RpcTimeout.scala:75) 
    at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:101) 
    at org.apache.spark.rpc.RpcEndpointRef.askWithRetry(RpcEndpointRef.scala:77) 
    at org.apache.spark.MapOutputTracker.askTracker(MapOutputTracker.scala:110) 
    ... 18 more 
16/01/18 14:33:23 ERROR SparkUncaughtExceptionHandler: Uncaught exception in thread Thread[appclient-registration-retry-thread,5,main] 
org.apache.spark.SparkException: Exiting due to error from cluster scheduler: All masters are unresponsive! Giving up. 
    at org.apache.spark.scheduler.TaskSchedulerImpl.error(TaskSchedulerImpl.scala:438) 
    at org.apache.spark.scheduler.cluster.SparkDeploySchedulerBackend.dead(SparkDeploySchedulerBackend.scala:124) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint.markDead(AppClient.scala:264) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2$$anonfun$run$1.apply$mcV$sp(AppClient.scala:134) 
    at org.apache.spark.util.Utils$.tryOrExit(Utils.scala:1163) 
    at org.apache.spark.deploy.client.AppClient$ClientEndpoint$$anon$2.run(AppClient.scala:129) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
    at java.lang.Thread.run(Thread.java:745) 

を接続する

SparkConf sparkConf = new SparkConf(); 
sparkConf.setAppName("AppName"); 
//sparkConf.set("spark.shuffle.blockTransferService", "nio"); 
//sparkConf.set("spark.driver.host", "*.*.*.*"); 
//sparkConf.set("spark.driver.port", "7007"); 
sparkConf.setMaster("spark://*.*.*.*:7077"); 
JavaSparkContext sc = new JavaSparkContext(sparkConf); 

結果、私のJavaコードです。今私はスパークにジャーを提出することに関するいくつかの記事を見つけました。それが原因であればわかりません(証拠が見つかりません)。スパーク送信とインタラクティブシェルは、スパークを使用する唯一の方法ですか?

これに関する記事がありますか?もしあなたが私にヒントを与えることができれば、私は感謝しています。

+0

これはあなたの質問に直接答えるかどうか分かりませんが、個人的にはsbtアセンブリを使ってfat-jarを生成します(同じことはMavenでも可能です)、リモートサーバ(scpを使用)に送信し、私はそこに任意のjarファイルとして実行します。 – Rami

+1

'dse spark submit'を使用すると、環境変数を取得する必要があります – phact

答えて

1

dseでdse spark-submitを使用することを強くお勧めします。必須ではありませんが、DSE用に設定されたセキュリティとクラスパスのオプションがクラスタで機能することを確認するよりもはるかに簡単です。また、あなたのSparkConfを設定して、エグゼキュータのクラスパスにjarを配置するためのもっと簡単なアプローチ(私の意見では)を提供します。

DSE内では、アプリケーションを正しいSparkマスターURLに自動的にルーティングし、設定をさらに簡素化します。

実際にSparkConfを手動で構築したい場合は、あなたのスパークマスターをdsetool spark-masterの出力にマップするか、ご使用のDSEのバージョンで同等です。

+0

応答してくれてありがとう!私はhttp://www.datastax.com/wp-content/uploads/resources/DataStax-WP-Best_Practices_Running_DSE_Within_Docker.pdfを使用しており、 'dse spark-submit'については何もありません。私はカスタムコードを必要としない(つまり、提出は必要ない?sparkに接続するために何かもっとやるべきことがあるかどうか知っていますか? –

+0

どのセキュリティと接続オプションを使用するかによって、大きくなる場合があります。たとえば、ケルベロスを使用する場合は、DSEビルドjarのカスタム認証者が必要です。そのため、クラスパスと正しいフックが設定されている必要があります。これはバージョンからバージョンに変更することもできます... – RussS

+0

私は今、ケルベロスを使用していません。私はちょうどそれatmを働かせてほしい。それは私がspark webUiで見ることができるIPアドレスのように見えます。私のノード(私は接続するために使用する)の公開IPではなく内部のドッカーネットワークのIPアドレス...そして変数設定のどれもそれを変更することはできません –

0

エグゼキュータがカスタムコードを実行できるようにするには、jarファイルが必要です。このジャーはSparkConf.setJarsで設定できます。しかし、これはSparkマスタに接続してSparkアプリケーションを設定するための要件ではありません。だれかが知っている、おそらくカスタムコードを実行したくない。 (これはSpark SQLの場合と同様です)

​​も使用する必要はありません。


私はDataStaxについて何も知らないので、何でもかまいません。しかし、エラーメッセージから、あなたのアプリケーションが間違ったホストに接続しようとしているか、ネットワークに問題があるようです。 spark-shellと同じマシンから同じSparkマスタに到達することができれば、当然のことではありません。マスターログを確認してください。おそらく、アプリケーションからの接続を閉じる理由を教えてくれるでしょう。

関連する問題