개요 Hadoop에서는 과거 버전부터 Hadoop Archive(이하 HAR) 기능을 제공한다. 이는 우리가 일반적으로 사용하는 파일의 압축과 비슷한 개념인데, 우리가 일반적으로 파일시스템에서 압축(archive)를 하는 이유는 (1)여러개의 파일을 하나의 묶음으로 관리하기 위해서나, (2)다양한 압축 방법을 통해 파일의 용량을 줄이기 위함이다. 그러나 HDFS에서 아카이브는 HDFS 상에 있는 다수의 파일을 더 적은 수의 파일로 관리하기 위한 목적이다. 이는 HDFS의 구조적인 한계에서부터 비롯된 것인데, HDFS 상에서 관리될 수 있는 최대 파일의 개수가 약 3억 5천만개이기 때문이다. 따라서 HDFS 상에서 파일의 개수를 줄일 수 있는 방법이 고안되어야 했고 이것이 바로 HAR이다. 사용법 압축 h..
FlowFile은 NiFi에서 처리되는 기본적인 단위이다. FlowFile은 처리하고자 하는 데이터와 그 데이터를 처리할 때 필요한 속성 값을 가리키고 있다. FlowFile은 실제 데이이것은 데이터와 속성 값을 가지고 있으며, NiFi Processor에서 데이터 처리를 위해서 사용한다. Processor 에서 생성/수정하는 FlowFile들은 Processor가 어떻게 FlowFile을 처리하냐에 따라서 properties와 event에 대한 정보가 달라진다. 또한 FlowFile의 처리를 위해 반드시 필요한 property 값들도 있기 때문에 flow를 구성할 때 서로 호환되는 process간에 연결을 하거나, 각 processor에 맞는 값들을 맞춰주기 위한 작업을 별도로 수행해야 한다. Flow..
nifi.apache.org/docs/nifi-docs/html/nifi-in-depth.html#repositories Apache NiFi In Depth Utilizing the copy-on-write, pass-by-reference, and immutability concepts in conjunction with the three repositories, NiFi is a fast, efficient, and robust enterprise dataflow platform. This document has covered specific implementations of pluggable interf nifi.apache.org NiFi에는 3가지 저장소Repository가 존재한다. 각각의 ..
Apache ozone 벤치마킹 자료 (by cloudera) 다양한 산업군의 기업들이 데이터 분석을 통한 높은 수준의 비즈니스 서비스를 제공하기 위해 가지고 있는 모든 데이터를 하나의 저장소에 모으려는 노력을 하고 있다. (+ 물론 아직까지 남들이 하니까 일단 모으고 보자는 곳들도 존재한다 ~ ___ ~) 일반적으로 주위에서 데이터의 양과 일상적으로 처리해야 할 데이터가 많지 않은 기업들은 CSP의 서비스를 사용하고 있으며, 데이터가 많으며 지속적인 처리작업이 이루어지거나 개인정보 및 국가에서 관리하는 기술 민감정보를 가지고 있는 기업들은 on-premise에 자체적인 data lake를 구축하는 추세이다. 이때 쉽게 그리고 싸게 생각할 수 있는 것이 범용장비 여러대로 구성할 수 있는 하둡 기반의 Da..
> Google Cloud Summit 2019 를 다녀왔다. 작년에 이어 올해 서울에서 두번째로 진행이 되었다고 하는데, 사실상 올해부터 무료 온라인 교육, 오프라인 세미나 등 공격적으로 마켓팅을 하고 있다. 이미 AWS가 시장을 선도하고 있는 가운데, Google이라는 공룡이 새로이 시장에 뛰어듬으로써 AWS - MS - Google 의 치열한 경쟁이 펼쳐질 것으로 생각된다. TechRepublic (https://www.techrepublic.com/article/public-cloud-market-share-numbers-keep-missing-the-point/)을 참조해 보면 2018년 기준 AWS(47.8%), MS(15.5%), Google(4.0%) 의 시장 점유율을 보이고 있는데 이는 ..
이전 글에서는 kubernetes 기본적인 아키텍쳐와 Google Kubernetes Engine에서 제공하는 관리 기능들을 살펴보았다. 이번글에서는 조금 더 자세하게 k8s object 의 동작과 관리방법에 대해서 정리했다. > 이전 글에서 봤던것 처럼, 3개의 nginx 웹 서버를 동시해 실행시켜야 하는 경우를 생각해보자. 가장 간단한 방법은 3개의 pod object를 선언하고 단순하게 그것의 desired states를 각각 선언하는 것이다. Pod의 desired state에 따라서 각 pod는 반드시 생성이 될 것이고, 내부적으로 nginx container이미지가 수행되어 사용될 것이다. > K8s는 manifest파일들을 통해서 이러한 pod object를 생성하고 관리할 것이다. mani..
지난 글에서 Container에 대한 내용과 kubernetes에 대한 기본적인 기능들에 대해서 소개했었다. 오늘은 Kubernetes에 대해서 더 자세히 알아보려고 한다. GCP 자료이다보니 내용에 GKE(Google Kubernetes Engine)에 대한 내용이 혼재되어 있다. 따라서 이를 최대한 정리하여 구분하려 한다. 그래야 OSS로 제공되는 K8s의 기능과 GKE로 향상된 기능을 명확하게 알 수 있기 때문이다. * Kubernetes Objects > 공식적으로, Kubernetes Object는 persistent entity로써 현재 수행되고 있는 클러스터의 상태를 나타낸다. 상태 값은 그 클러스터가 가져야 하는 desired state와 현재의 상태를 나타내는 current state가 ..
이전 글에서 GCP에 대한 기본적인 내용을 알아보았다면, GKE(Google Kubernetes Engine)을 알아보기전에 Container와 Kubernetes에 대해서 알아보자. > 일반적으로 application을 빌드하고 수행하는 경우, Dedicated Server(ex.물리적인 서버)에서 수행을 하게되면 H/W에 종속된 S/W가 만들어진다. 이렇게 개발된 S/W는 개발된 H/W와 호환성을 갖는 장비에서만 수행이 가능해진다. > VM(Virtual Machine)을 사용하는 경우 H/W를 가상으로 생성할 수 있기 때문에 H/W에 대한 의존성이 줄어들지만 대신 Kernel(OS)에 대한 의존성은 여전히 존재하게 되며, 여러개의 app이 동일한 VM에서 수행이 되는 경우 Dependencies들이..