본문 바로가기

전체 글30

[2장] 아파치 스파크 시작 아파치 스파크 다운로드 pip isntall pyspark 를 통해서 pyspark를 설치해준 상태에서 로컬로 실시했다. 파이스파크 셸 사용 pyspark, spark-shell, spark-sql, sparkR의 네 가지 인터프리터들이 포함되어 있어 일회성 데이터 분석이 가능하며, 파이썬, 스칼라, R, SQL이나 bash 같은 유닉스 셸을 써봤으면 대화형 셸들이 익숙할 것이다. 이 셸들은 클러스터에 연결하고 분산 데이터를 스파크 워커 노드의 메모리에 로드할 수 있도록 확장 되어왔다. 로컬 머신에서 사용하기 ㅇ스파크 연산들은 작업으로 표현되는데, 작업들은 태스크라는 저수준 RDD 바이트 코드로 변환되며 실행을 위해 스파크의 이그제큐터들에 분산된다. 이후 빠져나가기 위해서 Ctrl-D를 누르면 된다. 스.. 2023. 7. 7.
[5장] 리소스 관리 리소스 이해하기 워크로드에 사용 가능한 클러스터 리소스를 최대한 활용하는 동시에 트래픽 폭증, 노드 장애, 잘못된 배포 상황에 대처할 수 있는 충분한 여유 공간을 확보할 수 있는 방법은 무엇이 있을까?? 쿠버네티스 스케줄러 관점에서 생각을 해보자. 여기서, 스케줄러는 주어진 파드를 어디에서 실행할지 결정하는 역할을 하는데, "파드를 실행할 수 있는 충분한 리소스를 가진 노드가 있는가?" -> 파드를 실행하는데 얼마나 리소스가 드는지 알아야 답을 할 수 있다. 리소스 단위 파드의 CPU 사용량은 CPU 단위로 표시되며, 쿠버네티스 CPU는 AWS의 vCPU, 구글 클라우드의 코어, AZURE의 vCore와 동일하다. 쿠버네티스 용어로 1CPU는 일반적인 CPU단위로 보면 된다. 대부분의 파드는 CPU 전체.. 2023. 7. 4.
[1장] 아파치 스파크 소개 아파치 스파크란!!?? 데이터 센터나 클라우드에서 대규모 분산 데이터 처리를 하기 위해 설계된 통합형 엔진! 스파크는 중간 연산을 위해 메모리 저장소를 지원하여 하둡 맵리듀스보다 훨씬 빠르게 동작할 수 있다. 스파크는 머신러닝(MLlib), 대화형 질의를 위한 SQL(스파크 SQL), 실시간 데이터 처리를 위한 스트리밍 처리(스파크 스트리밍), 그래프 처리(GraphX) 등을 위해 쉽게 사용 가능한 API들로 이루어진 라이브러리를 갖고 있다. 스파크의 네 가지 핵심 특성 - 속도 - 스파크는 질의 연산을 방향성 비순환 그래프(DAG)로 구성되며, 이 DAG의 스케줄러와 질의 최적화 모듈은 효율적인 연산 그래프를 만들어서 각각의 태스크로 분해하여 클러스터의 워커 노드 위에서 병렬 수행될 수 있도록 해 준다.. 2023. 6. 28.
[4장] 쿠버네티스 오브젝트 다루기 디플로이먼트 만약 컨테이너가 종료가 된다면, 터미널에 접속하여 docker container run 명령어로 컨테이너를 다시 시작해줘야하는 불편함이 있다. 이런 방식은 불편하며, 지속적으로 컨테이너가 실행 중인지 혹은 정지되었다면 다시 실행해야하는지 관리하는 관리프로그램이 필요하다. 전통적으로 systemd, runit, supervisord 같은 도구를 사용하고, 쿠버네티스의 경우 디플로이먼트라는 관리자 기능을 제공한다. 관리와 스케줄링 쿠버네티스는 각 프로그램을 관리하기 위해 디플로이먼트 오브젝트를 생성하는데, 디플로이먼트 오브젝트에는 해당 프로그램에 대한 정보가 기록된다. 쿠버네티스의 오브젝티브인 컨트롤러는 디플로이먼트 리소스를 관리하며, 컨트롤러는 리소스가 존재하고 작동하는지 확인한다. 컨트롤러는.. 2023. 6. 20.