본 퀴즈는 University of California, San Diego의 Super Computer Center, Paul Rodriguez님의 강의에 포함된 내용이다. 해당 퀴즈에 대한 답은 올려놓지 않을 계획이므로 아래 내용을 잘 따라하고 직접 풀어보기 바란다. 하둡 맵리듀스 Join 활용 예제 를 참고하면 쉽게 구현할 수 있을 것이다. 아래 예제에 따라 데이터 파일을 생성하고 조인하는 맵리듀스를 파이썬으로 구현해 보도록 하자. 1. 퀴즈에 사용할 데이터 파일을 생성하는 다음 파이썬 소스를 make_join2data.py 파일로 저장한다. #!/usr/bin/env python import sys # ------------------------------------------------------..
하둡 맵리듀스를 활용하다 보면 서로 다른 유형의 데이터 셋을 조인해야 하는 경우가 종종 있다. SQL에서 테이블간 조인을 생각해 보면 된다. Word Count 예제를 기반으로 맵리듀스의 조인을 고려해 보자. 특정 단어의 개수를 세는데 파일 하나는 전체 기간을 대상으로 하고, 다른 파일은 월별로 각 단어의 개수를 나타낸다고 해보자. 아래의 두 파일을 하나로 합쳐서 형태로 합쳐서 출력하는 부분을 하둡 맵리듀스로 구현해보는 것이다. join1_FileA.txt able,991 about,11 burger,15 actor,22 join1_FileB.txt Jan-01 able,5 Feb-02 about,3 Mar-03 about,8 Apr-04 able,13 Feb-22 actor,3 Feb-23 burger..
클라우데라의 QuickStart VM을 활용해서 하둡 맵리듀스를 처리하는 예제를 살펴보기로 하자. 만약 VM이 설치되어 있지 않다면, QuickStart VM 설치하기 글을 참고하기 바란다. 테스트할 예제는 가장 기본적인 WordCount 예제이다. 해당 소스에 대한 설명은 WordCount 맵리듀스 테스트 글을 살펴보기 바란다. Word Count 테스트 이제 QuickStart VM을 통해서 Word Count를 해보기로 하자. 1. VM에서 터미널을 열고 다음 명령어로 hadoop-mapreduce-examples.jar 파일이 있는 곳으로 이동하고 해당 파일을 확인한다. > cd /usr/lib/hadoop-mapreduce/ > ls *examples.jar 2. hadoop jar 명령어로 w..
맵리듀스 개요 맵리듀스(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에 속하는 항목으로 정렬을 하고 싶다든지, 하는 경우에 많은 개발자들이 어려움을..
빅데이터의 사례로 가장 많이 이야기하는 것이 바로 "Google 독감 트렌드"입니다. 구글에 집계된 검색어를 기반으로 세계 여러 국가의 독감 유행 수준에 대한 예상 수치를 제공하는 것인데요. 이를 기반으로 빅데이터에 대한 전략이 어떻게 만들어졌는지 한번 생각해 보기로 했습니다. 데이터 수집구글 검색어가 자동으로 구글의 서버에 쌓이게 되므로 데이터의 축적은 기본적으로 이루어졌을 것입니다. 또한 검색어는 시간에 따른 분포를 나타낸다는 점과 IP를 통한 위치를 파악할 수 있다는 것을 활용한 것이라 볼 수 있습니다. 즉, 검색어, 시간대, 그리고 위치 정보를 활용해서 독감 트렌드를 분석해 낸 것이죠. 먼저 독감(ILI - influenza likeness illness)과 관련된 키워드(ILI-related q..
하둡과 관련되어 작성한 글 목록을 먼저 보여드립니다. 참고하시기 바랍니다. 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를 사용하고 있는데요. ..