작은 입력 (~ 3MB, 크기 z의 정수 목록), 크기가 nxm 인 스파 스 매트릭스 캐시를 사용하는지도 축소 작업을 실행하고 있으며 기본적으로 z 스파 스 벡터를 출력합니다 차원 (nx 1). 여기 출력은 꽤 큽니다 (~ 2TB). S3 저장 장치가있는 Amazon EC2에서 20 m1 크기의 노드를 입력 및 출력으로 실행하고 있습니다.Hadoop S3 남아있는 공간 없음 장치
그러나 IOException이 발생합니다. 장치에 남은 공간이 없습니다. Hadoop 로그에 s3 바이트가 기록되어 있지만 파일이 생성되지 않은 것으로 보입니다. 작은 입력 (작은 z)을 사용하면 작업이 완료된 후 출력이 올바르게 나타납니다. 따라서 임시 저장 장치가 부족합니다.
임시 저장소의 위치를 확인할 방법이 있습니까? 또한, 재미있는 점은 로그가 모든 바이트가 s3에 쓰여지는 것을 말하고 있지만 파일이 보이지 않고이 바이트가 쓰여지는 위치를 모른다는 것입니다.
도움 주셔서 감사합니다.
예제 코드
public void map(LongWritable key, Text value,
Mapper<LongWritable, Text, LongWritable, VectorWritable>.Context context)
throws IOException, InterruptedException
{
// Assume the input is id \t number
String[] input = value.toString().split("\t");
int idx = Integer.parseInt(input[0]) - 1;
// Some operations to do, but basically outputting a vector
// Collect the output
context.write(new LongWritable(idx), new VectorWritable(matrix.getColumn(idx)));
};