私のクラスタに提出されたpysparkジョブをプロファイルしようとしています。このpyspark PR(https://github.com/apache/spark/pull/2556)は、sc.dump_profiles(path)
がコマンドであることを示します。プロファイル出力をhadoop hdfs:///user/username/filename
にダンプしようとしましたが、ローカルではfile:///home/username/filename
と/home/username/filename
です。ジョブは完了しますが、プロファイルは表示されません。pysparkのプロファイラからの出力がありません
コードは、このSO質問(How to profile pyspark jobs)に基づいており、sc.show_profiles()--conf spark.python.profile=true
を含む場合対話モードで作業を行います。
from pyspark import SparkContext, SparkConf
import logging
if __name__ == "__main__":
logging.getLogger("py4j").setLevel(logging.ERROR)
conf = SparkConf().setAppName("profile")
sc = SparkContext(conf=conf)
rdd = sc.parallelize(range(100)).map(str)
rdd.count()
sc.show_profiles()
sc.dump_profiles("hdfs:///user/username/python_profiled")
私はこの/opt/spark/bin/spark-submit --verbose --conf spark.python.profile=true --master yarn --deploy-mode cluster --queue production --num-executors 4 test_profile.py
プロファイル出力を得るためにpath
をフォーマットする方法上の任意のポインタのようにジョブを送信しますか?