본문 바로가기
Hobby

Raspberry And Hadoop

by Calvin H. 2022. 5. 31.

하둡

제일 먼저 내가 파고들었던 분야는 하둡이었다. 로고도 희한하게 노란색 코끼리에다가 무슨 의미인지도 모르는 단어를 사용해서 그런 것일수도 있다. 그래서 일단 무작정 책을 사서 읽기 시작했다. 이 때 샀던 책은 '엔터프라이즈 데이터 플랫폼 구축' 이였을 거다. 아무것도 몰라서 그랬는지 처음 듣는 용어들과 낯선 개념들은 한 귀로 들어와 반대 방향으로 걸어 나갔다. 한 장만 읽는다해도 함축된 의미와 용어들이 날뛰었다고 생각했다.

그도 그랬을 것이 첫 장부터 하둡 에코시스템에 대해서 설명을 하게 되면서 한번에 모든 서비스들을 소개했기 때문이다. 지금 돌이켜 생각해보면 오히려 그렇게 한 것이 나았다. 하둡은 엮여 있는 개념들이 있기 때문에 이들을 분리해서 소개하는 것이 힘들다고 생각한다.

아마 이 때 제일 관심 있었던 것은 데이터 센터를 실질적으로 만들어보고 서버 랙도 직접 만드는 것이었을 거다. 이 책에서는 정말로 on-premise 구축을 위한 실질적인 안내서가 있기 때문에 냉방이라던가 랙 크기 및 제품 등 정말 상세히 기록이 되어 있었다. 저자가 알고 있는 지식을 알 수만 있다면;;

라즈베리파이 3개로 하둡 구축

다음으로 관심 있었던 것은 하둡을 소스코드를 가지고 구축해보는 것이었다. 물론 가장 기본적인 것들만 염두에 두고서 말이다. 이미 라즈베리파이가 1개 있었지만 이를 위해 2개를 더 구비해 3노드 형태로 갔다.

하둡은 버전 3을 사용했고 라즈베리 OS 설치부터 먼저한 뒤에 SSH 를 연결해서 메인 노드에 하둡을 설치하고 설정을 해 놓은 뒤에 쉘 함수들을 미리 구현해 다른 워커 노드들에도 하둡 체계를 구현할 수 있었다.

이 때 아마 가장 많이 배웠던 것 같다. 직접 손으로 일일이 쳐가면서 경험했던 수많은 오류들은 인내심을 길러줬다. 제일 싫었던 것은 자바 오류였다. 최소한 10번은 넘게 구축하고 지우고 했었다. 그도 그럴것이 어쩔 때에는 SSH 설정하다가 실수로 SSH 접근을 못하게 막기도 해서 다시 재설치를 해야 했다 (보조 모니터만 있었다면;;). 모니터 한 대 없이 달랑 노트북 하나를 가지고 라우터에 연결하는 것도 쉽지 않았다.

기존에 집에 있는 공유기는 만 오천원 정도의 공유기였다. 이 때도 문구점에서 급하게 저렴한 제품을 구하느라 성능은 정말 최저였다. 걸핏하면 3 미터 정도 떨어진 곳에서 핸드폰과 송수신이 잘 안될 정도로...

그래서 공유기가 버틸 수 있는 네트워크량을 넘어선 하둡 환경은 집 내 인터넷을 마비시켰다. 지금은 10만원 상당의 고가의 공유기로 매우 잘 버티고 설정도 편하게 하고 있지만...

물론 공유기로 계속 유지할 생각은 아니지만... 네트워크 장비 넘 비쌈... 마음 같아서는 POE 스위치 사고 싶은데, 다음 번에 여유가 생기면 고민을 해봐야겠다.

무튼 장비를 바꾸고 나서부터는 네트워크에는 크게 문제가 없었다. 하둡도 라즈베리파이가 버틸 수 있도록 yarn 과 mapreduce 가 사용하는 메모리 제한도 조절해줬다. 물론 이건 인터넷에서 수많은 사이트를 찾아보며 해냈기 때문에 실질적 도입보다는 정보 찾기가 더 힘들었다.

한 8번째? 10번째? 정도가 되고나니 대략 어떤 설정들을 해줘야 하는지, 하둡의 노드간 소통이 어떻게 이루어지고 원활하게 하기 위해서 어떻게 해야 하는지, 그리고 규모가 커질수록 네트워크 트래픽에 대한 신경도 써야하고 토폴로지도 신경 써야 하는 것도 조금은 느꼈다. SSH 도 꽤 많이 쓰게 되었고 pem 키 생성도 어렵지 않게 할 수 있게 되었다. 또한 하둡의 소스코드를 가지고 노드를 세팅하는 것은 그렇게 큰 어려움이 되지 않았다.

그래서 시도해 본 것이 ansible 이었다. 파이썬 코드로도 동작하기도 하지만 따로 controller 노드 외에는 설치할 것이 따로 없어 매우 간편하고 편리했다.

주저리 주저리의 결론

처음 접하는 순간부터 하둡은 예상치 않았다. 특히 HDFS 의 내부가 어떻게 동작하고 하둡 1, 2, 3 의 차이가 뭔지 파악하기도 쉽지 않았다. 하지만 이제는 어느 정도 개념은 낯설지가 않게 되었다. 왜 하둡에 작은 파일들이 많이 있으면 비효율적인지, 빅데이터의 규모는 그래도 어느 정도여야 하는지, HDFS 의 블록 단위가 128mb 라는건 왜인지 등 어느 정도 흥미와 교훈을 얻게 되었다.

사실 하둡을 구축했으면 스파크도 덩달아 오는 수순이 자연스럽다. 이전에 사용되던 mapreduce 도 고려할 수 있지만 그래도 스파크가 현재 더 사용되고 있는 것 같다. 더군다나 persistent memory 등의 다양한 활용 등을 통해 스파크가 더 빛을 발할 수 있을 것 같다는 생각도 들었다.

물론 그래도 아직 모르는 것이 수두룩하다. 하둡 네트워크가 어떤 프로토콜로 소통을 하는지, 데이터 직렬화에 대한 이해도와 중요성을 아직 실질적으로 알지는 못한다. 하지만 데이터 엔지니어링이란 흥미로운 것 같다.

'Hobby' 카테고리의 다른 글

라즈베리파이 클러스터 구축  (2) 2023.10.04
k3s Basic Setup  (0) 2022.06.01
Basic k3s with Raspberry Pi  (0) 2022.06.01