오픈소스

M1으로 docker 로 설치하다 실패해 local로 설치하는 과정

JMDev 2023. 12. 15. 10:15

드루이드를 설치하면서 겪었던 경험

 

M1으로 설치하기엔 너무 많은 어려움이 있었다.

 

우선 나의 경우, docker로 druid를 설치하여 사용하길 원하였고

그래서 해당 부분을 위해 druid 공식 Git에서 Docker 파일을 찾았고

어떻게 진행해야 하는지에 대한 ReadMe가 적혀있었고, 가이드라인대로

진행하였다. 

https://github.com/apache/druid/tree/master/distribution/docker

공식문서에서 명시되어 있기론 maven를 빌드를 진행한 후에, 

빌드된 파일을 기준으로 docker image를 진행하라고 나와있다.

 

우선 문제.

mvn clean package -DskipTests -Pdist

 

위 명령어를 실행하면 에러가 발생한다.

발생하는 문제는 bigdecimal 관련 설치되는 라이브러리가 문제인 것 같은데

druid 관련 에러 검색키워드로 찾아보아도 나와 유사한 사람이 하나도 없었다.

 

여기서부터 답답했는데, 구글에 대부분 하나정도 유사한 사례를 가지고 있는

질문글 하나라도 보기 어려운 케이스는 처음인 것 같았다.

 

설치하다 실패했고, 다시 설치해보고 실패하고.

그래서 Mvc 빌드 부분 건너뛰고 도커 설치해보려고 하는데 그것도 정상적으로 안되었다.

 

음.. 그래서 docker container로 작성된 yaml을 실행하기로 했다.

우선 설치도 정상적으로 되고, 도커에 정상적으로 올라갔고, localhost로 접속시 정상적인 대쉬보드가 나왔다.

근데 결정적으로는 정상적인 실행이 안되었다.

왜 그런가 하고 보니, 실행되는 컨테이너들 중 꼭 하나가 죽어버리는 상황이 발생했다.

더 자세히 보니, 드루이드에서 실행하는 각 컨테이너들의 메모리들 다 합쳐서 

도커의 RAM의 크기가 최소 7기가가 요구한다고 한다. 그래서 Docker 데스크탑에 가서 변경하는 부분에 가서

수정해주었다. 물론 잘 되진 않았다. 그래서 여기서부터 멘붕이 살짝 왔다.

이렇게 HelloWorld 보기 어려웠던 경험은 오랜만인 것 같았다.

실행되는 도커 컨테이너 CLI 접근해서 로그를 보니 OOM이 발생하고 있었고,

그래서 우선 더 진행하지 않았다.

 

https://druid.apache.org/docs/latest/tutorials/docker

 

읽어보니 메모리에 대한 언급이 나와있다. 해당 도커 컴포즈에서는 7GB 가량 Ram 공간을 요구한다.

메모리 없으면 137 에러가 발생한다고 한다. 위에서도 언급했듯, 도커 데스크탑에서 용량 세팅을 하더라도

이러한 문제가 계속 발생했다.

 

위 사항들을 쭉 겪어보고, 곰곰히 생각해서 성급한 결론은 M1 자체와 호환이 안되는 영역들과 그만한 성능을 받쳐주지 않으면

우선 드루이드를 도커 컴포즈 형태로 실행하기 어렵다 라는 것이다.

그래서 드루이드를 도커를 사용하지 않고, 로컬에서 싱글모드로 진행하였다.

 

https://druid.apache.org/downloads/

 

Download | Apache® Druid

Download

druid.apache.org

위 페이지에 설치하는 방법은 잘 나와있다. 바이너리로 된 파일을 다운받고 알집을 푼 후에,

quickstart에 나와있는 가이드라인대로 바로 드루이드를 실행시킬 수 있다.

단 몇 분만에 드루이드를 실행하였고, 도커 컴포즈에서 드루이드의 튜토리얼를 실행하면 Task가 맛탱이가 가던

현상이 아닌, 정상적으로 드루이드에 테이블을 만들어졌다.