我正在尝试分析提交到我的集群的Pypark作业。这个Pypark公关(https://github.com/apache/spark/pull/2556)表示 sc.dump_profiles(path)
是命令。我已经尝试将配置文件输出转储到hadoop hdfs:///user/username/filename
,以及本地 file:///home/username/filename
,和 /home/username/filename
. 作业完成,但配置文件从未出现。
代码基于这个问题(如何分析pyspark作业),sc.show\u 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
获取配置文件输出?
1条答案
按热度按时间5ktev3wc1#
三个不同的问题:
dump_profiles
使用标准的python编写器,所以您需要兼容posix的文件系统才能在这里使用它。除非使用保险丝安装,否则hdfs不会起作用。python文件实用程序需要的是文件的路径,而不是uri。显示的代码应该引发异常。
在群集模式下提交代码时
dump_profiles
将使用驱动程序节点的本地路径,该节点将是群集上的任意节点。如果您不能访问与posix兼容的dfs,您可以读回应用程序中的转储,并使用一个可用的python客户机将其推送到hdfs,或者将其推送到类似s3 bucket的地方。
更麻烦的解决方案是使用
SparkFiles
(SparkContext.addFile
),用英语读texFile
然后写。