본 퀴즈는 University of California, San Diego의 Super Computer Center, Paul Rodriguez님의 강의에 포함된 내용이다. 해당 퀴즈에 대한 답은 올려놓지 않을 계획이므로 아래 내용을 잘 따라하고 직접 풀어보기 바란다. 하둡 맵리듀스 Join 활용 예제 를 참고하면 쉽게 구현할 수 있을 것이다. 아래 예제에 따라 데이터 파일을 생성하고 조인하는 맵리듀스를 파이썬으로 구현해 보도록 하자. 1. 퀴즈에 사용할 데이터 파일을 생성하는 다음 파이썬 소스를 make_join2data.py 파일로 저장한다. #!/usr/bin/env python import sys # ------------------------------------------------------..
맵리듀스 개요 맵리듀스(MapReduce)는 기존 하드웨어를 활용한 분산 프로그래밍 모델로서, 대용량 데이터를 빠르고 안전하기 처리하기 위해 만들었다. 2014년 OSDI 컨퍼런스에서 구글이 "MapReduce : Simplified Data Processing on Large Clusters" 논문을 발표한 이후, 맵리듀스는 관심을 받기 시작했다. 그리고 오픈소스 루씬(Lucene)의 개발자인 더그 커팅(Doug Cutting)이 하둡(Hadoop)을 만들면서 맵리듀스가 널리 알려졌다. 하둡 오픈 소스 프로젝트는 구글의 분산 기술(GFS, MapReduce)을 기반으로 2006년부터 시작했다. 하둡 파일 시스템(HDFS)는 대규모 분산 파일 시스템 구축의 성능과 안전정을 보여줬고, 맵리듀스는 HDFS에..
하둡(Hadoop) 프로젝트를 진행할 때 사람들의 고민이 무엇일까? 하고 생각해 봤습니다. Java 언어에 익숙하더라도 첫번째로 만나는 문제는 역시 맵리듀스(MapReduce)가 아닐까 합니다. 맵리듀스는 맵과 리듀스가 합쳐진 것으로 각각의 Map 함수와 Reduce 함수를 구현하고 JobClient를 통해 호출해야 합니다. 그런데 일반적으로 하둡 프로젝트에서 한번만 맵리듀스를 사용하는 경우는 거의 없습니다. 대부분 맵 리듀스를 반복적으로 사용하게 됩니다. 여기에 맵리듀스에서 기본적으로 사용하는 타입인 Text, IntWritable, LongWritable과 같은 것 이외에 객체를 사용한다든지. Key 항목이 아닌 Value에 속하는 항목으로 정렬을 하고 싶다든지, 하는 경우에 많은 개발자들이 어려움을..
하둡과 관련되어 작성한 글 목록을 먼저 보여드립니다. 참고하시기 바랍니다. 2012/02/29 - [리뷰/블로그] - BigData 처리를 위한 맵리듀스(MapReduce)에 대하여~ 2012/05/18 - [프로그래밍/Java] - 하둡(Hadoop) 설치부터 테스트까지 정리~ 2012/05/22 - [프로그래밍/Java] - 하둡 맵리듀스 프로그래밍을 위한 이클립스 플러그인 설정 #1 지난 시간에 Mac에 이클립스 플러그인을 설치하는 과정을 살펴봤는데요. 마지막에 설명한 것처럼 플러그인의 장점을 충분히 살리지 못하고 있으며 약간의 버그들도 존해하기 때문에 큰 의미가 없었습니다. 그래서 이번에는 일반적인 자바 프로젝트로 개발 환경을 설정하고 word count를 처리하는 예제를 실제로 실행해 보도록 하..
요즘 하둡(Hadoop)을 계속해서 테스트해보고 있습니다. 지난번에 설치는 2012/05/18 - [프로그래밍/Java] - 하둡(Hadoop) 설치부터 테스트까지 정리~ 에서 정리했었는데요. 이번에는 맵리듀스 프로그래밍을 위한 이클립스 설정을 살펴보도록 하겠습니다. 참고로 이번부터는 맥에서 하둡을 설치하고 테스트를 진행했네요. Apache Ant / Ivy 다운로드 및 설치하둡 내부의 소스 폴더를 보면 ant build를 많이 사용하고 있습니다. 자바 프로젝트를 하면서 Ant는 기본적으로 설치되어 있을텐데요. 제 Mac에서도 /usr/share/java/ant-1.8.2/에 설치되어 있네요. Ant가 설치되어 있으면 이어서 Apache Ivy를 설치해야 합니다. 하둡에서도 Ivy를 사용하고 있는데요. ..