spark工作遇到问题-1

问题一.standalone模式 No Space Left on the device

开始是用standalone运行,出现了这个问题。
是因为shuffle时候临时文件过多,因为没配临时文件路径,默认是/tmp。这个很小,所以满了。
在spark-env.sh加上export SPARK_LOCAL_DIRS=路径1,路径2可以修改临时文件目录。
但是因为盘较小,所以任务运行了一段时间有报这个错,看下配置的目录,的确满了。只好改成yarn模式

问题二. Container killed by YARN for exceeding memory limits. 2 GB of 2 GB physical memory used.

这个没有一点报错信息。一开始以为是spark的executor内存太小了,调大了,还是保持。这个研究半天,发现是原因
ExecutorMemory+MemoryOverhead之和大于yarn的container。把大小调对就行
后来我调到5G,比之前好点,但是运行一会还报Container killed by YARN for exceeding memory limits. 5 GB of 5 GB physical memory used.

问题三.从yarn管理器页面点击apllication看不到spark的UI

yarn proxy没启动
启动命令

sbin/yarn-daemon.sh start proxyserver

问题四.org.apache.spark.SparkException: Task not serializable

因为sc对象代入到方法里面。会进行序列化。增加@transent不让序列化就可以

 @transient
 val conf = {
      new SparkConf().setAppName("test").setMaster("local") 
  @transient
  val sc = new SparkContext(conf)
    }

猜你喜欢

转载自blog.csdn.net/jshazhang/article/details/79316669