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

ufj5ltwl  于 2021-05-30  发布在  Hadoop
关注(0)|答案(1)|浏览(388)

我正在使用spark1.3.0和python。我有一个应用程序,它使用以下命令读取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

我设置了一个由三台机器组成的集群(两台主机和一台从机):
如果我跑了 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 文件。我试过了 spark-submit 适当的 --driver-class-path 但它也不起作用!
用解决方案更新
以下是对我有效的请求:
我用 spark-submit --driver-class-path path/to/appropriate.jar 调用脚本时
我没有任何与jar文件相关的文档 spark-defaults.conf file 我使用 SparkConf().set(...).set("spark.executor.extraClassPath","path/to/appropriate.ja‌​r") 在python主文件中。
我完全放弃了使用conf文件来设置路径。我没有试过 --jars 然而,正如下面范法布所说,这一论点或许值得一试。

isr3a4wc

isr3a4wc1#

试着用“主Yarn簇”选项运行它
根据数据的大小,您可以通过向以下配置参数添加更多数字来为每个容器分配更多内存:

yarn.nodemanager.resource.memory-mb内存

yarn.scheduler.maximum-allocation-mb最大分配

spark submit--master warn client--num executors 5--driver cores 8--driver memory 50g--executor memory 44g code\u to \u run.py

相关问题