工作中遇到的Spark错误(持续更新)

1.java.io.IOException: No spa ce left on device
原因及解决办法:磁盘空间不足

2.

2016-10-09 13:20:12  INFO main utils.VerifiableProperties:68 - Property zookeeper.connect is overridden to 
2016-10-09 13:20:33  INFO main consumer.SimpleConsumer:68 - Reconnect due to socket error: java.nio.channels.ClosedChannelException

原因及解决办法:kafka连接错误,1.要么地址配置错误 2.kafka没有启动 3.zk没有完全启动

3.Spark空指针
原因及解决办法:1.常常发生空指针的地方(用之前判断是否为空) 2.RDD与DF互换时由于字段个数对应不上也会发生空指针

4.

org.apache.spark.SparkException: Found both spark.executor.extraClassPath and SPARK_CLASSPATH. Use only the former.

原因及解决办法:Don’t set SPARK_CLASSPATH

5.Spark Streaming 报错:kafka.cluster.BrokerEndPoint cannot be cast to kafka.cluster.Broker
原因及解决办法:Kafka: 1.Spark Streaming 1.6.2/1.5 is compatible with Kafka 0.8.2.1,秩序将pom.xml中kafka版本改一下即可。2.kafka序列化问题(引包错误等)

6.

WARN Timer-0 scheduler.TaskSchedulerImpl:70 - Initial job has not accepted any resources; check your cluster UI to ensure that workers are registered a
nd have sufficient resources

资源不足

7.一直都Added jobs for time 1476335820000 ms
查看日志,才能发现问题

8.yarn-client:16/11/08 10:22:46 INFO yarn.Client: Application report for application_1478571349204_0002 (state: ACCEPTED)
资源不足

9.spark用的是匿名内部类,异常是抛不到上一层的。

10.机器重启,yarn关闭程序都会造成这种现象

16/11/29 00:03:00 ERROR scheduler.JobScheduler: Error in job generator
java.lang.NullPointerException
        at org.apache.spark.storage.BlockManagerMaster. (BlockManagerMaster.scala:104)
        at org.apache.spark.SparkContext.unpersistRDD(SparkContext.scala:1623)
        at org.apache.spark.rdd.RDD.unpersist(RDD.scala:203)
        at org.apache.spark.streaming.dstream.DStream$$anonfun$clearMetadata$3.apply(DStream.scala:469)
        at org.apache.spark.streaming.dstream.DStream$$anonfun$clearMetadata$3.apply(DStream.scala:468)
        at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(HashMap.scala:107)
        at scala.collection.mutable.HashMap$$anon$2$$anonfun$foreach$3.apply(HashMap.scala:107)
        at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:226)

Spark可以自己监测“缓存”空间的使用,并使用LRU算法移除旧的分区数据。我们也可以通过显式调用RDD unpersist()手动移除数据。

11.yarn-client模式下没有OOM但yarn-cluster模式下OOM了,则一定是driver端OOM的,更进一步是永久代的OOM
无论是client模式还是Cluster模式,driver都是运行在JVM中的,但Client模式下Driver默认的JVM的永久代大小是128M,而Cluster模式下默认大小为82M.
解决办法:在spark-submit时候设定conf部分的spark.driver.extraJavaOptions:-XX:PermSize=256M –MaxPermSize=256M

12.Spark中driver的stack overflow 堆栈溢出
一般有两种:
1.过于深度的递归
2.过于复杂业务的调用链(很少见)
spark之所以会出现可能是SparkSql中过多的OR,因为sql在sparkSql会通过Catalyst首先变成一颗树并最终变成RDD的编码

13.spark streaming连接kafka报can not found leader
原因
1.repatition为1,挂掉之后就找不到leader了。
2.repatition>1,但由于数据同步跟不上leader,从syns列表中将其移除。
解决办法:
1.增大repatition数即可
2.增大num.replica.fetchers的值,此参数是Replicas从Leader同步数据的线程数,默认为1,增大此参数即增大了同步IO。经过测试,增大此值后,不再有追不上的情况

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shengjk1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值