본문 바로가기

Programming

HBase 에서 region 수를 작게 해야 하는 이유 Region 수는 보통 Region Server 당 100개 정도가 적당하다. HBase 의 region 수를 작게 하는대에는 아래와 같은 이유가 있다. 1. MSLAB (MemStore-local allocation buffer) 때문인데, MemStore 하나당 2MB 를 필요로 한다. 그래서 예를 들면, 1000개의 region 과 2 개의 column family 를 가진다고 가정하면 저장을 하지 않았는데도, 대략 3.9 GB 의 heap 공간이 필요하다. 2. 많은수의 region 은 대량의 Compaction 을 유발하기 때문이다. 3. HBase master 서버는 많은수의 region 에 대해서 민감하다. 이렇게 많은 수의 region 때문에 region 을 할당하고 이동시키는데 많은 시간.. 더보기
scala 로 kafka topic, partition 정보 가져오는 방법 아래 링크에 코드가 정리 되어 있다. https://gist.github.com/starblood/c35a4f70345cbbb5ad20d74d9fbe3f21 더보기
HBase rolling restart HBase 를 rolling restart 하고자 할때는 보통 설정파일을 업데이트 하거나 HBase 자체의 version up 을 하고 싶을 때 수행한다. Rolling Restart 는 보통 아래와 같은 절차로 수행한다. 새로운 HBase 버전의 압축을 해제하고 설정파일들을 확인하고 이 설정파일들을 Cluster 전체에 동기화 시킨다.Apache HBase 를 사용한다면, hbck 라는 Cluster consistency 를 확인해 주는 프로그램을 실행한다.Master 서버를 restart 한다.Region Server 들을 gracefull restart 를 진행한다.gracefull restart 를 할때 천천히 수행 하는 것이 바람직하다. 모든 region 서버가 동시에 offline 이 되면 성.. 더보기
kafka 의 특정 topic 에 지연이 발생하는 지 확인 하는 script (check_kafka_lag) code linkhttps://gist.github.com/starblood/79f3a6af00bd9e3473a1d8ffbef0b248 #!/bin/bash kafka_home=$1zookeeper=$2group_name=$3lag_threshold=$4lag_data_sampling_count=$5if [ ! -z $6 ] ; thenlag_data_file=$6elselag_data_file=/tmp/kafka_lag.datafi function init_lag_data() {local sample_count=$1local result=()# initialize lag data array for a given sampling counti=0while [[ i -lt $sample_count ]]dor.. 더보기
MacOS 에서 kafka docker 설치와 실행 kafka 를 mac 에서 실행하는 방법을 정리 docker 를 사용하여 하는 것이 가장 간단하고 쉽다. 일단 docker 를 다운받아서 설치하자. 1. 아래 공식 사이트에서 맥용 설치 버전을 받을 수 있다.https://www.docker.com/products/docker#/mac 설치를 하게 되면 아래 그림과 같이 작업 표시줄 상단에서 고래 모양 아이콘을 볼 수 있다. 다음으로 kafka docker 이미지를 받기 위해서 docker hub 에 가서 해당 이미지가 있는 지 검색하여 사용하도록 한다.여기서 star 를 제일 많이 받은 아래 것을 사용하였다.https://hub.docker.com/r/wurstmeister/kafka/ 2. 아래의 명령어로 해당 kafka docker 이미지를 다운받는.. 더보기
Java8 G1 garbage collection 특징 Java 8 부터는 G1 GC 를 기본으로 설정 되어있다. 자세히 알아보기 전에 미리 알아두어야 할 것들이 있다. Java 7update 4 부터 parallel GC 가 기본으로 설정되어있다.JVM 옵션 (아래 둘 중에 아무거나 하나)-XX:+UseParallelGC-XX:+UseParallelOldGC parallel GC 의 특징application 의 throughput 이 latency 보다 중요할 때 (i.e. batch 프로그램) CMS GC 의 특징application thread 와 garbage collection thread 가 동시에 실행된다.application latency 를 향상 시키는 것에 주안점을 두었다. (GC 의 횟수를 줄이는 것)parallel GC 보다 약 10~2.. 더보기
Java GC tuning 현재 이용가능한 Java GC 알고리즘들에 대해서 간단하게 알아보고 tuning 하는 방법에 대해서 알아봅니다. 자료가 약간 오래되어서 지금은 적용이 안 될 수도 있는 것이 있습니다. 자료 다운로드 더보기
Functional Programming in Java Part2 - Java8 Java 8 언어로 어떻게 하면 함수형으로 프로그래밍 할 수 있는 지 보여줍니다. 자료 다운로드 더보기
Functional Programming in Java Part1 - Java8 Java 8 언어로 어떻게 하면 함수형으로 프로그래밍 할 수 있는 지 보여줍니다. 자료 다운로드 더보기
Reactive Manifesto Reactive Programming 이 붐이다. 우리나라는 어떻게 진행되고 있는 지 몰라도 해외에서는 이 패러다임이 대세인 것이다. 특히 미국에서. 오늘은 그래서 이 프로그래밍 패러다임이 도대체 어떤 것을 표방하는 지 알아보도록 하자.일단 google 에서 "Reactive Manifesto" 라는 키워드로 검색을 해보면 아래 사이트가 메인으로 뜬다. http://www.reactivemanifesto.org 해당 사이트에 가보면 "The Reactive Manifesto" 라는 글귀가 보이면서 소개가 나온다.이 사이트에 소개된 글을 한국어로 번역해 보면 나도 도움이 될 거 같아서 번역을 해볼까 한다. (더 좋은 번역이 있거나 제안이 필요할 경우 댓글을 남겨주길 바란다.) 다양한 도메인에서 소트웨어 관.. 더보기