2

Spark jar が HDFS に既に存在するLivyを使用して、クラスターの外部から HTTP 呼び出しを介して Spark ジョブを実行したいと思います。

spark-submitクラスターノードのシェルからジョブを実行できます。たとえば、次のようになります。

spark-submit --class io.woolford.Main --master yarn-cluster hdfs://hadoop01:8020/path/to/spark-job.jar

--master yarn-clusterjar が存在する HDFS にアクセスするには、 が必要であることに注意してください。

を使用して、Livy 経由でコマンドを送信することもできますcurl。たとえば、次のリクエスト:

curl -X POST --data '{"file": "/path/to/spark-job.jar", "className": "io.woolford.Main"}' -H "Content-Type: application/json" hadoop01:8998/batches

... クラスターで次のコマンドを実行します。

spark-submit --class io.woolford.Main hdfs://hadoop01:8020/path/to/spark-job.jar

これは、機能するコマンドからパラメーターを除いたものと同じ--master yarn-clusterです。これはテーリングによって確認されました/var/log/livy/livy-livy-server.out

そのため、コマンドがLivy によって実行されるときcurlに含めるようにコマンドを変更する必要があります。--master yarn-cluster一見すると、JSON ディクショナリに引数を追加することで、これが可能になるはずです。残念ながら、これらは通過しません。

システム全体の変更--master yarn-clusterを行わずにジョブが YARN で実行されるように Livyに渡す方法を知っている人はいますか?

4

2 に答える 2