2011-01-18 6 views
1

HDFS에서 행의 묶음을 가진 파일을 만들고 싶습니다. 각각의 파일은 서로 다른 호출을 통해 생성됩니다. 나는 선의 순서에 관심이 없다. 모든 선이 파일에 추가된다. 어떻게해야합니까?hadoop에서 파일에 어떻게 추가합니까?

이것이 불가능할 경우 고유 한 파일 이름을 생성하여 각 출력 행을 별도의 파일에 저장하는 표준 방법이 있습니까?

답변

1

현재는 hadoop의 기존 파일에 추가 할 방법이 없지만 어쨌든 원하는 것처럼 들리지는 않습니다. Map Reduce 작업의 결과를 하나의 파일로 가져오고 싶다는 생각이들 것 같습니다. 이는 가능합니다. 출력 파일 수는 감속기 수와 같거나 적습니다. 따라서 감속기 수를 1로 설정하면 출력 파일 하나가 생성됩니다.

당신이 가기 전에 당신이 정말로 원하는 것을 생각해보십시오. 당신은 병목을 줄이기 위해 단일 기계를 통해 모든 데이터를 전달해야하는 병목 목을 만들 것입니다. HDFS 분산 파일 시스템에서 하나의 파일을 갖는 것과 여러 파일을 갖는 것의 차이는 상당히 투명합니다. 클러스터 외부에 단일 파일을 원하면 파일 시스템 도구에서 getmerge을 사용하는 것이 더 좋습니다.

+1

이 답변은 잘못되었습니다. HDFS-200은 지난 두 릴리즈에서 CDH3에 포함되었으며 HDFS-265는 Apache Hadoop 0.21에 포함되었습니다. –

1

map 및 reduce 함수는 모두 행을 출력해야합니다. 즉, reduce 함수는 많이 수행하지 않는 통과 함수입니다. 축소 기의 수를 1로 설정하십시오. 출력은 하나의 파일에있는 모든 행의 목록입니다.

관련 문제