복붙노트

[HADOOP] Hadoop이 시스템의 모든 코어를 사용하게 만드는 방법은 무엇입니까?

HADOOP

Hadoop이 시스템의 모든 코어를 사용하게 만드는 방법은 무엇입니까?

나는 32 코어 시스템을 가지고있다. Hadoop을 사용하여 MapReduce 작업을 실행할 때 java 프로세스가 150 % 이상의 CPU를 사용하는 것을 보지 못했고 (일반적으로 100 % 표시) 그것은 3200 %에 가깝습니다.

더 많은 근로자를 허용하기 위해 어떤 파일을 변경해야합니까?

해결법

  1. ==============================

    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. ==============================

    2.기본 값이 "local"이므로 "mapreduce.framework.name"을 "yarn"으로 설정해야한다고 생각합니다.

    기본 값이 "local"이므로 "mapreduce.framework.name"을 "yarn"으로 설정해야한다고 생각합니다.

    mapred-site.xml에 다음을 입력하십시오.

    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    
  3. from https://stackoverflow.com/questions/7707106/how-to-make-hadoop-use-all-the-cores-on-my-system by cc-by-sa and MIT license