분류 전체보기 (49) 썸네일형 리스트형 Apache Kafka 정리 Apache Kafka 1. 소개 kafka는 링크드인에서 개발한 발행-구독 방식의 고성능 분산 메시징 시스템입니다.kafka는 크게 topic과 메시지를 관리하는 broker, 메시지를 전송하는 producer, 그리고 메시지를 소비하는 consumer로 이루어져 있습니다. 일반 메시징 시스템의 경우 메시지를 메모리에 저장하는 경우가 많은 반면 kafka의 경우 메시지를 파일에 저장하여 메시지의 영속성이 높으며 그러면서도 OS의 페이지 캐시와 zero copy 기법 그리고 async non blocking io를 이용하여 기존 메시징 시스템보다도 고성능을 구현하였습니다.또한 아키텍쳐 자체가 분산 시스템을 목표로 개발되었기 때문에 확장 또한 매우 손쉽게 할 수 있습니다. 예) activemq, kafka.. spark streaming에서 중요한 옵션 정리 최근 스파크 스트리밍을 이용해서 실시간 로그 전처리 작업을 진행중이다.작업을 하면서 문제가 발생했던 부분을 옵션을 수정하면서 해결하였다. 1. spark.streaming.kafka.maxRatePerPartition-> 초당 파티션의 처리량 제한메시지가 한번에 대량으로 들어오거나 어떠한 이유로 스트리밍 어플리케이션이 다운되어서 카프카에 대량의 메시지가 쌓여있을 경우 어플리케이션을 재시작하면 대량의 메시지가 한번에 받아들여져서 설정된 executor-memory 이상의 데이터가 몰리면 OOM에러가 발생하게 된다. 만약에 상황에 대비해서 자원할당을 무작정 크게 할 수는 없기 때문에 옵션을 찾아보았는데 maxRatePerPartition 옵션을 발견하였다. 이 옵션은 초당 파티션에 들어오는 레코드의 양을 제.. [logstash] timestamp timezone 변경 logstash에서 @timestamp의 디폴트 타임존은 UTC 0시이다. Elasticsearch에 넣고 Kibana를 이용해서 분석을 한다면 타임존을 변경해서 분석이 가능하지만 kafka 혹시 다른곳으로 데이터를 출력할 경우 원하는 시간대로 타임존을 변경해야만 하는 경우가 있다. 기본적으로 logstash에서는 timestamp의 타임존을 변경할 수 없다. 하지만 아래와 같이 ruby 플러그인을 이용하면 타임존을 변경한 날짜를 변수에 저장할 수 있다. 아래는 로컬타임(한국시간)으로 타임존을 변경하고 index_day라는 변수에 할당하고 있다. filter { ruby { code => "event.set('index_day', event.timestamp.time.localtime.strftime('.. [MAVEN] maven-dependency-plugin 모든 의존관계 JAR 복사 # 네이버블로그에서 이사 (http://blog.naver.com/rkdmfql1540) copy all dependency jar files to target/dependency directory pom.xml example 4.0.0 com.egtry 1 dependency_copy org.eclipse.jetty jetty-servlet 8.1.0.v20120127 org.apache.maven.plugins maven-dependency-plugin 2.4 copy-dependencies package copy-dependencies build and copy commandmvn package [MAVEN] maven-shade-plugin # 네이버블로그에서 이사 (http://blog.naver.com/rkdmfql1540) maven-shade-plugin package shade 패키지명 [linux] 열린 port 및 pid 확인 netstat : 열린 포트 정보를 확인하는 명령어 netstat 옵션-a(--all) : listen 되는 소켓정보와 listen 되지 않는 소켓 정보를 모두 출력-c(--continuous) : 결과를 연속적으로 출력-i(--interface=iface) : 모든 네트워크 인터페이스 정보 출력-l(--listening) : listen되고 있는 소켓 정보 출력-n(--numberic) : 10진수의 수치 정보로 결과 출력-p(--program) : 실행되고 있는 프로세스와 PID 정보 출력-r(--route) : 설정된 라우팅 정보 출력-s(--statistics) : 각 프로토콜에 대한 통계 정보 출력 아래 명령어를 이용하면 port와 pid를 확인 할 수 있기 때문에 해당 pid를 이용하여 kil.. Degine Pattern - StatePattern # 네이버블로그에서 이사 (2012.11.07 게시물. http://blog.naver.com/rkdmfql1540) State패턴을 배우고 간단한 비디오관리 프로그래을 제작하면서 배운내용을 복습하였다. 1. 클래스 다이어그램 2. 설명 State 패턴은 그 이름처럼 오브젝트의 상태에 따라 처리를 변경할 경우에 이용합니다. 이 프로그램에서는 MemberType 추상클래스를 만들고 이 추상클래스를 상속받는 VIP, Ordinary클래스를 만들어 회원의 등급이 변할 때 setMemberType 메소드를 이용하여 회원 등급을 바꿀 수 있습니다. 또한 Gold등급이나 Silver등급을 새로 추가하여도 기존의 코드를 변경하지 않고 새로 생성할 클래스만 만들어 사용할 수 있습니다. 새로운 회원을 추가할 때 아래와 .. Design Pattern - 싱글톤 구현하기 # 네이버블로그에서 이사 (2012.11.07 게시물. http://blog.naver.com/rkdmfql1540) 이 컨셉은 다음과 같은 시스템에서 일반적으로 사용된다. 1. 오직 하나의 객체가 존재하는 것이 더 효과적일 때 2. 일정 개수의 객체만 생성하도록 제한을 둬야할 때 싱글톤 패턴을 사용함에 있어서 비판적인 시각도 있는데, 일부에서는 싱글톤이 남용되고 있거나 굳이 하나의 유일한 객체가 필요한 상황이 아닌 곳에서도 불필요하게 도입될 수도 있고, 애플리케이션 안에서 전역 상태(global state)를 도입한다고 판단하기 때문에 안티패턴(자주 사용되기는 하나 효과적이지 못하거나 부작용이 낳는 패턴)으로 간주하기도한다. 싱글톤의 구현방법은 3가지 주된 방법이 있다. 1. 이 방법은 해당 클래스의 .. 이전 1 ··· 3 4 5 6 7 다음