내 Apache Spark 독립 실행 형 클러스터는 갑자기 screen
. (참고로 나는 화면을 제거하고 컴퓨터를 재부팅했습니다). 기본적으로 발생한 것은 애플리케이션 마스터가 환경 구성로드를 거부 spark-submit
하여 결국 시간이 초과 될 때까지 내 정지 상태를 유지한다는 것입니다. AM 환경 페이지는 다음과 같습니다.
Spark 작업을 제출하는 방법은 다음과 같습니다.
$SPARK_HOME/bin/spark-submit --class app.package.TrainNetSpark --master spark://master.cluster:7077 --deploy-mode client --driver-memory 28G --executor-memory 14G --num-executors 7 --executor-cores 8 --conf spark.driver.maxResultSize=20g --conf spark.executor.heartbeatInterval=10000000 --conf spark.network.timeout=50000000 path/to/my.jar
모든 슬레이브와 마스터 노드에서 리소스가 해제되었는지 확인할 수 있습니다. 갑자기 모든 것이 잘 돌아가는 것 같습니다.
16:57:08,010 ERROR ~ Application has been killed. Reason: All masters are unresponsive! Giving up.
16:57:08,095 ERROR ~ Error communicating with MapOutputTracker
java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireSharedNanos(AbstractQueuedSynchronizer.java:1325)
...
16:57:08,099 ERROR ~ Uncaught exception in thread appclient-registration-retry-thread
org.apache.spark.SparkException: Error communicating with MapOutputTracker
at org.apache.spark.MapOutputTracker.askTracker(MapOutputTracker.scala:114)
at org.apache.spark.MapOutputTracker.sendTracker(MapOutputTracker.scala:120)
...
16:57:08,103 ERROR ~ Uncaught exception in thread Thread[appclient-registration-retry-thread,5,main]
org.apache.spark.SparkException: Exiting due to error from cluster scheduler: All masters are unresponsive! Giving up.
내 spark-defaults.conf
모습은 다음과 같습니다.
spark.master spark://master.cluster:7077
spark.driver.memory 30g
spark.driver.cores 4
spark.driver.maxResultSize 20g
spark.executor.extraLibraryPath /usr/lib
spark.driver.port 7001
spark.fileserver.port 7002
spark.broadcast.port 7003
spark.replClassServer.port 7004
spark.blockManager.port 7005
spark.executor.port 7006
spark.broadcast.factory org.apache.spark.broadcast.HttpBroadcastFactory
spark.serializer org.apache.spark.serializer.KryoSerializer
신청서에서 아무것도 변경하지 않았 음을 확인할 수 있습니다. 유일한 차이점은 screen
동작이 시작될 때 내부에서 작업을 실행하려고한다는 것 입니다. 이후 화면을 제거하고 마스터를 하드 다시 시작하고 작업자 데몬을 다시 시작했습니다.
핵심 문제는 애플리케이션 마스터가 런타임 정보를 성공적으로로드하지 못한다는 것입니다. 이 문제를 어떻게 해결할 수 있습니까? 감사!
문제를 (이상하게도) 내 spark-submit
기능으로 좁혔습니다 . 마스터를 제외한 모든 매개 변수를 제거하면 애플리케이션이 예상대로 계속됩니다. 제출 명령에 어떤 문제가 있습니까?
모든 환경 변수를 재설정하고 다음을 수행하는 문제를 해결할 수있었습니다.
나는 추가 SPARK_HOME
, SPARK_MASTER_IP
, SPARK_MASTER_PORT
, 그리고 SPARK_CONF_DIR
내에 bash_profile
. 그런 다음 원래 spark-submit
명령 의 모든 구성 변수 를 spark-defaults.conf
. 마스터를 다시 시작했습니다. 마지막 spark-submit
으로 다음과 같이 정리 를 사용했습니다 .
$SPARK_HOME/bin/spark-submit --class my.package.TrainNetSpark --master spark://master.cluster:7077 path/to/my.jar
로그 아웃했다가 다시 로그인했는데 다시 작동했습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다