아랫글은 pseudo-distributed모드 처음써봐서 벌어진 일이었는데,리듀서 수에 따라 part-r-00000, part-r-00001 이렇게 나뉘어서 출력되는거 못합쳐서 출력시키려나?
hadoop fs -getmerge /경로/part-r-*
또는 hadoop fs -text /경로/part-r-* > 출력물 경로
오호 그런게 있었군 ㄳㄳ 근데 코드화시킬순 없을까?
-getmerge는 병신같이도 압축된 파일을 그대로 출력해주기떄문에 .gz이나 .snappy같은걸로 출력할떄는 -text로 보내서 리디렉션 하도록 합니다
리듀서 하나당 파일 하나를 떨궈야 하기떄문에 코드화시키고 싶다면 reduce task를 1개만 돌리던지 최종 출력물을 하나로 모으도록 reduce 를 2-stage로 연결하는 방법이 있습니다
마지막 reduce 다음에 결과물 받아서 싸기만 하는 1개짜리 reduce task를 만들어서 붙여주면됨
매퍼 여러개 이어붙이는건 아는데 리듀서 뒤에 리듀서 붙이는것도 가능한가봄?
아니면 그냥 맵리듀스 태스크 하나 붙이는건가?
아 그래 맞다 기존 리듀서로 쓰던거 매퍼로 바꿔서 붙여놓고 리듀서한개짜리로 싸면 될거임
흠...리듀서가 갯수를 정의를 해줘야되서 아마 어려울듯 여튼 고마워!
물론 저는 병신이라 걍 한번 단순 맵리듀스 돌리고 거기서 싼걸 하나로 합치는 맵리듀스를 하나 더 만들어서 붙입니다
원래하던 맵리듀스 돌리고 그 output 경로에 있는 파일 전부 읽어서 reduce 하나로 다시 쓰기만하는 job만들어서돌리면됨
음냐.. 하둡이라.... 어렵네