환경 : HDP 2.3 ( hive 1.2 , Tez 0.7 ) 대용량 hive on tez shuffle join시에 간혹 socket timeout이 발생한다. 이 부분을 피하기 위해 config를 변경하였지만.. 별로 신통치 않다 dfs.socket.timeoutdfs.datanode.socket.write.timeout 대용량 데이터에 대한 shuffle join이라.. explain을 해보니.. 정말 무지막지한 shuffle이 일어난다( map join이나 다른 join은 데이터 검증에서 실패;; ) 찾아보니 socket timeout에 대한 OS 설정이 있어서 해당 내용을 반영해야 할 것 같다. /proc/sys/net/core/somaxconn : 일반적으로 128 ~ 1024로 설정되어 있..
공통 코드를 보다보니.. ( 익수치 않다보니;; ) 처음보는 Annotation이 눈에 띈다 @SuppressWarnings 뭔가 찾아보니.. Compile시에 warning을 제외시킬 때 사용한다고 한다. 몇가지 더 살펴보면 대표적인게 몇 개 더 있다. @Deprecated : 가급적 사용을 말아 달라는 의미, 일반적으로 상위버젼에서 하위 버젼을 호환할 때, 이제 사용하지 말라는 의미로 많이 사용된다. @SuppressWarning(“”) : 이 부분에 대해 경고를 출력하지 말라는 의미, 옵션을 더 살펴보자 all : 모든 경고 cast : 캐스트 연산자 관련 경고dep-ann : 사용하지 말아야 할 주석 관련 경고deprecation : 사용하지 말아야 할 메서드 관련 경고fallthrough : s..
개요 IoT 및 다양한 Source ( Flow )를 지원 대부분의 수집관련한 Processor를 지원 nifi.apache.org Architecture Cluster / Standalone 모두 구성 가능 : Zero - Master 구성 Master : NCM , Nifi Cluster Manager Slave : Local에 File 저장 ( 분산 및 Replication 확인 필요 ) REST API다양한 API를 제공함 다만 별도의 Nifi ( Cluster ) Server 구성은 부담
ConceptEvent Source to Destination 으로의 전송하는 Flume의 단위String header + byte payload FlowSource to Destination까지의 EventData Flow or Simply flow Client Source에서 Event를 동작시키고 이를 Flume agent로 전달하는 Interface 구현체 Agent Source / Channel / sink와 같은 Flume Component를 가지고 있는 Interface 구현체 Agent들은 이벤트 자체를 Receive , Store 하거나 다음 Agent로 보낼 수 있다. Source Source로 전달된 이벤트들을 소비하는 Interface 구현체Source로 전달된 이벤트는 한개 이상의..
일반적인 서버 프로그래밍을 구현할 때 REST API 구축을 많이 한다. Stateless Protocol로 구현한다는 말을 자주 쓰는데 의미를 찾아보니 다음과 같다 무상태 프로토콜, 즉 이전 요청과 각각 무관한 요청을 독립적으로 처리한다는 의미이다. 즉 서버가 복수의 요청 시간대에 각각의 통신 파트너에 대한 세션 정보나 상태 보관을 요구하지 않는다. 반대의 개념은 서버 내부 상태를 유지하는 Stateful protocol이 그 예가 될 수 있다. 장/단점은 서버 구현상의 로직이 단순해 지기 때문에.. Client의 요청 이후, Client가 dead될 경우 요청의 Response를 굳이 저장할 곳이 없어 유실된다는 것이다.
IaC는 코드를 이용하여 대규모의 서버 인프라를 관리하는 기술을 의미한다. 기본적으로 MSA / 대규모 클러스터링 / HA 등의 상황에서 여러가지 설정을 엔지니어가 진행한다면.. 여러가지 Human error등을 유발수도 있으며, 관리상의 동기화 등등의 여러가지 문제점을 낳을 수 있다 특히 장애 관리 / 초기 구성/ Config Modify 등 여러가지 차원에서 문제를 발생 시킬 수 있다. 일반적으로 많이 쓴다고 확인한 것은 Puppet / Chef 등은 많이 들어보았고.. 회사 차장님이 소개해 주신 Tool은 Ansible을 추천해 주셨다. 아래는 IaC에 대한 wiki상의 정의이다 Infrastructure as Code (IaC) is the process of managing and provisi..
뜻 : Exploratory Data Analysis 정의 : 기 수집된 data로부터 데이터의 형태, 관계 파악 명백하게 공식화된 이전의 가설을 검증하기 보다는 자료를 탐구함으로써 시작하는 통계적 분석의 형태를 의미 분석 모형은 EDA를 통해 도출된 특징을 기반으로 수행 --> regression을 도입하는지.. 등을 선택하는 전처리 과정에 속함 주요 분석내용 1) 데이터의 요약 ( 중앙값, 사분위 등 )과 그래프 ( 산포도 등 ) 2) 데이터를 재표현 ( re-expression, Transformation ) 3) 데이터가 어떤 분포에 적합한지 알아보는 방법 4) 통계적 가설 설정 과정 없음 활용 1) 기술통계량과 경험 ( Biz 노하우)에 따른 결론 유추 2)분석의 첫 단계 - 데이터 본포의 적합..
Test Junit를 쓰다보니.. 다음과 같은 에러가 난다 java.lang.NoClassDefFoundError: org/junit/runners/model/MultipleFailureException 아무리 살펴봐도.. 문제 될게 없어보였는데.. 찾아보니 dependency version이 문제였다. version을 4.9 이상 올리니.. 문제가 없이 깔끔히 넘어간다
일반 windows나 리눅스 ( Centos )와 비슷하게 Mac에서도 package 관리 tool이 있다. homeBrew ( 집에서 먹는 맥주라는 뜻인가.. 아무튼;; ) 간단하게 Package를 관리하고 설정해주는 고마운 존재이다. https://brew.sh/index_ko.html 한국어 page도 제공해주고 설정 원리또한 Linux에서 많이 사용하는 yum / apt-get과 비슷한 원리이다. 설치 이후에 경로를 확인해보아도 쉽게 알수 있다. ( package가 /usr/local이하에 옹기종기 모여 있다.. ) 요즘 많이 사용하는 파이썬 / anaconda / tensorflow등 다양한 패키지를 쉽게 설치할 수 있으니... 용도 정도는 잘 알아두는 것이 좋다 ( 아래는 vert.x )
올해 새로운 프로젝트를 시작하게 되어서 Vert.x를 사용하게 되었다.개념적으로는 자료를 찾아보니.. 이해는 되는 편이지만 부분부분 기존의 프레임워크와는 다른점이 눈에 띈다. 일단 태생(?)과 개념적인 원리 정리를 해보도록하자 다른 프레임워크도 마찬가지지만 프레임워크는 사실 태생이 빠른 개발 생산성 / 변경관리 / Protocol 지원 등 저마다의 가치를 가지고 있다. Node.js도 많은 부분 환영을 받은 이유는 사실 쉽고 간단하게 비동기 서버프로그램을 구현할 수 있기 때문이다. Philosophy of Vert.x PolyglotSuper Simple Concurrency modelSupport Event Bus Module System & Public Module Repository 아래는 Node..