1. 스파크 클러스터
- 여러대 서버가 마치 한대처럼..
- 클러스터 환경, 대량의 데이터를 나누어 각 서버에서 병렬로 처리
- 네트워크 , 장애, 자원스케쥴링등 스파크에서 관여
2. 분산데이터 - RDD
resillient distributed datasets, 회복력 가진 분산 데이터 집합 literally!!
회복력이 있다?
데이터 처리 중 문제가 생겨도 다시 알아서 회복할 수 있다는 말
anyway, 분산 데이터 집합.
일정 단위의 작은 집합으로 쪼개져서, 스파크 클러스터에 흩어져서 저장됨
3. RDD 불변성
- 스파크는 RDD 만들어내는 방법을 기억하고 있다.
- how?
- 리니지. 계보
- 스파크는 데이터가 유실되면 다시 백업해둔걸 불러오는게 아니라. 기억해둔 방식으로 데이터를 다시 만들어낸다.
- 한번 만들어진 RDD는 변경되는게 아니다. 새로 만들어져서 저장되는 것
4. 파티션
- RDD 데이터는 클러스터 구성하는 여러 서버에 나누어 저장됨..
이것을 파티션이라는 단위로 관리함
매우중요함//////////////////////////
5. HDFS
- 이건 하둡의 파일시스템임 . 근데 왜 스파크 RDD 얘기하다가 갑자기 하둡이냐...
스파크는 하둡과 관련이 깊다. Hadooooooooooop의 파일입출력 API와 의존성 가짐
스파크 깔때보면, 스파크도 하둡버전별로 나누어져있엇음
- 스파크 데이터 입력/출력이 하둡의 inputFormat, outputformat을 씀
- 하둡은 데이터 읽을때, inputSplit 분할정책에 따라서 전체 데이터를 블록/단위로 분할한다.
설정을 내가 따로 해주지 않는이상, 이 블록이 스파크 파티션단위임
block = 스파크 파티션 단위가 됨
but 이건 설정에 따라 변경도 가능
6. job / Executor
- 스팤 프로그램 실행한다 = 스팤 잡 실행한다
- 하나의 잡 , 클러스터에서 병렬로 처리되는데
이때 각 서버마다 worker node -> executor 프로세스 생성한다. 그리고 여기서 각자에게 할당된 파티션을 처리한다. 아까 말한 RDD 처리말하는 거임
7. 드라이버 프로그램
- 주인
- 잡 실행하는 메인 프로그램 (메인함수 갖고잇는 아이)
- 드라이버는 spark context를 생성하고, 그 instance갖고 잇음
- 그걸 갖고잇는 놈을 드라이버 라고 부름
- 드라이버 프로그램은.. 자신을 실행해준 서버에서 동작하게 되고 (보통)
- spark context 생성해, 각 워커노드들한테 작업을 준다.그리고 결과를 받음
- 일반적으로 보통.. 드라이버 프로그램은 spark cluster안에 안넣는다고 한다;;;
8. transformation, action
- RDD 에서 나오는 용어
- RDD가 제공하는 연산인데 두 종류임 : transformation, action
- API라고 보면 됨..
- 이건 좀 자세하게 나중에 RDD에서 따로 포스팅 하겠음
9. lazy
10. 함수형 프로그래밍
scala, python, java8
'IT > Spark' 카테고리의 다른 글
플젝) Spark Streaming 이용한 온라인러닝 시작1 (0) | 2017.06.25 |
---|---|
3) Scala 기본적인 문법들 (0) | 2017.06.12 |
2) 환경구축!! (0) | 2017.06.10 |
1) 스파크 용어 정리 (0) | 2017.06.10 |