我在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
中,我有以下一行:
我设置了一个由三台机器组成的集群(两台主机和一台从机):
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.jar")
在python主文件中。在我完全放弃了使用conf文件来设置路径。我没有尝试下面fanfabb建议的--jars
论证,可能值得一试。在
尝试使用选项master yarn cluster运行它
根据数据的大小,您可以通过在以下配置参数中添加更多数字来为每个容器分配更多内存:
在纱线.节点管理器.资源.内存mb
在纱线调度程序最大值-分配mb
spark提交主纱客户数量执行器5个驱动核心8个驱动程序内存50G执行器内存44G代码_运行.py在
相关问题 更多 >
编程相关推荐