Hadoop.3 Hadoop 생태계 Zoo

By J2eeDev.org
지난 시간에 우리는 Hadoop 스택의 아랫쪽 기반(HDFS, YARN)에 대해 살펴 보았다.

이제 그 위에 있는 몇가지 것들에 대해 살펴볼 차례이다. 이것들은 짧은 시간이지만 급격하게 진화해 왔다. 그래서 우리는 이것들의 역사와 맥락에 대해 알아볼 필요가 있다.

이 상위 모듈들은 우스꽝스러운 이름들이 붙어 있어서 그 정체를 한눈에 파악하기 어렵다.  대부분 동물과 연관된 이름들이기 때문에 이런 모듈들을 묶어서 동물원(Zoo)라고도 한다.

Apache MINA로 간단한 HTTP 서버 만들기

나는 주로 Java로 시스템 프로그래밍을 한다. 시스템 프로그래밍은 대부분 외부 시스템과의 통신을 필요로 하고 따라서 네트워크 프로그래밍을 많이 한다. 

C에서 socket 프로그래밍을 하다가 Java로 넘어온 나로서, 오리지널 Java의 스트림 기반의 네트워크 프로그래밍은 매우 생경했다. 그런데 Java 2에서 NIO(Non-blocking I/O)가 소개되면서 그나마 좀 편해졌다.

NIO는 socket 프로그래밍을 현대적으로 계승한 것 같은 API 세트를 가지고 있기 때문이다.

Hadoop.2 HDFS와 YARN

이 글에서는 HDFS와 YARN에 대해서 한발짝 더 들어가 보기로 한다.

HDFS는 Hadoop Distributed File System의 약자로 여러 서버에 걸쳐 분산된 형태로 파일을 저장하기 때문에 확장성이 있고 이동이 용이한 파일 시스템이다. 이는 Java로 개발되었으며 Hadoop 프레임워크의 가장 아랫단에서 인프라 역할을 한다.

파일시스템은 흔히 우리가 얘기하는 NTFS, EXT4, FAT 이런 것들을 연상하면 된다. 이들 기존의 파일시스템들은 한 서버 내의 물리적 디스크를 조직하는 것이었다면...

Hadoop은 여러 서버에 걸쳐 있는 분산된 저장 리소스들을 논리적으로 하나로 엮은 상위 레벨의 파일시스템이라 볼 수 있다. 물론 각 서버 내에서는 그 서버의 OS에서 사용하는 NTFS나 EXT4 같은 물리적 파일시스템을 활용한다.

Kodu.1 컴퓨팅적 사고 / 코두(Kodu) 설치하기


요즘 정부에서 소프트웨어 교육을 강화한다고 설레발을 치고 있다. 그런데 사실 이런 움직임은 필요하다. 선진국이라는 곳에서는 이미 초등학교부터 프로그래밍 교육을 하고 있다.

아니 정확히 말하면 "Computational Thinking"을 교육하고 있다. 우리말로는 "컴퓨팅적 사고思考"라고 하는데 영 어색하다. 컴퓨팅적 사고는 교육의 측면에서 정의한 용어이기 때문에 그를 설명한 문서를 보더라도 영 감이 잡히지 않는다.

프로그래머로 20년 밥벌이 한 경험에 비추어 볼 때, 컴퓨팅적 사고는 아이들에게 논리적으로 생각하는 법을 가르치는 것이라 추측된다.

어떤 사람이 프로그래머로서의 자질이 있나 없나를 판단할 때는 그 사람에게 어떤 문제를 주었을 때 그 해결 방법에 대해 절차를 논리적으로 잘 설명하는지를 보면 된다. 물론 개중에는 구글링 잘하고 Ctrl-C/Ctrl-V를 잘하는 것이 자질이라고 생각하는 사람도 있을 것이다. (나도 물론 많이 그런다)

Hadoop.1 Hadoop 스택 개요

By Timo Elliott
이 시리즈는 Coursera의 Hadoop Platform and Application Framework 강의를 듣고, 내용을 요약 정리한 것이다. 

지금까지 빅데이터의 기술적인 면과 비지니스적인 면에 대해 기본적인 개념을 훑어 보았다. 이제부터는 기술적인 면에 집중해서 특히 Hadoop 스택이 어떻게 생겼고, 어떻게 동작하고, 이것으로 무엇을 할 수 있는지 알아볼 것이다.

먼저 Hadoop에 대해 간단히 설명하면 "안정적이고, 확장성 있고, 분산 컴퓨팅을 지원하며, 저렴한(commodity) 서버들로 클러스터를 구성하여 커다란 데이터 집합들을 배치하고 분산 프로세싱을 가능케 하는 오픈소스 소프트웨어"이다.

BigData.9 Hadoop 설치하고 둘러보기

By Cloudera
이 글에서는 Hadoop이 어떤 것인지 맛보기 위한 가장 쉬운 방법을 소개할 것이다.

먼저 Hadoop이 뭔지 정의를 살펴보자.  Apache Hadoop 프로젝트는 안정적이고, 스케일러블하고, 분산 컴퓨팅을 지원하기 위한 오픈소스 소프트웨어를 개발하고자 하는 것으로, 일반적인(commodity) 서버들의 클러스터에 커다란 데이터 집합들을 배치하여 분산 프로세싱을 가능케 한다.

