[HADOOP] Eclipse의 하둡 및 리듀서 수
HADOOPEclipse의 하둡 및 리듀서 수
내 mapReduce 프로그램에서 Partitionner를 사용해야합니다.
public class TweetPartitionner extends HashPartitioner<Text, IntWritable>{
public int getPartition(Text a_key, IntWritable a_value, int a_nbPartitions) {
if(a_key.toString().startsWith("#"))
return 0;
else
return 1;
}
}
그리고 축소 작업 수를 설정했습니다. job.setNumReduceTasks (2);
그러나 다음과 같은 오류가 발생합니다. java.io.IOException : #rescinfo의 잘못된 파티션 (1)
매개 변수 a_nbPartitions는 1을 반환합니다.
다른 게시물을 읽었습니다. Hadoop : 감속기의 수가 프로그램에서 설정 한 것과 같지 않습니다.
Cygwin에 설치된 Hadoop 0.20.2를 개발하고 물론 Eclipse를 사용합니다. 어떻게해야합니까?
해결법
-
==============================
1.실제로 전용 Hadoop 클러스터가 필요하지 않습니다. 단지 의사 분산 클러스터에서이 작업을 실행하고 자체적으로 로컬로 실행하지 않도록 Eclipse에 알려 주어야합니다. 그렇게하려면 코드에 다음 줄을 추가해야합니다.
실제로 전용 Hadoop 클러스터가 필요하지 않습니다. 단지 의사 분산 클러스터에서이 작업을 실행하고 자체적으로 로컬로 실행하지 않도록 Eclipse에 알려 주어야합니다. 그렇게하려면 코드에 다음 줄을 추가해야합니다.
Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://localhost:9000"); conf.set("mapred.job.tracker", "localhost:9001");
그리고 그 후 감속기를 2를 통해 설정하십시오.
job.setNumReduceTasks(2);
그리고 네, 파티 셔너 로직에 대해 매우 확신해야합니다. 이 페이지를 방문하면 커스텀 파티 셔 너를 작성하는 방법을 알 수 있습니다.
HTH
-
==============================
2.작업을 실행할 전용 hadoop 클러스터가있을 때까지 로컬 모드에서 둘 이상의 감속기를 가질 수있는 방법은 없습니다. 그래도 작업을 hadoop 클러스터에 제출하도록 Eclipse를 구성 할 수 있으며 구성이 고려됩니다.
작업을 실행할 전용 hadoop 클러스터가있을 때까지 로컬 모드에서 둘 이상의 감속기를 가질 수있는 방법은 없습니다. 그래도 작업을 hadoop 클러스터에 제출하도록 Eclipse를 구성 할 수 있으며 구성이 고려됩니다.
모든 경우에, 자신의 파티 셔 너를 작성할 때 항상 return Math.min (i, a_nbPartitions-1)을 사용해야합니다.
from https://stackoverflow.com/questions/17298659/hadoop-and-number-of-reducers-in-eclipse by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 내 프로그램을 실행하는 동안 hadoop 메시지가 표시됩니다. 무슨 뜻이에요? (0) | 2019.09.12 |
---|---|
[HADOOP] 원사 미니 클러스터 컨테이너 로그 디렉토리에 syslog 파일이 없습니다 (0) | 2019.09.12 |
[HADOOP] hadoop 작업 관리자 UI는 어디에 있습니까 (0) | 2019.09.12 |
[HADOOP] MapReduce : 줄 바꿈없이 키 / 값 쌍을 출력하려면 어떻게해야합니까? (0) | 2019.09.12 |
[HADOOP] HBase : / hbase / meta-region-server 노드가 없습니다 (0) | 2019.09.12 |