次の仕様の 1 台のマシンに Apache Spark 1.6.1 スタンドアロン クラスターを設定しています。
- CPU: Core i7-4790 (コア数: 4、スレッド数: 8)
- メモリ: 16GB
conf/spark-env.sh で次の設定を使用しています
export SPARK_WORKER_MEMORY
export SPARK_WORKER_INSTANCES
export SPARK_WORKER_CORES
export SPARK_WORKER_DIR
マシンには 4 コアのプロセッサが搭載されているため、可能な構成は次のようになると考えました。
export SPARK_WORKER_MEMORY = 14g
export SPARK_WORKER_INSTANCES = 1
export SPARK_WORKER_CORES = 1
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 14g
export SPARK_WORKER_INSTANCES = 1
export SPARK_WORKER_CORES = 2
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 14g
export SPARK_WORKER_INSTANCES = 1
export SPARK_WORKER_CORES = 3
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 14g
export SPARK_WORKER_INSTANCES = 1
export SPARK_WORKER_CORES = 4
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 7g
export SPARK_WORKER_INSTANCES = 2
export SPARK_WORKER_CORES = 1
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 7g
export SPARK_WORKER_INSTANCES = 2
export SPARK_WORKER_CORES = 2
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 4.5g
export SPARK_WORKER_INSTANCES = 3
export SPARK_WORKER_CORES = 1
export SPARK_WORKER_DIR =/local_drive/sparkdata
export SPARK_WORKER_MEMORY = 3.5g
export SPARK_WORKER_INSTANCES = 4
export SPARK_WORKER_CORES = 1
export SPARK_WORKER_DIR =/local_drive/sparkdata
だから私が考えたのは:
- メモリは、ワーカー インスタンスの数の間で分割する必要があります。
- ワーカー コアの数はワーカー インスタンスごとに乗算されるため、8 つのコアがないため、4 つのワーカー インスタンスと 2 つのワーカー コアを持つことはできません。
問題は、構成をテストして次のように設定したことです。
export SPARK_WORKER_MEMORY = 14g
export SPARK_WORKER_INSTANCES = 3
export SPARK_WORKER_CORES = 40
export SPARK_WORKER_DIR =/local_drive/sparkdata
そして、エラーが発生しました。さらに、Apache Web UI では「40 コア」と表示されます。何が起こっている?その場合、実際にいくつのワーカー コアとワーカー インスタンスを使用できますか?
前もって感謝します。