spark报错

1.sparksql 执行创建表的时候报错

org.apache.spark.sql.execution.QueryExecutionException: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:file:/user/hive/warehouse/student2 is not a directory or unable to create one)

可能是没有启动hive元数据服务

在使用hive开始前,如果mysql是部署在远端且  hive.metastore.local=false
则需要启动hive的metadata服务
  1. $ hive --service metastore   

2.java.lang.IllegalArgumentException: requirement failed: No output operations registered, so nothing to execute

解决方法:tranformation最后一步产生的那个RDD必须有相应Action操作,例如massages.print()等


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
  • 1
  • 2

原因及解决办法: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.
  • 1

原因及解决办法: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
  • 1
  • 2

资源不足

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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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。经过测试,增大此值后,不再有追不上的情况



你可能感兴趣的:(spark报错)