하둡 클러스터에서 특정 파이썬 모듈을 쓰고 싶은 상황이다. 그런데 클러스터는 내꺼가 아니잖아? 이걸 수백대에 설치해달라고 하기도 뭐하고 스크립트 돌려서 설치 후 돌도록 뚝딱뚝딱이 쉬운 것도 아니다.
나는 라떼라서 하둡 스트리밍을 애호한다. 스팍을 써도 마찬가지이긴 한데. 여튼 실행할 파일과 모듈을 같이 배포하면 뚝딱이다. 인터넷 찾으면 많이 나온다.
.py 라면 쉽다. 주로 내가 만든 모듈이다. 그냥 같이 배포하고 실행 경로에 같이 있으면 된다. 실행할 때 files 등 인자로 넘기면 걍 알아서 임포팅 된다.
.py가 넘의 모듈이면? site-package 등에서 뒤진다. python 실행하고 sys.modules, sys.path 등을 찍어보고 거기 경로에서 뒤지면 된다. .py 파일을 획득하여 같이 배포하면 된다.
.so면? 하.. 난감하네. setup.py로 빌드해서 설치하면 되는데 클러스터는 내꺼가 아니잖아? 아몰랑을 시전하고 그냥 .so를 같이 배포해보았다.
.... 된다?
외않됀되???!!!
그런데 아키텍쳐 등이 안 맞으면? 빌드는 내 컴에서 했는데 클러스터는 내 컴과 사맛디 아니할수 있다. 빌드할 때 동원된 공유 라이브러리들의 버전이나 아키 특성이 아다리가 안 맞으면 .so가 실행이 안 될 것이다. 그러면 답이 읎따. mr 하나 돌리면서 uname 같은 걸로 아키나 ldd 등 내용을 떠보고 나랑 짝을 맞챠봐야지.. 이게 뭔 리버싱이냐 포렌식이냐.. 클러스터는 무슨 블랙박스냐 마포대교는 무너졌냐?