spark 1.3.0,python,avro文件,driverclasspathsparkdefaults.conf但奴隶看不到

2024-10-04 11:27:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我在python中使用spark1.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中,我有以下一行:

^{pr2}$

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

  • 如果我在主机上运行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,但它也不起作用!在

使用解决方案更新

以下是我的要求:

  • 我在调用脚本时使用spark-submit --driver-class-path path/to/appropriate.jar
  • 我对spark-defaults.conf file中的jar文件没有任何相关内容
  • 我使用
    SparkConf().set(...).set("spark.executor.extraClassPath","path/to/appropriate.ja‌​r")在python主文件中。在

我完全放弃了使用conf文件来设置路径。我没有尝试下面fanfabb建议的--jars论证,可能值得一试。在


Tags: 文件pathorgmasterapachelocalconf错误
1条回答
网友
1楼 · 发布于 2024-10-04 11:27:22

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

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

在纱线.节点管理器.资源.内存mb

在纱线调度程序最大值-分配mb

spark提交主纱客户数量执行器5个驱动核心8个驱动程序内存50G执行器内存44G代码_运行.py在

相关问题 更多 >