1

2 つの仮想マシンで Spark スタンドアロン クラスターを作成しました。
最初の VM (8 コア、64 GB メモリ) では、コマンドを使用して手動でマスターを起動しました bin/spark-class org.apache.spark.deploy.master.Master
2 番目の VM (8 コア、64 GB メモリ) では、 を使用して手動でスレーブを起動し
bin/spark-class org.apache.spark.deploy.worker.Worker spark://<hostname of master>:7077ました。
次に、最初の VM で、上記のスレーブ コマンドを使用してスレーブも起動しました。下の写真では、ワーカーとマスターの両方が開始され、ALIVE になっていることがわかります。

しかし、Spark アプリケーションを実行すると、2 番目の VM のワーカーのみが実行されます ( worker-20160613102937-10.0.37.150-47668)。1 番目の VM ( worker-20160613103042-10.0.37.142-52601) のワーカーは実行されません。下の写真を参照してください

Spark スタンドアロン クラスター UI

Spark アプリケーションで両方のワーカーを使用する必要があります。これはどのように行うことができますか?

編集: VM 1st のワーカーに対応するエグゼキューターが失敗したエグゼキューターの概要のこの写真を参照してください。

エグゼキュータの概要

stdoutまたはをクリックするとstderr、 のエラーが表示されますinvalid log directory。下の写真を参照してください

エラー

4

1 に答える 1

0

エラーは解決されました。Spark は、最初の VM にログ ディレクトリを作成できませんでした。Spark ジョブを送信したユーザーには、パスにファイルを作成する権限がありませんでした/usr/local/spark。ディレクトリ( )の読み取り/書き込み許可を変更するだけでchmod -R 777 /usr/local/sparkうまくいきました。

于 2016-06-14T09:39:31.647 に答える