2017-04-07 4 views
1

私はSpark 2.0.2とMesos 0.28.2を実行しています。ZooKeeperが管理するMesosクラスタにスパーク送信する方法(java.net.UnknownHostException:zos for mesos:// zk:// master URL)?

私はマスターとしてのZooKeeper管理のMesosクラスターを使用して、スパークするためにアプリケーションを提出しようとしています:

$SPARK_HOME/bin/spark-submit --verbose \ 
--conf spark.mesos.executor.docker.image=$DOCKER_IMAGE \ 
--conf spark.mesos.executor.home=$SPARK_HOME \ 
--conf spark.executorEnv.MESOS_NATIVE_JAVA_LIBRARY=/usr/lib/libmesos.so \ 
--deploy-mode cluster \ 
--master mesos://zk://<ip 1>:2181,<ip 2>:2181,<ip 3>:2181/mesos \ 
--class $APP_MAIN_CLASS \ 
file://$APP_JAR_PATH 

<ip 1><ip 2>、および<ip 3>は10.0.0.0/8のIPv4アドレスです

マスターのURL F:ブロック)

documentationによると、私はマスターのための適切なフォーマットを持っているように見えますまたはMesosは、単一マスターMesosクラスターの場合はmesos:// host:5050、マルチマスターMesosクラスターの場合はmesos:// zk:// host1:2181、host2:2181、host3:2181/mesosの形式です。 ZooKeeperを使用します。私はそれが3つのZooKeeperのノードを使用してではなく、しようとしなければならないことを認識するスパークを取得するにはどうすればよい

17/04/07 20:10:06 INFO RestSubmissionClient: Submitting a request to launch an application in mesos://zk://<ip 1>:2181,<ip 2>:2181,<ip 3>:2181/mesos. 
Exception in thread "main" java.net.UnknownHostException: zk 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:589) 
    at java.net.Socket.connect(Socket.java:538) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:326) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966) 
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1316) 
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1291) 
    at org.apache.spark.deploy.rest.RestSubmissionClient.org$apache$spark$deploy$rest$RestSubmissionClient$$postJson(RestSubmissionClient.scala:214) 
    at org.apache.spark.deploy.rest.RestSubmissionClient$$anonfun$createSubmission$3.apply(RestSubmissionClient.scala:89) 
    at org.apache.spark.deploy.rest.RestSubmissionClient$$anonfun$createSubmission$3.apply(RestSubmissionClient.scala:85) 
    at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733) 
    at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) 
    at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186) 
    at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732) 
    at org.apache.spark.deploy.rest.RestSubmissionClient.createSubmission(RestSubmissionClient.scala:85) 
    at org.apache.spark.deploy.rest.RestSubmissionClient$.run(RestSubmissionClient.scala:417) 
    at org.apache.spark.deploy.rest.RestSubmissionClient$.main(RestSubmissionClient.scala:430) 
    at org.apache.spark.deploy.rest.RestSubmissionClient.main(RestSubmissionClient.scala) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:736) 
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:185) 
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:210) 
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:124) 
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala) 

を:

しかし、それはそのスパークがzkに接続しようとし、その後mesos://zk://...文字列を読んでいる表示されます存在しないzkホストに接続しますか?

+0

あなたはそれを引用しようとすることができますか? '--master" mesos:// zk:// ... "'?端末がURIをホスト名として解釈しているのでしょうか? –

+0

@ cricket_007これまで私は '--conf'引数とマスターホストを引用していましたが、端末も引用符を送っていましたので、' 'spark.mesos.executor.home'のようなものについてはエラーが出ます有効なオプションと '' mesos:// 'は有効なプロトコルではありません。 –

答えて

1

TL;あなたは、例えば、client--deploy-modeを変更したり、単一MesosホストとマスターURLを使用するかしない限り、DRは、それは動作しません。 mesos://host:port

次の行は、関連コードを見つけるためのヒントを示しています。

17/04/07午後08時10分06秒INFOのRestSubmissionClient:mesosでアプリケーションを起動するための要求を提出:// ZK://:2181、:2181、:2181/mesos。

メッセージが表示されるのは、--deploy-mode clusterのスパークスタンドアローンとApache Mesosのみです。これをデフォルトのclientに変更すると、デプロイメントパスが変更され、うまくいけばマスターURLが受け入れられます。

クラスタの展開を担当するコード(RestSubmissionClient)を参照してください。

HereRestSubmissionClient言う:

private val supportedMasterPrefixes = Seq("spark://", "mesos://") 

mesos:// URLは次を参照してくださいhereカバーされますが、証明され:URLを示し上記INFOメッセージとしてhereをプリントアウトされ

private val masters: Array[String] = if (master.startsWith("spark://")) { 
    Utils.parseStandaloneMasterUrls(master) 
} else { 
    Array(master) 
} 

単一のメゾスの唯一のマスターになることができます。

関連する問題