"클라우데라 QuickStart VM 설치 후 먼저 HDFS 명령어를 통해 하둡 파일시스템에 파일을 올리는 간단한 예제를 살펴보고, Hue 인터페이스로도 확인해 보기로 하자. 1. VM에서 상단의 터미널 아이콘을 클릭한다. 2. 터미널에서 testfile.txt를 생성하고 하둡 파일시스템에 업로드한다. HDFS의 ls 명령어로 실제 파일이 업로드 된 것을 확인할 수 있다. 3. 이제 웹 브라우저 기반의 HUE 인터페이스를 통해서 해당 파일을 살펴보자. 웹브라우저의 북마크에서 Hue를 클릭하고 우측 상단의 "File Browser"를 선택한다. 여기에서도 testfile.txt 파일이 올라가 있는 것을 확인할 수 있다. 4. testfile.txt 파일을 클릭하면 해당 파일의 상세 내역을 볼 수 있다. 또..
클라우데라에서 하둡 에코 시스템의 테스트를 위한 QuickStart VM을 제공하고 있다. Hadoop 2.0, Spark, Hive, Pig, HBase, Sqoop, Flume 등 하둡 관련 시스템을 일일이 설치하지 않고 가상환경에서 마음껏 테스트 할 수 있는 환경을 제공한다. 또한 사전에 포함된 데이터를 통해서 각종 기능을 테스트할 수 있는 "Getting Started"도 있으므로 하둡에 관심이 있으면 한번쯤 설치해서 사용해보기 바란다. QuickStart VM 다운로드 및 설치 QuickStartVM은 VMWare, KVM, VirtualBox의 VM으로 각각 제공되는데 VirtualBox를 통해서 설치해보기로 한다. 1. https://www.virtualbox.org/wiki/Download..
아파치 진영을 중심으로 하둡 기반의 다양한 어플리케이션을 통해서 실시간 처리, 기계학습, 그래프 분석 등을 수행하고 있다. 하둡의 기본 개념이 구글 시스템에서 시작된 만큼 먼저 구글의 분산 처리 구성을 살펴본다. 그리고 아파치에서 제공하는 하둡 에코시스템의 구성을 알아본 후, 클라우데라, 페이스북, 야후, 링크드인 등에서 이를 활용하는 구조를 정리해 본다. 결국 회사의 용도에 맞춰서 기술들을 잘 조합해서 사용하는 것이 관건인 듯하다. 물론 필요에 따라 클라우데라의 임팔라나 링크드인의 카프카와 같이 직접 만들수도 있지만 말이다. 구글 빅데이터 스택 구글은 Chubby라는 'Coordination'을 사용하고, 데이터스토어로는 Big Table을 쓰고 있다. 그리고 맵리듀스의 상위 언어로 Sawzall을 사..
맵리듀스 개요 맵리듀스(MapReduce)는 기존 하드웨어를 활용한 분산 프로그래밍 모델로서, 대용량 데이터를 빠르고 안전하기 처리하기 위해 만들었다. 2014년 OSDI 컨퍼런스에서 구글이 "MapReduce : Simplified Data Processing on Large Clusters" 논문을 발표한 이후, 맵리듀스는 관심을 받기 시작했다. 그리고 오픈소스 루씬(Lucene)의 개발자인 더그 커팅(Doug Cutting)이 하둡(Hadoop)을 만들면서 맵리듀스가 널리 알려졌다. 하둡 오픈 소스 프로젝트는 구글의 분산 기술(GFS, MapReduce)을 기반으로 2006년부터 시작했다. 하둡 파일 시스템(HDFS)는 대규모 분산 파일 시스템 구축의 성능과 안전정을 보여줬고, 맵리듀스는 HDFS에..
하둡과 관련해 HDFS(하둡 파일 시스템), MapReduce(맵리듀스)를 기본적으로 알아야 합니다. 그러나 때로는 하둡 에코 시스템으로 제공하는 도구들을 이해하면 좀 더 빠르고 쉽게 하둡 프로그래밍을 할 수 있습니다. 이번에는 하둡과 관련된 많은 프로젝트들 중에서 피그(pig), HBase, 주키퍼(Zookeeper)에 대해서 간략하게 개념을 정리하려고 합니다. 해당 개념들을 살펴보고 추후 필요할 때 활용하면 좋겠네요. 피그(Pig) 피그는 대용량 데이터셋을 좀 더 고차원적으로 처리할 수 있도록 합니다. 맵리듀스에서 처리할 수 없는 부분들을 지원한다고 하는데요. 대표적으로 조인(Join)과 같은 연산이 가능합니다. 피그는 다중 값과 중첩된 형태를 보이는 좀 더 다양한 데이터 구조를 지원하고, 데이터에 ..
하둡(Hadoop) 프로젝트를 진행할 때 사람들의 고민이 무엇일까? 하고 생각해 봤습니다. Java 언어에 익숙하더라도 첫번째로 만나는 문제는 역시 맵리듀스(MapReduce)가 아닐까 합니다. 맵리듀스는 맵과 리듀스가 합쳐진 것으로 각각의 Map 함수와 Reduce 함수를 구현하고 JobClient를 통해 호출해야 합니다. 그런데 일반적으로 하둡 프로젝트에서 한번만 맵리듀스를 사용하는 경우는 거의 없습니다. 대부분 맵 리듀스를 반복적으로 사용하게 됩니다. 여기에 맵리듀스에서 기본적으로 사용하는 타입인 Text, IntWritable, LongWritable과 같은 것 이외에 객체를 사용한다든지. Key 항목이 아닌 Value에 속하는 항목으로 정렬을 하고 싶다든지, 하는 경우에 많은 개발자들이 어려움을..
Cloudera Impala 소개 Cloudera Impala는 SQL 형태로 Hadoop의 데이터를 이용해 실시간으로 분석할 수 있는 시스템이다. 이것은 MapReduce 프레임워크를 사용할 때, 배치 처리로 인한 지연이 발생하는 것을 최적화 한 것이다. 구글에서도 2006년부터 기존의 GFS와 MapReduce에 실시간 처리가 가능한 Dremel을 본격적으로 활용하고 있다. Apache Hadoop의 HDFS와 MapReduce가 구글의 GFS, MapReduce 논문을 기반으로 만들어진 것처럼, Cloudera Impala도 2010년 발표된 구글의 Dremel 논문을 기반으로 하고 있다. 다만, SQL과 유사한 형태를 하둡에서 활용하기 위해 Hive의 쿼리 방식의 인터페이스를 가져왔다. 하둡을 C..
하둡(Hadoop)의 파일시스템인 HDFS의 명령어를 모두 정리해 보려고 합니다. 하둡의 명령어는 다음과 같은 구조를 가지고 있습니다. hdfs dfs -cmd cmd가 지정한 파일 명령어이고 는 각 명령에 따른 인자들을 나타냅니다. hadoop fs를 제외하면 일반적인 리눅스 명령어와 유사하다고 볼 수 있습니다. 그럼 정리해보도록 하겠습니다. (도서 "거침없이 배우는 하둡"의 부록을 참고했습니다.) cat hdfs dfs -cat FILE [FILE ...] 파일의 내용을 나타낸다. 압축된 파일을 읽기 위해서는 fs 대신에 text 명령어를 사용해야 한다. chgrp hdfs dfs -chgrp [-R] GROUP PATH [PATH ...] 파일과 디렉토리에 대한 그룹을 변경한다. -R 옵션은 하위 ..
앞선 강좌에 따라 환경 설정을 하고 이클립스에 개발환경 세팅 후 맵리듀스 프로그래밍을 진행을 하다보면 조금 귀찮은게 있습니다. 우선 프로그램을 테스트하기 위해서 매번 jar로 묶어줘야 한다는 점이 있구요. 또한 input 파일을 hadoop의 파일시스템으로 넣어줘야 한다는 것도 조금 귀찮습니다. 이러한 문제를 해결할 수 있는 것은 역시 standalone mode로 실행하는 수 밖에는 없을 것 같습니다. 앞서 세팅한 하둡(hadoop) 설치부터 테스트까지 정리~ 에서는 pseudo-distributed mode였는데요. 이번에는 설정된 환경에서 몇개의 config 파일만 수정해서 standalone mode로 변경해서 jar로 묶지 않고 로컬의 파일시스템으로 예제를 실행해 보도록 하겠습니다. Standa..
하둡과 관련되어 작성한 글 목록을 먼저 보여드립니다. 참고하시기 바랍니다. 2012/02/29 - [리뷰/블로그] - BigData 처리를 위한 맵리듀스(MapReduce)에 대하여~ 2012/05/18 - [프로그래밍/Java] - 하둡(Hadoop) 설치부터 테스트까지 정리~ 2012/05/22 - [프로그래밍/Java] - 하둡 맵리듀스 프로그래밍을 위한 이클립스 플러그인 설정 #1 지난 시간에 Mac에 이클립스 플러그인을 설치하는 과정을 살펴봤는데요. 마지막에 설명한 것처럼 플러그인의 장점을 충분히 살리지 못하고 있으며 약간의 버그들도 존해하기 때문에 큰 의미가 없었습니다. 그래서 이번에는 일반적인 자바 프로젝트로 개발 환경을 설정하고 word count를 처리하는 예제를 실제로 실행해 보도록 하..