이번에 회사에서 Google Cloud Platform에 있는 dataproc을 사용 하였습니다.
이런 저런 글을 보고 pyspark를 이용하여 실행하였지만 여러가지 문제가 많았으며 혼자서 많은 시행착오를 겪고 이러한 것을 조금이나마 줄이고자 글을 올립니다.
기준은 pyspark 입니다. 제가 개발자가 아니라서 코딩에 익숙하지 않고 python 또한 잘 하는 편이 아니므로, 코드는 매우 단순합니다. 우선 처음에 만드는 과정부터 순서데로 진행 하겠습니다.
1. Dataproc 생성
Google Cloud Platform( 이하 GCP)에서 Dataproc 메뉴를 선택 합니다. 처음에 동의 또는 시작하기 같은 안내 말이 나옵니다. (가장 초기에) 동의 또는 시작하기를 눌러서 시작한 뒤에 클러스터 부분을 들어 갑니다.
클러스터 이름의 경우 자동으로 임의로 되어 있는데 자신이 원하는 이름으로 변경 하시면 됩니다.
이후의 내용은 크게 중요한게 없고 원하시는 인스턴스 타입 및 용량,네트워크,리전등을 선택 합니다. 그런데 여기서 이상한게 자동 확장 정책 옵션이 비활성화 되어 있습니다. (제일 중요할 것 같은데...)
일단 노드 개수 및 여러가지를 세팅하고 한가지 중요한 것을 해줘야 합니다. 아래에 보시면 작게 고급옵션이 있습니다.
내용을 눌러서 확장하면 여러가지 내용이 나옵니다. 네트워크, 초기 설정 스크립트 설정 및 이미지(운영체제) 선택등등 여기서 유심히 보실 것이 선택적 구성요소 입니다.
저기 버튼을 누르면 Jypyter notebook, Druid , Zeppelin Notebook 등 다양한 내용의 Tool을 설치 할 수 있습니다.
2. 코드 세팅
저 같은 경우 pyspark로 했기 때문에 python코드를 준비 하였습니다. 여기서 중요 한 것은 분산처리 하는 코드를 만들어야지 분산처리를 한다는 것 입니다. 저 같은 경우 spark를 처음 접해봤기 때문에 단순히 python 코드를 짜면 알아서 분산 처리 한다고 생각하고 처음에 돌렸다가 master 노드만 열심히 일 하는 것을 보고 몇일을 삽질 했습니다.
그리고 인터넷을 찾아보면서 SparkContext를 알았고 여기서 옵션을 설정 할때 SparkContext("local")을 이용하여 많은 오류를... 그리고 많은 삽질을 거듭하였습니다. (참고 : https://burning-dba.tistory.com/104)