IT/Spark

3) 시작하기 앞서 간단

성진팍 2017. 6. 15. 22:17

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