내가 보려고 만든 블로그
<Spark Camp> 1주차 스파크 개요 본문
패스트 캠퍼스에서 진행하는 Spark 강의를 듣게 되었다. 강의 내용을 그대로 요약하고 적는건 저작권 침해 일수도 있겠단 생각이 들어 매주 수업 들은내용에서 알게 된점과 느낀점 등을 나중에 떠올려 볼수 있게 간단하게 적어보려고 한다.
우선 강의를 시작하며 가장 좋았던 점은 실습환경을 강사님이 다 준비해주셨다. AWS에 emr 서비스가 아닌 4개의 인스턴스를 띄운 후 클러스터로 구성해주셨다. 그리고 클러스터안에 실습에 필요한 하둡, 스파크 ,제플린 등등을 설치를 다해주셨다. 꽤나 고생하셨겠단 생각이 든다.
준비해주신 클러스터에 ssh spark@< ip > 를 통해 접속할 수 있었고 etc/hosts 에 ip와 name을 지정해두면 서버 네임으로 접속을 할 수 있었다.
스파크에 대해 설명해주신 것들을 인상깊은것만 애기하자면
1. 스파크 sql 을 통해 거의 99프로의 작업을 할 수 있다. 게다가 spark sql을 사용하면 옵티마이제이션 기능이 있어 퍼포먼스를 크게 올릴 수 있기 때문에 간단하게 쓰고자하면 괜히 RDD 수준으로 건드리기 보다는 이 정도만 사용해도 훌륭하게 SPARK를 사용할 수 있다. (RDD 를 배우긴 할 것이라고 하셨다.)
2. 스파크 Streaming 을 통해 데이터 Streaming을 할 수 있지만 Flink 라는 툴을 더 추천해주셨다.
3. 스파크는 인메모리 기반 클러스터 컴퓨팅 엔진이라고 한다. 인메모리 기반 이란 캐쉬라고 생각하면 된다 .자주 사용 or 반복되는 작업을 메모리에 올려 빠르게 처리할 수 있게 해준다.
4. 후에 Rdd에 대해 자세히 배울 것이지만 간략하게 적어보자면 스파크코어에서 핸들링 하는 데이터타입이 바로 Rdd 이다. RDD를 조금 억지로 비유해보자면 배열 같은 것이라고 하시는데 아직은 느낌이 잘 오지 않는다.
5. 스탠드어론 이 나쁜것은 아니다 . 오히려 스파크 작업만을 할 것이라면 가볍게 돌려볼 수있다 .하지만 Flink , presto 를 다룰 수 있는 Yarn 과 다르게 스탠드어론은 오직 스파크 와 관련된 것만 처리가 가능하다.
실습
첫 주라서 제대로된 실습을 하지는 않았고 이런게 있구나~ 라고 구경만 당장은 하였다.
1. HDFS 실행해보기
../start-dfs.sh 를 실행한후 자바 프로세스 확인 명령어인 jps 를 쳐보니 namenode 라는 프로세스가 작동중인 것을 확인할 수 있었다.
마스터에서 명령을 내려주면 ssh로 마스터가 워커들에게 명령을 내려줘 worker에서도 동작하는 것을 확인할 수 가 있었다.
웹을 통해서도 hdfs를 관리할 수 있었다.
2. Yarn
../start-yarn.sh 를 통해 yarn을 실행할 수 있었고 마찬가지로 jps 명령어를 통해 resource manager 가 작동하고 있는걸 확인할 수 있었다.
3. Stand Alone 으로 스파크 실행
../start-all.sh 으로 워커들을 모두 연결하여 시작해줄수도 있지만
../start-master.sh
../start-worker.sh <마스터노드의 주소>
형식으로 마스터를 동작시켜주고 워커를 각각 동작시켜 실행을 해줄 수도 있다.