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元数据服务
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
原因及解决办法: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。经过测试,增大此值后,不再有追不上的情况