그렇다면 왜 사람들은 Hadoop에 열광하는 것일까? 그것은 적은 비용으로, 확장성이 뛰어나며, 무장애로 운영할 수 있으며, 유연하기 때문이다.

Blogger에서 소스코드를 예쁘게 - Syntax Highlighter

By Iwan Gabovltch
원래 소스코드는 알록달록해야 제 맛이다. 그리고 가변폭이 아니라 고정폭 폰트로 스타일링 되어야 코드답다.

개발과 관련된 블로그이다 보니, 소스코드를 자주 넣어야 하는데 그때마다 Syntax Highlighter가 아쉽곤 했다. Wordpress라면 플러그인 형태로 제공되는 다양한 선택사항이 있지만, 여기는 Google Blogger이니 직접 손으로 때워야 한다.

Google Blogger에서도 Syntax Highlighter를 사용할 수 있는 옵션들은 몇개 있다. 그 중에서 하나를 고르기 위해 다음과 같은 기준을 세웠다. 이 기준은 귀차니즈머의 취향이 99% 반영된 것이다.

BigData.8 데이터 과학자들을 분석해 보면?

By O'Reilly
여기서는 오아일리 미디어(O'Reilly Media)에서 발간한 "분석가를 분석하다(Analyzing the Analyzers - Harlen D. Harris, Sean Patrick Murphy, Marck Vaisman)"라는 보고서의 내용을 소개할까 한다. 

이 보고서는 데이터 과학자들이 스스로를 어떻게 생각하는지, 그리고 그들의 일에 대해 어떻게 생각하는지를 설문조사하여 정리한 것이다. 그들의 경력이나, 학위, 사용하는 도구, 직위, 연봉, 조직 같은 것들은 고려하지 않았다. 단지 그들이 가지고 있는 기술이 무엇인지를 알고 싶었던 것이다.

소셜 네트워크를 통해 온라인 설문조사를 했으며, 완료된 설문 개수는 250개 였다.

BigData.7 데이터 과학자가 갖추어야 할 소양

By Pixabay
지금까지 알아 보았듯이 데이터는 넘쳐나는데, 이것을 다룰 수 있는 재능있는 사람은 찾기 힘들다.

맥킨지(McKinsey Global Institute)의 "Big Data Report"에 의하면...

2018년까지 미국에서만 심층 분석 기술(deep analytical skill)을 가진 인력은 14만~19만 정도 부족하고, 빅데이터 분석을 활용하여 효율적인 의사결정을 할 수 있는 관리자와 분석가가 150만명이 부족하다고 한다.

좀 뻥이 심한 것 같기는 하지만 그런 경향이라는 건 부정할 수 없다.

빅데이터와 머신러닝에 대한 즐겨찾기 모음

By Pixabay
요즘 빅데이터(big data)와 머신러닝(machine learning)에 대해 열공 중입니다.

늦은 나이에 굉장히 부담되는 공부지만, 고마운 분들이 좋은 자료를 만들어 두셔서 그나마 조금씩 감을 잡아가고 있습니다.

산재되어 있는 여러 관련 정보들을 모아 두었으니, 같은 주제로 고민하고 계시는 분들께 작은 도움이 되었으면 합니다.

이 페이지는 계속 업데이트될 예정입니다.

Life is not earning but learning.
- Sunil Joyia


BigData.6 데이터 과학자는 뭐하는 사람일까?

실제 빅데이터의 가치는 무엇일까?

고객으로부터 만들어지는 혹은 정보 시스템에서 만들어지는 대량의 데이터를 계산하여, 정확한 예측 모델을 만들고 이를 통해 데이터 기반의 의사결정을 하고자 하는 것이다.

요즘의 컴퓨터 시스템은 더 이상 결정론적인(deterministic) 기계가 아니다. 요즘 정보 시스템들은 손에 잡히는 곳에 있지 않고 멀리 클라우드(cloud)에 혹은 가상 세계에 존재한다.

데이터 과학자(data scientist)는 빅데이터로부터 원료를 공급받는다. 데이터 과학자들은 이 새로운 빅데이터로부터 도전을 받고, 자극을 받고, 영감을 얻게 된다.

BigData.5 성공적인 빅데이터 프로젝트의 조건

지금까지 빅데이터의 다양한 측면을 살펴 보았다.

왜 데이터가 많아질 수 밖에 없는지, 빅데이터의 잠재력은 무엇인지, 빅데이터와 사물인터넷이 어떤 관계가 있는지, 빅데이터의 분석과 예측을 통해 얻은 통찰이 왜 유용한지 등이다.

이제 빅데이터 혹은 작은 데이터 프로젝트가 성공하기 위해 필요한 조건들을 살펴보자.

BigData.4 하이프 사이클로 본 빅데이터

By Jeremy Kemp, Wikipedia
Gartner가 해마다 발표하는 신기술의 하이프 사이클(Hype Cycle for Emerging Technologies)에 대해 알고 있는가?

하이프 사이클은 "과대 광고 주기"라고 직역되기도 하는데, 한마디로 어떤 기술이라는 것이 세상에 나오게 되면 기술 촉발(technology trigger) - 부풀려진 기대의 정점(Peak of Inflated Expectations) - 환멸(Trough of Disillusionment) - 계몽(Slope of Enlightenment) - 생산성 안정(Plateau of Productivity)이라는 다섯 단계를 거치게 된다는 것이다.

인기글