2017-05-22 9 views

答えて

0

RpcEnvは、Sparkのすべてのコンポーネントのために別々に作成され、リモート通信のために相互にメッセージを交換するために使用されるRPC環境あります。

スパークは、ドライバとエグゼキュータのRPC環境を作成します(それぞれSparkEnv. createDriverEnvSparkEnv.createExecutorEnvメソッドを実行します)。ときSparkContextis created for the driver

SparkEnv.createDriverEnvを独占的に使用されます。

_env = createSparkEnv(_conf, isLocal, listenerBus) 

あなたは(ExecutorBackendsは例えばCoarseGrainedExecutorBackend、そうであるように)RpcEnv.createファクトリメソッドを自分で使用してRPC環境を作成することができます。

val env = SparkEnv.createExecutorEnv(
    driverConf, executorId, hostname, cores, cfg.ioEncryptionKey, isLocal = false) 

セパレートについてもRpcEnvが作成されていますおよびworkers。コンポーネントを相互に接続を行うにはどうすればよい


ここでは魔法はありません:) SparkアプリケーションのドライバとSparkスタンドアロンクラスタのスタンドアロンマスターが最初に作成され、他のコンポーネントに依存しません。

Sparkアプリケーションのドライバが起動すると、エグゼキュータを起動するコマンド(クラスタマネージャごとに異なる)を使用してリソースを(クラスタマネージャからリソースコンテナ形式で)要求します。起動コマンドには、ドライバのRpcEndpointの接続の詳細(ホストとポート)があります。

ClientでHadoop YARNとの動作を確認してください。

これは、管理者がコマンドラインでマスタのURLを指定する必要がある点を除いて、スタンドアロンワーカーと同様のプロセスです。

$ ./sbin/start-slave.sh 
Usage: ./sbin/start-slave.sh [options] <master> 

Master must be a URL of the form spark://hostname:port 

Options: 
    -c CORES, --cores CORES Number of cores to use 
    -m MEM, --memory MEM  Amount of memory to use (e.g. 1000M, 2G) 
    -d DIR, --work-dir DIR Directory to run apps in (default: SPARK_HOME/work) 
    -i HOST, --ip IP   Hostname to listen on (deprecated, please use --host or -h) 
    -h HOST, --host HOST  Hostname to listen on 
    -p PORT, --port PORT  Port to listen on (default: random) 
    --webui-port PORT  Port for web UI (default: 8081) 
    --properties-file FILE Path to a custom Spark properties file. 
          Default is conf/spark-defaults.conf. 
+0

すべてのコンポーネントは、独自のrpcEnvを持っているとして、コンポーネントはdriver's rpcEnvでRpcEndpointとして、ドライバ・レジスタか?接続を行い、そして労働者が葯rpcEnvを持っているか、これらのrpcEnvは、接続を行うことができますか? – CCong

関連する問題