일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- elastic search
- 엘라스틱서치
- Clean Code
- Storm
- Hbase
- Angular2
- 제주
- apache storm
- spark
- hibernate
- design pattern
- hdfs
- 도메인주도설계
- Spring
- Domain Driven Design
- scala
- SBT
- intellij
- Spring Batch
- nginx
- Spring Boot
- Linux
- DDD
- Spring XD
- 스프링 배치
- docker
- Java
- hadoop
- elasticsearch
- Gradle
- Today
- Total
목록Programming/Hadoop (9)
욱'S 노트
목적 이 문서는 몇개의 노드부턴 수천개의 이르는 노드까지 주요한 하둡 클러스터를 어떻게 설치하고, 설정하고 관리하는지에 대해 설명한다. 먼저 할 일 일단 하둡 릴리이즈 버젼을 다운로드 하자. 설치 하둡 클러스터 설치는 일반적으로 머신에 소프트웨어를 압축을 해제하거나 RPM을 설치하는 것을 얘기한다. 일반적으로 클러스터의 한 대의 머신은 네임노드로 사용되고 나머지 머신은 리소스매니져로 이용된다. 이들이 마스터이다. 나머지 클러스터의 머신들은 데이터노드와 노드매니져이다. 이것이 슬레이브이다. Non-secure 모드로 하둡 클러스터 기동하기 다음 섹션은 하둡 클러스터를 어떻게 설정하는지에 대해 설명한다. 하둡 설정에 이용되는 두가지 타입의 주요한 설정 파일은 다음과 같가.Read-only default co..
자 이제 MapReduce로 첫번째 프로그램을 만들어보자. 우리의 목표는 공식사이트의 첫번째 예제인 WordCount이다. 무작정 베끼기만 하면 이해가 어려울 수 있으니 목표는 똑같으나 스타일은 내 스타일대로 가겠다. 목표는 Hadoop의 README.txt 파일의 단어 갯수를 세는 프로그램이다. 먼저 MapReduce의 mapper 역할을 하는 클래스를 만들어 보자. 12345678910111213141516171819202122232425262728import java.io.IOException;import java.util.StringTokenizer; import org.apache.hadoop.io.IntWritable;import org.apache.hadoop.io.LongWritable;i..
다음으로 살펴볼 내용은 MapReduce 이다. 이 넘이 아마 분산처리를 주도하는 기술이 아닐까 싶다. 1. 개요 그럼, MapReduce란 무엇인가? MapReduce는 대량의 클러스터에서 대량의 데이터를 병렬로 처리하는 어플리케이션을 쉽게 만들 수 있도록 도와주는 소프트웨어 프레임워크이다. 공식사이트의 정의를 빌어보자면, 아마 이 넘이 병렬 및 대량처리에 핵심인듯 하다. 대충 돌아가는 개요를 보면 아래와 같다. MapReduce 작업은 일반적으로 입력데이터를 map task의 처리에 의해 독립적인 chunk들로 분할을 한다. 프레임워크는 해당 map의 출력의 정렬된 경과를 reduce task의 입력으로 전달한다. 통상적으로 작업의 입력과 출력 모두 파일시스템에 저장되고, 프레임워크는 task의 스케..
HDFS를 다루기 위해서 파일시스템을 추상화한 클래스인 FileSystem 클래스를 제공한다.Outline을 보면 알겠지만, 파일처리에 대한 모든 api를 제공한다. 일단 간단하게 디렉토리를 한번 만들어보자. 메소드가 명시적이라 어려운이 없을것이라고 생각된다. 12345678910111213141516171819202122232425262728293031323334 import java.io.IOException; import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FSDataInputStream;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;im..
우리는 개발자 아닌가? HDFS를 커맨드로만 조작한다면 그건 TA일 것이다. 그렇다 HDFS를 조작하는 자바 프로그램을 작성해보도록 하자. 일단 먼가 원격의 HDFS를 접속할려면 클라이언트에 설정이 있어야 할 것 같다. 역시 Configuration 객체를 제공하고 있었다. 클라이언트 설정을 위해서 우리가 해야 할일은 굉장히 간단하다.우리는 기존에 core-site.xml에 HDFS의 접근 URL을 설정하였다. 해당 URL을 프로퍼티처럼 세팅하고 접속을 시도해보면 된다. 아래의 예제는 프로그래밍으로 HDFS에 접속하여 해당 home 디렉토리를 출력한 예제이다. 12345678910111213141516171819 @Test public void testProgrammaticConfiguration() t..
자 이제 어딘가에 원격 파일시스템에 파일도 올리고 카피도 하고 이름도 바꾸고를 할 수 있게 되었다. 그러면 도대체 이때까지 봤던 단어들이 무엇인지를 알아 보자. 1. NameNode, DataNode HDFS는 master-worker 패턴으로 구성되어 있다. 여기서 master의 역할을 수행하는 것이 NameNode이다. NameNode는 파일시스템의 논리적인 메타정보들을 관리한다. 파일 시스템의 namespace, tree 그리고 그 외 모든 파일들의 메타데이터를 유지한다. DataNodes는 파일시스템의 worker로서 외부의 요청에 따라 실질적으로 블록들을 저장하고 탐색하고, 해당 내용을 NameNode에 알리는 역할을 수행한다.
다음으로 무엇을 해볼까 생각해본다. 일단 HDFS를 다뤄보자.파일시스템이라고 했으니 파일 카피하고 디렉토리 조회는 할 줄 알아야 겠지? 일단, HDFS를 구동해본다. $ sbin/start-dfs.sh 그리고 접속해본다. http://localhost:50070/근데 뭥미? 브라우져로 확인해보니 404가 뜬다. 이런 말도 안되는...내렸다 올리면 파일이 날아가나? 먼가 이유가 있겠지? 검색을 해보자.역시 누군가 경험한 내용이었다. 감사합니다. Mac을 껐다 켜보겠다. tmp 아래의 폴더가 날아가나. 놀랍다. 방금 껐다키니 날아간다. tmp란 디렉토리명 답다. namenode 포맷을 하면 /tmp 폴더에 hadoop namenode가 생성이 되는데 이 폴더는 서버를 내렸다가 올리면 사라진다. 그러므로 서버..
어제는 어떻게든 하둡을 설치하고, 샘플을 돌려보았다. 이쯤에서 드는 의문이 있다.그럼 하둡은 과연 무엇인가? 해당 내용은 그냥 하둡 공식 홈페이지에서 발췌했다. The Apache™ Hadoop® reliable, scalable, distributed computing을 위해 오픈소스 소프트웨어이다. The Apache Hadoop software library는 단순한 프로그래밍 모델을 이용하여 클러스터링을 활용하여 large data sets의 분산처리를 도와주는 프레임워크이다. single 환경으로부터 수천대의 machine로 확장이 용이하게 설계되었다. 하드웨어에 의존하는 high-availability와는 달리,어플리케이션 레이어에서 실패를 감지하고 처리한다. 먼가 좋은거 같다. Hadoop은..
오늘부터 hadoop에 대한 공부를 시작할려고 한다.사실 필자는 Mac도 첨 쓰는지라 엄청 버벅되더라도 정리를 하고 가려고 한다. 1. Hadoop 구하기 및 설치 Hadoop도 JVM위에서 돌아가는지라 설치는 정말 간단하다. 공식 사이트에 가서 받고 일단 풀기만 하면 된다.공식사이트는 아시다시피 http://hadoop.apache.org/ 이다.적당한 최신 버젼을 받고 필자는 2.6.0이 최신이었으나 마이너버젼이 너무 안올라간 관계로 2.5.2를 받았다. 그러면 당연히 다운로드 폴더에 아래와 같은 파일이 다운로드 된다. 그러면 원하는 위치에 풀면 된다. 우리가 항상 설치하고 해보는거 아래와 같이 쳐보자. 대충 버젼이랑 잘 나온다../hadoop version 2. Hadoop Cluster 준비하기 ..