본문 바로가기

스파크2

[Apache Spark] 스파크의 구조와 실행흐름 이해하기 스파크 애플리케이션의 구조 스파크를 사용하면서 잊지 말아야 하는 점은 데이터는 항상 분산되어 있고 같은 연산을 하더라도 여러 노드에서 작업한다는 점이다. [스파크 구조 설명] 스파크는 작업을 관리하는 드라이버 프로그램과 작업이 실제로 작동되는 워커 노드로 나뉘어 있다. 그리고 중간은 클러스터 매니저가 존재하는데 클러스터 매니저는 드라이버 프로그램과 워커노드를 연결시켜주는 중간다리 역할을 한다. [용어 설명] Driver Program : 개발자가 상호작용 할 수 있는 노드이다. main함수를 실행하고 스파크 Context를 생성한다. Spark Context : 새로운 RDD를 생성하고, 클러스터 매니저와 연결되는 객체이다. Cluster Manager : 드라이버에서 지시받은 작업(리소스)의 스케쥴링과.. 2022. 3. 30.
분산처리의 문제점 분산처리중 신경써야하는 문제점 1. 부분 실패 - 노드 몇개가 프로그램과 상관 없는 이유로 인해 실패 => RDD의 불변한 성질을 이용해 복구가 가능함 => 스파크 내부에서 일어나는 과정이라 크게 신경쓰지 않아도 됨. 2. 속도★ - 많은 네트워크 통신을 필요로 하는 작업은 속도가 저하 => 네트워크 통신을 필요로 하는 코드를 후순위에 두고 작성해야한다. => 네트워크는 메모리 연산에 비해 100만배 정도 느리다. 참고 이미지 2022. 3. 23.