現時点では、常に実行する必要があるスパークジョブ(java)があります。あまりにも多くのリソースを必要としません。しかし、私がsqoopジョブ(MapReduce)を実行するたびに、ジョブはAMコンテナの割り当て、起動、RMへの登録を待ってACCEPTEDとしてスタックされます。スパークジョブがあるとACCEPTEDでHadoop - Sqoopジョブが実行されるRUNNING
私はAmbariをチェックし、スケジュールのためのスパーク設定はFAIRです。テストのために、同じスパークジョブを2回実行しようとしましたが、問題は発生しませんでした(状態は両方で実行中)。マップの縮小ジョブを実行するのに十分なコアとメモリが残っている必要があります。
スパークは、コマンド送信:
/usr/hdp/current/spark-client/bin/spark-submit \
--class com.some.App \
--master yarn-cluster \
--deploy-mode cluster \
--num-executors 1 \
/path/to/file.jar "some.server:6667" "Some_App" "Some_App_Parser" "some.server"
jdbc:jtds:sqlserver://some.server:1433/HL7_Metadata
&; done
マイsqoopコマンドを、私は、メモリの制限を追加しましたが、それは助けにはならなかった。ここで
sqoop import -D mapreduce.map.memory.mb=2048 \
--connect "jdbc:sqlserver://some.server\SQL2012;database=SomeDB;username=someUser;passwor =somePass" \
--e "SELECT SOMETHING" where \$CONDITIONS"\
--fields-terminated-by \\002 \
--escaped-by \\ \
--check-column Message_Audit_Log_Id \
--incremental append \
--last-value 1 \
--split-by Message_Audit_Log_Id \
--target-dir /target/path/
は、参考のためにいくつかのイメージである: