2016-06-13 1 views
0

2 개의 가상 시스템으로 구성된 Spark Standalone Cluster를 만들었습니다.
첫 번째 VM (8 코어, 64GB 메모리)에서 bin/spark-class org.apache.spark.deploy.master.Master 명령을 사용하여 수동으로 마스터를 시작했습니다.
두 번째 VM (8 코어, 64GB 메모리)에서
bin/spark-class org.apache.spark.deploy.worker.Worker spark://<hostname of master>:7077을 사용하여 수동으로 슬레이브를 시작했습니다.
그런 다음 첫 번째 VM에서 위의 슬레이브 명령을 사용하여 슬레이브를 시작했습니다. 아래 그림에서 작업자 모두 & 마스터가 시작되었음을 알 수 있습니다. & 살아 있습니다.모든 노드가 Spark Standalone 클러스터에서 사용되지 않습니다.

하지만 Spark 응용 프로그램을 실행할 때 두 번째 VM의 작업자 만 실행됩니다 (worker-20160613102937-10.0.37.150-47668). 첫 번째 VM (worker-20160613103042-10.0.37.142-52601) 작업자가 실행되지 않습니다. 아래 그림

Spark Standalone Cluster UI

나는 노동자들은 내 스파크 응용 프로그램에서 사용할 수 있어야 원하는 모두를 참조하십시오. 어떻게 할 수 있습니까?

EDIT : VM 1st의 작업자에 해당하는 Executor가 실패한 Executor summary의 그림을 참조하십시오. 내가 stdout 또는 stderr 하나를 클릭하면

Executor Summary

, 그것은 invalid log directory의 오류를 보여줍니다. 오류가 해결

error

+0

처리중인 입력 데이터가 2 집행자 전체로 분할 될만큼 큰가요? –

답변

0

아래 그림을 참조하십시오. Spark가 첫 번째 VM에서 로그 디렉토리를 만들지 못했습니다. Spark 작업을 제출 한 사용자에게 경로 /usr/local/spark에 파일을 만들 권한이 없습니다. 단지 디렉토리의 읽기/쓰기 권한을 변경하면 (chmod -R 777 /usr/local/spark) 트릭을 만들었습니다.