[HADOOP] Hadoop이 시스템의 모든 코어를 사용하게 만드는 방법은 무엇입니까?
HADOOPHadoop이 시스템의 모든 코어를 사용하게 만드는 방법은 무엇입니까?
나는 32 코어 시스템을 가지고있다. Hadoop을 사용하여 MapReduce 작업을 실행할 때 java 프로세스가 150 % 이상의 CPU를 사용하는 것을 보지 못했고 (일반적으로 100 % 표시) 그것은 3200 %에 가깝습니다.
더 많은 근로자를 허용하기 위해 어떤 파일을 변경해야합니까?
해결법
-
==============================
1.아래에서 개략적으로 설명 할 두 가지 문제가있을 수 있습니다. 또한이 질문은 매우 일반적인 질문이며 이전에 질문 한 하둡 질문을 살펴보아야합니다.
아래에서 개략적으로 설명 할 두 가지 문제가있을 수 있습니다. 또한이 질문은 매우 일반적인 질문이며 이전에 질문 한 하둡 질문을 살펴보아야합니다.
mapred.tasktracker.map.tasks.maximum은 conf / mapred-site.xml에서 낮게 설정할 수 있습니다. JobTracker를 확인할 때 몇 가지 보류중인 작업이 있지만 실행중인 작업은 몇 개만 있으면 문제가 될 수 있습니다. 각 작업은 단일 스레드이므로 노드에 최대 32 개의 슬롯이 필요합니다.
그렇지 않으면 데이터가 충분한 청크로 분할되지 않을 가능성이 있습니다. 소량의 데이터를 실행하고 있습니까? MapReduce 작업이 소수의 입력 스플릿에서만 실행되므로 더 많은 매퍼가 필요하지 않을 수 있습니다. 수백 MB의 데이터를 대신 실행하여 동일한 문제가 계속 발생하는지 확인하십시오. Hadoop은 자동으로 파일을 분할합니다. 파일이 분할되는 블록 수는 파일의 전체 크기를 블록 크기로 나눈 값입니다. 기본적으로 하나의지도 작업이 각 파일이 아닌 각 블록에 지정됩니다.
conf / hdfs-site.xml 구성 파일에는 dfs.block.size 매개 변수가 있습니다. 대부분의 사람들은 이것을 64 또는 128MB로 설정합니다. 그러나, 만약 당신이 작은 것을하려고한다면, 이것을 설정하여 작업을 좀더 나눌 수 있습니다.
파일을 수동으로 32 개의 청크로 분할 할 수도 있습니다.
-
==============================
2.기본 값이 "local"이므로 "mapreduce.framework.name"을 "yarn"으로 설정해야한다고 생각합니다.
기본 값이 "local"이므로 "mapreduce.framework.name"을 "yarn"으로 설정해야한다고 생각합니다.
mapred-site.xml에 다음을 입력하십시오.
<property> <name>mapreduce.framework.name</name> <value>yarn</value> </property>
from https://stackoverflow.com/questions/7707106/how-to-make-hadoop-use-all-the-cores-on-my-system by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] Hive 0.12 및 Hadoop 2.2.0-cdh5.0.0-beta2의 SerDe 문제 (0) | 2019.06.24 |
---|---|
[HADOOP] 파이썬 오류로 Hadoop 스트리밍 명령 실패 (0) | 2019.06.24 |
[HADOOP] 어떻게 (Hadoop에서), 데이터를지도에 넣고 올바른 유형의 함수를 축소합니까? (0) | 2019.06.24 |
[HADOOP] PIG에서 생성 된 bag (크기가 다를 수 있음)에서 첫 번째 튜플을 어떻게 추출합니까? (0) | 2019.06.24 |
[HADOOP] 어떻게 사용자 정의 RecordReader 및 InputFormat 클래스의 단위 테스트를 수행합니까? (0) | 2019.06.24 |