두 번째 글
Hadoop Ecosystem
@Hadoop Tools for Crunching Big Data
방학동안 스마일게이트 서버개발캠프를 참여하면서, 팀 프로젝트로 데이터 파이프라인 개발 을 하게 되었다. 무지한 상태로 Kafka, Spark, Cassandra 를 다뤄보면서 한계를 참 많이 마주하였다. 특히 프레임워크에 대한 이해도가 충분하지 않은 채 사용하는 것을 정말로 스스로가 답답할 정도였다. 심지어 나는 관련 생태계에 대한 지식도 없었기에 이리저리 공부만 하다 이끌리기 십상이었다.
아무튼 프로젝트 마지막에 분산 클러스터 환경으로 스파크 잡을 실행해보려 하였다.
하지만, Pyspark
는 클러스터 매니저로 Standalone
을 지원하지 않았고, 해결을 위해선 Hadoop Yarn
을 사용한다는 사실을 알게 되었다. 이것저것 해보다가 결국 프로젝트는 끝나버렸다.
사실 프로젝트(TweetDeck Clone)에서 개발한 데이터 파이프라인 내 Ingestion 및 Processing이 간단했기 때문에 이래저래 기능은 구현했던 것 같다.
결론은,
정의 및 목적 - Hadoop Ecosystem is neither a programming language nor a service, it is a platform or framework which solves big data problems.
Below are the Hadoop components, that together form a Hadoop ecosystem
데이터 파이프라인을 만들 때 사용하지 않았다. 그저 DB로써 생각하였고, 디스크 읽고 쓰기 때문에 인메모리 프로세스보다 속도가 느리다고 들었다. 그래서 그저 cassandra를 썼었다. 하지만, 이 Hadoop Ecosystem을 활용하여 데이터 파이프라인을 개발하는 과정에서 고려해야만 했었다. 마지막에 결국 Hadoop 환경을 설정해야하는 한계를 마주했다. 전체 파이프라인에서 필요한 기능에 따라 알맞은 프레임워크를 택해야 하고, 전체적인 구조를 잘 구현하는 과정에서 HDFS가 backbone이라고 표현한 이유를 알 것 같았다.
Hadoop Ecosystem의 두뇌 역할
It performs all your processing activities by allocating resources and scheduling tasks.
사실 스파크 잡이든 쿼리든 어플리케이션의 모든 잡들을 YARN에게 제출하고, YARN이 이를 받아서 어디서 실행시키고 로그를 저장하고 이런 것들을 관리하기 때문에 사실 이것도 필수이다. 나는 생태계 내 프레임워크들을 너무 독립적으로 생각하였다.
정리하기 점점 벅차네
감탄사가 나온다. 구글짱. 아래 그림으로 간단하게 이해하였다.
노션에 공부하고 정리한 글이 수두룩 하다. 하지만 이제야 이해 후 헬로우 월드 정도 하는 기분이다. 힘들지만 재미있다.
SQL Query를 처리하는데 가장 MapReduce가 유용하게 쓰이는 것 같다.
Kafka를 사용하면서 이 친구에 대해서 궁금했었다. 간단하게 알아보자.
사실 이 모든 것을 정확하고 깊게 파악하기란 너무 고되고 긴 시간이 필요할 것이다. 하지만, 어느 정도 각각의 역할과 돌아가는 방식에 대해 알아야만 후에 빠르게 고민하고 적용하고 배우면서 사용하지 않을까. 어렵다 증말.
끝
+Hadoop Tutorial 란 글을 먼저 읽고 왔어야 했던 것 같다. 다음 글 확정.
안녕하세요 카산드라 사용하는분을 찾기가 힘든데 사용하고 계시다니 반갑습니다.
국내에 카산드라 커뮤니티가 없어서 얼마전에 개설했는데 홍보하고자 합니다.
주소는 https://www.facebook.com/groups/cassandrausergroup/ 이고..부담스럽지 않으시다면 같이 노하우 공유나 정보 공유 해주셨으면 합니다! 감사합니다.