본문 바로가기

전체 글

(89)
[스톰] Storm Tutorial 원문 : https://github.com/nathanmarz/storm/wiki/TutorialTutorial이 튜토리얼에서, 어떻게 스톰 토폴로지를 생성하고 스톰 클러스에 그것들을 배치하는지 배울 것이다. 자바가 사용될 주요 언어가 되겠지만 몇몇 예제는 스톰의 다중 언어 능력을 보이기 위하여 파이썬을 사용할 것이다. Preliminaries이 튜토리얼은 storm-starter 프로젝트의 예제를 사용한다. 프로젝트를 복제해서 해당 예제를 따라하길 추천한다. 다음을 읽고 설정하자. Setting up development environment (https://github.com/nathanmarz/storm/wiki/Setting-up-development-environment) 와 Creating a..
HBase - DELETE HTable에 다음 함수를 통해 삭제를 수행한다. void delete (Delete delete) throws IOException put과 유사하게 Delete 객체를 생성해서서 전달하면 된다. Delete 객체를 생성하는 방법도 기존 Get, Put 객체를 생성하는 것과 유사하다. Delete(byte[] row) Delete(byte[] row, long timestamp, RowLock rowLock) 특정 컬럼 패밀리 또는 컬럼을 지정하여 삭제할 수도 있다. 아무것도 지정하지 않으면 해당 rowKey에 해당하는 모든 셸을 지운다. Delete deleteFamily(byte[] family) Delete deleteFamily(byte[] family, long timestamp) Delete..
HBase Scan Scan() Scan(byte[] startRow, Filter filter) Scan(byte[] startRow) Scan(byte[] startRow, byte[] stopRow) GET, PUT과 유사하게 SCAN하기 위해 Scan 클래스를 생성해야 한다. get과 유사하게 row Key를 지정하지만 scan에서는 HTable로 부터 읽기 시작할 곳(startRow)을 지정하는 것이다. startRow는 스캔 대상에 포함되고 stopRow는 스캔 대상에서 제외된다. 특별히 지정한 것이 없으면 테이블의 처음부터 스캔한다. 그밖에 필터를 지정할 수 있는데 필터링할 조건이라고 보면된다. Get과 유사하게 addFamily, addColumn 함수를 이용하여 제한된 대상을 기준으로 스캔할 수 있다. 다음..
BLENDING TIME IN HBASE 원문: http://outerthought.org/blog/417-ot.html HBase에 타임스탬프에 관한 글이다. 발번역~ 차라리 구글번역이 낫겠지만. 개인적으로 공부한다고 생각으로 발번역중 BigTable 과 같은 HBase는 흔치않고, 분산, 영구적인 다차원 정렬맵이다. (흠냐.) 이 맵은 row 키, 컬럼 키 그리고 타입 스탬프로 색인되어 있고 맵안에 각 값은 바이트의 배열로 되어있다. 좀 더 자세히 보면, Hbase에는 테이블과 컬럼 패밀리라는 또 다른 차원을 가지고 있다. 그 차원들은 모두 동일하지 않다. 예를 들어, row 차원은 조각날 수 있고 매우 커질수 있다. 컬럼은 조각되지 않지만 row들과 비교하여 하나의 row 안에 다중 컬럼이 원자적으로 put 또는 delete 될수 있다. ..
HBase - PUT HBase: The Definitive Guide 일부 발번역 HTable에 write하기 위해서는 Put 객체를 생성하고 put 함수를 호출하면된다. 하나 row를 Put 하기 void put(Put put) throws IOException Put(byte[] row) Put(byte[] row, RowLock rowLock) Put(byte[] row, long ts) Put(byte[] row, long ts, RowLock rowLock) 예) Configuration conf = HBaseConfiguration.create(); HTable table = new HTable(conf, "testtable"); Put put = new Put (Bytes.toBytes("row1")); put..
HBase - GET HBase: The Definitive Guide 일부 발변역~ GET 메소드 (필터에 대해서는 다른 챕터에 나와있는듯 ) HTable은 저장된 것을 가져오기 위한 API로 GET 과 매칭 클래스들을 제공하고있다. 단일 row를 가져오기 위한 함수 Result get(Get get) throws IOException Get (byte[] row) Get (byte[] row, RowLock rowLock) 예) byte[] row1 = Bytes.toBytes("row1"); //'row1'은 해당 row의 키 Get get1 = new Get(row1); Result[] results = table.get(get1); get 오퍼레이션은 특정 row 하나만을 가져오지만 거기에 포함되어 있는 수많은 컬럼..
Cloudera Hadoop 설치시 Missing Dependency: JDK 오류 발생 hadoop-0.20-0.20.2+923.21-1.noarch from cloudera-cdh3 has depsolving problems --> Missing Dependency: jdk >= 1.6 is needed by package hadoop-0.20-0.20.2+923.21-1.noarch (cloudera-cdh3) Error: Missing Dependency: jdk >= 1.6 is needed by package hadoop-0.20-0.20.2+923.21-1.noarch (cloudera-cdh3) JDK RPM 버전을 Sun에서 받아서 설치하자. yum install java로 설치하면 rpm dependency를 제대로 구분 못하는 듯하다.
Performance Tuning Hbase HBase: The Definitive Guide 책에서 발번역 -early edition 번역 1. 가비지 컬렉션 region server인 경우 가비지 컬렉션 파라미터를 조정할 필요가 있다. 마스터인 경우 많은 로드가 발생하지 않으므로 다음의 셋팅들은 region server들에게만 필요하다. HBase를 효과적으로 수행하는데 왜 가비지 컬렉션을 할까? 이 문제는 JRE가 프로그램이 무엇을 하는지, 어떻게 객체를 생성하는지 등에 관한 추정에 관여하는 것으로 부터 발생된다. 이 가정들은 대부분의 경우 잘 동작한다. 그리고 JRE는 프로세스가 동작하고 이을 때 이런 추정들을 조정하는 휴리스틱 알고리즘을 가지고 있다. 그러나 region 서버와 같은 경우 잘 다루지 못한다. 이는 작업량, 특히 JRE 추정..