brunch

You can make anything
by writing

C.S.Lewis

by 정주홍 Feb 13. 2018

2017년 9월부터 5개월 간의 경험들

새로운 회사에서 어떤 일들을 했을까

한 달 전쯤부터 어떤 일들을 했는지 꾸준히 정리해야겠다고 마음먹었는데 차일피일 미루다 이제야 정리해본다. 매일매일 새로운 문제를 만나고, 또 극복하면서 굉장히 많은 일을 했다고 생각했는데 막상 정리하면서 별 것도 아닌 것 같은 일들은 소거하다 겨우 이 정도 일을 이렇게나 오래 걸려서 했나 싶어서 슬플 따름이다.



데이터 파이프라인 구축

기존의 방식에서 HDFS에 저장하는 방식으로 전환

AWS Kinesis Firehose + EMR을 시도해본 뒤 직접 Hadoop Ecosystem 환경을 구축하기로 결정

Hadoop Ecosystem Component들 관리를 위해 Apache Ambari 사용

HDFS 운용 경험

HA를 위한 Secondary Name Node, Journal Node 개념 이해와 설정

Replication을 위한 설정 조율

HDFS Rebalancing

Data Node 증설 및 디스크 추가

YARN 운용 경험

Resource Manager, Node Manager의 역할 이해

Local Cache로 인한 디스크 부족 상황 경험

Spark application의 Dynamic Allocation

데이터 파이프라인 Component 간의 데이터 전달을 위해 Kafka 구축

Producer, Consumer, Offset, Consumer Group, Lag 개념 이해

디스크 용량 부족시 디스크 증설 작업 경험

Broker 증설 작업 경험

장애로 인해 Broker가 급사했을 때 복구 경험

Exactly Once Semantic Messaging을 위해 NoSQL 기반 Component 활용

Aerospike 운용 경험

그러나 HDFS에 저장할 때는 동일한 메세지를 동일한 파티션에 저장한 뒤 파티션째로 Cleansing Job을 돌리는 것으로 메세지 중복 제거

운영 단 사용은 Zeppelin으로

Interpreter 개념 이해 및 설정

User Impersonation

Ambari Metrics Collector, Grafana로 서버 모니터링


데이터 Format 문제

Format이 섞이면서 생기는 문제들 경험

JSON 포맷 충돌로 인한 고통 경험

이 문제를 극복하기 위해 JSON Schema 기반 Strict Format 도입

Format Migration


저장된 데이터 분석은 Spark로

기본적인 Spark 작동 원리 이해

Driver, Executor

여러 가지 연산들

빠른 조회를 위해 Partitioning

어떤 경우 Partition filtering이 안 되는지 이런저런 실험

Out Of Memory의 고통을 많이 경험

분석을 위한 여러 가지 로직 개발 경험

Retention 분석

Single Touch, Multi Touch, Multi Source 분석

Join시 Hash partitioning에 의한 Data skewing 문제

Theta join시 Cross join이 되지 않도록 회피하기 위한 작업

Kafka로부터 HDFS에 저장하기 위해 Spark Streaming + Kafka Ingestion 활용


해보고 싶었지만 아직 해보지 못한 것들

데이터 파이프라인 모니터링 및 경고 시스템 개선

무중단 HDFS 버전 업그레이드

HDFS 인프라 작업 도중 Data Node가 갑자기 Stale 상태가 될 때가 있는데, Name Node를 재시작하면 문제는 해결되지만 정확한 이유가 뭔지 아직 밝히지 못함

실시간 데이터 및 로그 조회 편의를 위한 ELK 구축

비용 절감을 위한 Hot-warm Architecture 구성

데이터 파이프라인 Component에 Akka 구조를 적용하여 좀 더 내구성 있게 보완



이 일들을 하면서 도움을 주신 분들에게 정말 감사하다는 말씀을 드리고 싶다. 마지막으로, 어서 분석 쪽으로 더 많은 일을 해보고 싶다.


작가의 이전글 서버 개발자가 장애를 만났을 때
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari