일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- scala
- apache storm
- Spring
- Storm
- Linux
- spark
- nginx
- Java
- intellij
- Spring XD
- Gradle
- hadoop
- Spring Boot
- hibernate
- Clean Code
- design pattern
- SBT
- 도메인주도설계
- elastic search
- Spring Batch
- 스프링 배치
- 엘라스틱서치
- elasticsearch
- Angular2
- Domain Driven Design
- DDD
- docker
- hdfs
- 제주
- Hbase
- Today
- Total
목록Programming (135)
욱'S 노트
alter, alter_async, alter_status, create 테이블을 생성한다. 테이블명과 컬럼패밀리 집합 명세들(적어도 하나이상)를 필수적으로 전달해야한다.옵션으로 테이블 설정을 전달할 수 있다. 컬럼 명세는 간단한 문자(이름) 이나 디렉토리일 수 있다. Examples: 테이블을 생성한다. (네임스페이스=ns1, 테이블구분자=t1) hbase> create 'ns1:t1', {NAME => 'f1', VERSIONS => 5} 테이블을 생성한다. (네임스페이스=default, 테이블구분자=t1) hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'} hbase> # The above in shorthand would be t..
지난 시간에는 테이블을 만들고 데이터를 막 넣어봤다. 근데 테이블을 만들때랑 데이터를 넣을때랑 기존 RDBMS랑 먼가 다르다.다행히 공식 사이트에 datamodel이라는 문서가 있다. 공부하자. HBase 데이터모델 용어 Namespace유사한 테이블들의 논리적인 집합. 향후 다중처리 feature에 토대가 될 전망이다. Quota Management (HBASE-8410) - Restrict the amount of resources (ie regions, tables) a namespace can consume.Namespace Security Administration (HBASE-9206) - provide another level of security administration for tenan..
일단 공식 사이트에서 가볍게 stand alone으로 시작하자고 해서 따라해봅니다.먼저 설치 본을 다운 받습니다. 아파치 미러 사이트로 가서 stable한 버젼을 다운 받습니다. http://mirror.apache-kr.org/hbase/ 저는 하둡 2.x 를 설치했으므로 hbase-0.98.9-hadoop2-bin.tar.gz 파일을 다운로드 합니다. 그리고 적절한 위치에 압축을 풉니다. ${HBASE_HOME}/conf/hbase-env.sh 에 JAVA_HOME 설정을 합니다. 저는 Mac입니다. export JAVA_HOME=`/usr/libexec/java_home -v 1.8` ${HBASE_HOME}/conf/hbase-site.xml을 수정합니다. hbase.rootdir file:///..
빅데이터를 일고 쓰고 싶다면 HBase를 사용하라. 수백만 칼럼의 수백억의 로우를 가진 매우 큰 테이블을 저사양의 하드웨어 클러스터에 호스팅하기 위해서 기획된 프로젝트이다. 구글의 빅테이블 모델을 기반으로 하는 오픈소스, 분산, 버젼관리, 비관계형 데이터베이스이다. 빅테이블은 구글 파일 시스템에서 효력을 발휘하지만 HBase는 Hadoop과 HDFS에서 빅테이블과 같은 분산 데이터 저장환경을 제공한다.Features선형/모듈적 확장성.엄격한 read/write 일관성.자동 및 설정에 의한 테이블 샤딩서버간의 자동 failover 제공HBase 테이블의 MapReduce 작업 지원을 위한 편리한 기본 클래스 제공 클라이언트 접근을 위한 사용하기 쉬운 Java API.실시간 쿼리를 위한 Block cache..
자 이제 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가 생성이 되는데 이 폴더는 서버를 내렸다가 올리면 사라진다. 그러므로 서버..