[HADOOP] Spark : 클러스터 UI를 확인하여 근로자가 등록되었는지 확인하십시오.
HADOOPSpark : 클러스터 UI를 확인하여 근로자가 등록되었는지 확인하십시오.
나는 Spark에서 간단한 프로그램을 가지고있다.
/* SimpleApp.scala */
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object SimpleApp {
def main(args: Array[String]) {
val conf = new SparkConf().setMaster("spark://10.250.7.117:7077").setAppName("Simple Application").set("spark.cores.max","2")
val sc = new SparkContext(conf)
val ratingsFile = sc.textFile("hdfs://hostname:8020/user/hdfs/mydata/movieLens/ds_small/ratings.csv")
//first get the first 10 records
println("Getting the first 10 records: ")
ratingsFile.take(10)
//get the number of records in the movie ratings file
println("The number of records in the movie list are : ")
ratingsFile.count()
}
}
스파크 쉘에서이 프로그램을 실행하려고하면 즉, 이름 노드 (Cloudera 설치)에 로그인하고 spark-shell에서 명령을 순차적으로 실행합니다.
val ratingsFile = sc.textFile("hdfs://hostname:8020/user/hdfs/mydata/movieLens/ds_small/ratings.csv")
println("Getting the first 10 records: ")
ratingsFile.take(10)
println("The number of records in the movie list are : ")
ratingsFile.count()
올바른 결과를 얻을 수 있지만 이클립스에서 프로그램을 실행하려고하면 리소스가 프로그램에 할당되지 않고 콘솔 로그에 모두 표시됩니다.
WARN TaskSchedulerImpl : 초기 작업이 모든 리소스를 수락하지 않았습니다. 작업자가 등록되어 충분한 자원을 보유하고 있는지 확인하려면 클러스터 UI를 확인하십시오
또한, 스파크 UI에서, 나는 이것을 본다 :
작업 계속 실행 - 스파크
또한이 버전의 스파크는 Cloudera와 함께 설치되었습니다 (따라서 작업자 노드가 표시되지 않음).
이 작업을하려면 어떻게해야합니까?
편집하다:
HistoryServer를 확인한 결과 이러한 작업이 표시되지 않습니다 (불완전한 응용 프로그램에서도)
해결법
-
==============================
1.많은 스파크 클러스터에 대한 구성 및 성능 튜닝을 수행했으며 이는 작업 부하를 처리하기 위해 클러스터를 처음으로 준비 / 구성하는시기를 확인하는 매우 일반적인 / 일반적인 메시지입니다.
많은 스파크 클러스터에 대한 구성 및 성능 튜닝을 수행했으며 이는 작업 부하를 처리하기 위해 클러스터를 처음으로 준비 / 구성하는시기를 확인하는 매우 일반적인 / 일반적인 메시지입니다.
이것은 일을 시작하기에 불충분 한 자원으로 인한 것입니다. 작업에서 다음 중 하나를 요청하고 있습니다.
-
==============================
2.마지막으로 대답이 무엇인지 알아 냈습니다.
마지막으로 대답이 무엇인지 알아 냈습니다.
YARN 클러스터에 스파크 프로그램을 배포 할 때 마스터 URL은 단지 원사입니다.
따라서 프로그램에서 스파크 컨텍스트는 다음과 같아야합니다.
val conf = new SparkConf().setAppName("SimpleApp")
그런 다음이 이클립스 프로젝트는 Maven을 사용하여 빌드해야하며 생성 된 jar는 클러스터에 복사 한 후 다음 명령을 실행하여 클러스터에 전개해야한다.
spark-submit --master yarn --class "SimpleApp" Recommender_2-0.0.1-SNAPSHOT.jar
이것은 일식에서 직접 실행하는 것은 작동하지 않는다는 것을 의미합니다.
-
==============================
3.클러스터의 작업 노드 코어를 확인할 수 있습니다. 응용 프로그램이이를 초과 할 수 없습니다. 예를 들어 두 개의 작업 노드가 있습니다. 그리고 작업 노드 당 4 개의 코어가 있습니다. 그런 다음 2 개의 응용 프로그램을 실행할 수 있습니다. 따라서 모든 응용 프로그램에 4 개의 코어를 할당하여 작업을 실행할 수 있습니다.
클러스터의 작업 노드 코어를 확인할 수 있습니다. 응용 프로그램이이를 초과 할 수 없습니다. 예를 들어 두 개의 작업 노드가 있습니다. 그리고 작업 노드 당 4 개의 코어가 있습니다. 그런 다음 2 개의 응용 프로그램을 실행할 수 있습니다. 따라서 모든 응용 프로그램에 4 개의 코어를 할당하여 작업을 실행할 수 있습니다.
코드에서 다음과 같이 설정할 수 있습니다.
SparkConf sparkConf = new SparkConf().setAppName("JianSheJieDuan") .set("spark.cores.max", "4");
그것은 나를 위해 작동합니다.
-
==============================
4.여기에 게시 된 것과 다른 오류 메시지의 원인도 있습니다.
여기에 게시 된 것과 다른 오류 메시지의 원인도 있습니다.
spark-on-mesos 클러스터의 경우, mesos 슬레이브에 java8 이상의 java 버전이 있는지 확인하십시오.
독립 실행 형 스파크의 경우 작업자에게 java8 이상이 설치되어 있는지 확인하십시오.
-
==============================
5.직업을 수행 할 노동자가 없습니다. 작업을 실행할 수있는 코어가 없기 때문에 작업 상태가 '대기 중'에 남아있는 이유입니다.
직업을 수행 할 노동자가 없습니다. 작업을 실행할 수있는 코어가 없기 때문에 작업 상태가 '대기 중'에 남아있는 이유입니다.
Cloudera에 등록 된 근로자가없는 경우 어떻게 일이 수행됩니까?
from https://stackoverflow.com/questions/35662596/spark-check-your-cluster-ui-to-ensure-that-workers-are-registered by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] SafeModeException : 이름 노드가 안전 모드에 있습니다. (0) | 2019.06.22 |
---|---|
[HADOOP] 하이브 작업 이름을 제어하지만 스테이지 정보를 유지하려면 어떻게해야합니까? (0) | 2019.06.22 |
[HADOOP] HTable (config, tablename) 유형은 더 이상 사용되지 않습니다. 대신 무엇을 사용합니까? (0) | 2019.06.22 |
[HADOOP] 필수 입력란 'client_protocol'이 설정되지 않았습니다. (0) | 2019.06.22 |
[HADOOP] 돼지 튜플을 Python UDF에 전달할 수 없습니다. (0) | 2019.06.22 |