pyspark的profiler缺少输出

eyh26e7m  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(374)

我正在尝试分析提交到我的集群的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 获取配置文件输出?

5ktev3wc

5ktev3wc1#

三个不同的问题: dump_profiles 使用标准的python编写器,所以您需要兼容posix的文件系统才能在这里使用它。除非使用保险丝安装,否则hdfs不会起作用。
python文件实用程序需要的是文件的路径,而不是uri。显示的代码应该引发异常。
在群集模式下提交代码时 dump_profiles 将使用驱动程序节点的本地路径,该节点将是群集上的任意节点。
如果您不能访问与posix兼容的dfs,您可以读回应用程序中的转储,并使用一个可用的python客户机将其推送到hdfs,或者将其推送到类似s3 bucket的地方。
更麻烦的解决方案是使用 SparkFiles ( SparkContext.addFile ),用英语读 texFile 然后写。

相关问题