작업 중 발생한 Spark 오류(계속 업데이트)

7134 단어 일행
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 SPARKCLASSPATH
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. 스파크는 익명 내부류를 사용하는데 이상은 위층으로 던질 수 없습니다.
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 모드든 드라이브는 JVM에서 실행되지만 클라이언트 모드에서 드라이브의 기본 JVM의 영구 세대 크기는 128M이고 클라이언트 모드에서 기본 크기는 82M이다.해결 방법:spark-submit에서 conf 부분의spark를 설정합니다.driver.extraJavaOptions:-XX:PermSize=256M –MaxPermSize=256M
12. Spark driver stack overflow 일반적으로 두 가지가 있다.지나치게 깊은 귀속 2.너무 복잡한 업무의 호출 체인(드물게)spark에 SparkSql에 너무 많은 OR가 나타날 수 있습니다. 왜냐하면 sql에서sparkSql는Catalyst를 통해 먼저 나무가 되고 결국은 RDD의 인코딩이 되기 때문입니다.
13. spark streaming kafka can not found leader 원인 1.repatition은 1입니다. 끊으면 리더를 찾을 수 없습니다.2. Repatition > 1 이지만 데이터가 동기화되어leader를 따라가지 못하여syns 목록에서 제거합니다.해결 방법: 1.repatition 수를 늘리면 됩니다.num.replica. 증가fetchers의 값, 이 매개 변수는 Replicas가 Leader에서 데이터를 동기화하는 스레드 수입니다. 기본값은 1입니다. 이 매개 변수를 증가하면 동기화 IO가 증가합니다.테스트를 통해 이 값을 증가하면 더 이상 따라잡을 수 없는 상황이 없습니다

좋은 웹페이지 즐겨찾기