私はそこにsparkマスターとスレーブが走っているサーバーを持っています。スパークは、次のフラグを使用して手動で作成されました。シンプルなスパークプログラムはすべてのリソースを食べます
build/mvn -Pyarn -Phadoop-2.6 -Dscala-2.11 -DskipTests clean package
私はリモートで次の簡単なプログラムを実行しようとしている:
def main(args: Array[String]) {
val conf = new SparkConf().setAppName("testApp").setMaster("spark://sparkserver:7077")
val sc = new SparkContext(conf)
println(sc.parallelize(Array(1,2,3)).reduce((a, b) => a + b))
}
スパーク依存:
"org.apache.spark" %% "spark-core" % "1.6.1"
ログイン実行中のプログラム上:
16/04/12 18:45:46 WARN TaskSchedulerImpl: Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered and have sufficient resources
なぜ単純なアプリケーションがすべての使用可能なリソースを使用するのですか?
P.S.私は私のアプリのためのより多くのメモリ(10ギガバイト例えば)を割り当てる場合はまた、私は何に気づいた次のログには何度も表示されます。
16/04/12 19:23:40 INFO AppClient$ClientEndpoint: Executor updated: app-20160412182336-0008/208 is now RUNNING
16/04/12 19:23:40 INFO AppClient$ClientEndpoint: Executor updated: app-20160412182336-0008/208 is now EXITED (Command exited with code 1)
私は、マスタとスレーブとの間の接続にその理由を考えます。どのように私は(同じマシン上で)マスタとスレーブを設定します。
sbin/start-master.sh
sbin/start-slave.sh spark://sparkserver:7077
P.P.S.私はすべてが良いです、スパーク、シェルでマスターを刺激するために接続していた場合:デフォルトでは
spark-shell --master spark://sparkserver:7077
おそらく、以前のアプリケーションが実行されている間にアプリケーションを実行しようとしていましたが、2つ目のアプリケーションで使用できるリソースがないまま8つのコアすべてを使用していましたか? –
私のアプリケーションを実行する前に他のプロセスはありません。すべてのメモリは私のアプリだけで食べられます。 – Cortwave
'spark.executor.cores'フラグを使ってアプリのコア数を指定しようとしています。 –