저는 하둡에 초보자이며 다음과 같은 문제가 있습니다. 내가하려는 것은 데이터베이스의 샤드를 맵핑하는 것입니다 (왜 그런 작업을해야하는지 묻지 말기 바란다). 그리고 나서이 데이터에 대해 특정 작업을 수행하고, 결과를 감속기에 출력하고, 그 출력을 다시 사용한다. 동일한 샤드 형식을 사용하여 동일한 데이터에 대해 두 번째 단계 맵/축소 작업을 수행합니다. Hadoop은 데이터베이스의 샤드를 보내는 입력기를 제공하지 않습니다. LineInputFormat 및 LineRecordReader를 사용하여 한 줄씩 보낼 수 있습니다. 이 경우 NLineInputFormat도 도움이되지 않습니다. 필자 자신의 InputFormat을 작성하기 위해 FileInputFormat 및 RecordReader 클래스를 확장해야합니다. 기본 코드가 FileSplits 및 파일 분할과 관련된 모든 문제를 이미 다루었 기 때문에 LineRecordReader를 사용하는 것이 좋습니다. 지금해야 할 일은 정확히 어떻게 알지는 못하는 nextKeyValue() 메서드를 재정의하는 것입니다.새 API를 사용하는 Hadoop 맞춤 입력 형식
for(int i=0;i<shard_size;i++){
if(lineRecordReader.nextKeyValue()){ lineValue.append(lineRecordReader.getCurrentValue().getBytes(),0,lineRecordReader.getCurrentValue().getLength());
}
위의 코드는 쓴하지만, 어떻게 든 잘 작동하지 않는 것입니다. 미리 감사드립니다.
은 같은 것입니다 this – Ahmedov