[HADOOP] 오류 : 감속기 단계에서 Java 힙 공간
HADOOP오류 : 감속기 단계에서 Java 힙 공간
나는 .I (41) 내 응용 프로그램에서 감속기 또한 사용자 정의 파티션 설정 클래스를 사용했습니다 내 감속기 단계에서 자바 힙 공간 오류를 얻고있다. 다음은 오류가 아래로 던져 내 감속기 코드입니다.
17/02/12 05:26:45 INFO mapreduce.Job: map 98% reduce 0%
17/02/12 05:28:02 INFO mapreduce.Job: map 100% reduce 0%
17/02/12 05:28:09 INFO mapreduce.Job: map 100% reduce 17%
17/02/12 05:28:10 INFO mapreduce.Job: map 100% reduce 39%
17/02/12 05:28:11 INFO mapreduce.Job: map 100% reduce 46%
17/02/12 05:28:12 INFO mapreduce.Job: map 100% reduce 51%
17/02/12 05:28:13 INFO mapreduce.Job: map 100% reduce 54%
17/02/12 05:28:14 INFO mapreduce.Job: map 100% reduce 56%
17/02/12 05:28:15 INFO mapreduce.Job: map 100% reduce 88%
17/02/12 05:28:16 INFO mapreduce.Job: map 100% reduce 90%
17/02/12 05:28:18 INFO mapreduce.Job: map 100% reduce 93%
17/02/12 05:28:18 INFO mapreduce.Job: Task Id : attempt_1486663266028_2653_r_000020_0, Status : FAILED
Error: Java heap space
17/02/12 05:28:19 INFO mapreduce.Job: map 100% reduce 91%
17/02/12 05:28:20 INFO mapreduce.Job: Task Id : attempt_1486663266028_2653_r_000021_0, Status : FAILED
Error: Java heap space
17/02/12 05:28:22 INFO mapreduce.Job: Task Id : attempt_1486663266028_2653_r_000027_0, Status : FAILED
Error: Java heap space
17/02/12 05:28:23 INFO mapreduce.Job: map 100% reduce 89%
17/02/12 05:28:24 INFO mapreduce.Job: map 100% reduce 90%
17/02/12 05:28:24 INFO mapreduce.Job: Task Id : attempt_1486663266028_2653_r_000029_0, Status : FAILED
Error: Java heap space
여기 내 감속기 코드입니다 ..
public class MyReducer extends Reducer<NullWritable, Text, NullWritable, Text> {
private Logger logger = Logger.getLogger(MyReducer.class);
StringBuilder sb = new StringBuilder();
private MultipleOutputs<NullWritable, Text> multipleOutputs;
public void setup(Context context) {
logger.info("Inside Reducer.");
multipleOutputs = new MultipleOutputs<NullWritable, Text>(context);
}
@Override
public void reduce(NullWritable Key, Iterable<Text> values, Context context)
throws IOException, InterruptedException {
for (Text value : values) {
final String valueStr = value.toString();
if (valueStr.contains("Japan")) {
sb.append(valueStr.substring(0, valueStr.length() - 20));
} else if (valueStr.contains("SelfSourcedPrivate")) {
sb.append(valueStr.substring(0, valueStr.length() - 29));
} else if (valueStr.contains("SelfSourcedPublic")) {
sb.append(value.toString().substring(0, valueStr.length() - 29));
} else if (valueStr.contains("ThirdPartyPrivate")) {
sb.append(valueStr.substring(0, valueStr.length() - 25));
}
}
multipleOutputs.write(NullWritable.get(), new Text(sb.toString()), "MyFileName");
}
public void cleanup(Context context) throws IOException, InterruptedException {
multipleOutputs.close();
}
}
당신은 내 문제를 해결할 변경을 제안 할 수 있습니다. 우리가 결합기 클래스를 사용하면 개선 할 것인가?
해결법
-
==============================
1.마지막으로 나는 그것을 해결하기 위해 관리.
마지막으로 나는 그것을 해결하기 위해 관리.
난 그냥 multipleOutputs.write (NullWritable.get (), 새로운 텍스트 (sb.toString ()), strName)를 사용, 루프의 그 19 기가 바이트 파일을 설정 매우 큰 데이터로 테스트 한 .I 내 문제를 해결하고 내부에 그 나를 위해 벌금을했다. 이것은 나의 최종 솔루션은 .Initially 내가 그것을 많은 개체를 만들 수 있지만 나 또한 매우 빠르고 경쟁 점점 감소 .MAP 것이 잘 작동 생각입니다.
@Override public void reduce(NullWritable Key, Iterable<Text> values, Context context) throws IOException, InterruptedException { for (Text value : values) { final String valueStr = value.toString(); StringBuilder sb = new StringBuilder(); if (valueStr.contains("Japan")) { sb.append(valueStr.substring(0, valueStr.length() - 20)); } else if (valueStr.contains("SelfSourcedPrivate")) { sb.append(valueStr.substring(0, valueStr.length() - 24)); } else if (valueStr.contains("SelfSourcedPublic")) { sb.append(value.toString().substring(0, valueStr.length() - 25)); } else if (valueStr.contains("ThirdPartyPrivate")) { sb.append(valueStr.substring(0, valueStr.length() - 25)); } multipleOutputs.write(NullWritable.get(), new Text(sb.toString()), strName); } }
from https://stackoverflow.com/questions/42186845/error-java-heap-space-in-reducer-phase by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] 가장 좋은 방법은 Sqoop을, HDFS와 하이브를 작동하려면 (0) | 2019.09.18 |
---|---|
[HADOOP] 어떻게 하이브, 돼지, Sqoop을하고 스파크의 이전 버전과 하둡-3.0.0의 호환성이 (0) | 2019.09.18 |
[HADOOP] 어떻게 테이블, 열, 뷰, 제약 키와 주석 열 하이브의 메타 데이터를 얻으려면? (0) | 2019.09.18 |
[HADOOP] 돼지에서 다른 행에서 한 행의 값을 빼기 (0) | 2019.09.18 |
[HADOOP] 몽고 - 하둡 커넥터를 사용하여 MongoDB와 하이브를 연결할 수 없습니다 (0) | 2019.09.18 |