gpt4 book ai didi

python - spark 1.3.0、python、avro 文件、在 spark-defaults.conf 中设置的驱动程序类路径,但从属设备看不到

转载 作者:可可西里 更新时间:2023-11-01 14:23:57 37 4
gpt4 key购买 nike

我正在使用带有 python 的 spark 1.3.0。我有一个使用以下命令读取 avro 文件的应用程序:

conf = None

rddAvro = sc.newAPIHadoopFile(
fileAvro,
"org.apache.avro.mapreduce.AvroKeyInputFormat",
"org.apache.avro.mapred.AvroKey",
"org.apache.hadoop.io.NullWritable",
KeyConverter="org.apache.spark.examples.pythonconverters.AvroWrapperToJavaConverter",
conf=conf)

在我的 conf/spark-defaults.conf 中,我有以下行:

spark.driver.extraClassPath /pathto/spark-1.3.0/lib/spark-examples-1.3.0-hadoop2.4.0.jar

我设置了一个由三台机器组成的集群(两台主机和一台从机):

  • 如果我在 master 上运行 spark-submit --master local,它会工作
  • 如果我在任何一个从站上运行 spark-submit --master local,它都会工作
  • 如果我运行 sbin/start-all.sh 然后 spark-submit --master spark://cluster-data-master:7077 它失败并出现以下错误:

    java.lang.ClassNotFoundException:
    org.apache.spark.examples.pythonconverters.AvroWrapperToJavaConverter

我可以通过注释 .conf 文件中的驱动程序行在本地模型中重现此错误。我用适当的 --driver-class-path 尝试了 spark-submit 但它也不起作用!

更新解决方案

按照这里的请求对我有用:

  • 我在调用脚本时使用 spark-submit --driver-class-path path/to/appropriate.jar
  • 我在 spark-defaults.conf 文件中没有与 jar 文件相关的内容
  • 我使用
    将jar路径转发给执行者SparkConf().set(...).set("spark.executor.extraClassPath","path/to/appropriate.ja‌ r") 在主 python 文件中。

我完全放弃了使用 conf 文件来设置路径。我还没有尝试使用 --jars 参数,正如下面 fanfabbb 所建议的那样,可能值得一试。

最佳答案

尝试使用 --master yarn-cluster 选项运行它

根据数据的大小,您可以通过向以下配置参数添加更多数字来为每个容器分配更多内存:

yarn.nodemanager.resource.memory-mb

yarn.scheduler.maximum-allocation-mb

spark-submit --master yarn-client --num-executors 5 --driver-cores 8 --driver-memory 50G --executor-memory 44G code_to_run.py

关于python - spark 1.3.0、python、avro 文件、在 spark-defaults.conf 中设置的驱动程序类路径,但从属设备看不到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29524936/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com