일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- twosum
- 엘라스틱서치
- dump
- 깊이우선탐색
- Django
- Algorithm
- 리트코드
- 키바나
- daspecialty
- 파이썬
- dfs
- 프로그래머스
- solution
- Optimization
- 장고
- leetcode
- CentOS
- 해시
- Spark
- 스파크
- Easy
- programmers
- elasticsearch
- RecommendationSystem
- AWS
- Medium
- kibana
- 알고리즘
- ELK
- python
- Today
- Total
목록2022/08 (8)
Archive
Job, Stage, Task 등 다양한 레벨에서 확인할 수 있고, 실행 계획 및 실제 수행 내역에 대한 Dag Visualizaiton 도 있다. 1. Job / Stage Job/Stage 각 탭에서는 개별 Task의 Detail (완료 상태, I/O , Duration, Memory Consumption, 실행시간 등)을 살펴볼 수 있는 UI를 제공한다. ① Job > Event Timeline Executor가 뜨고 죽는 시점을 확인할 수 있고, 아래 표에서 Complete 혹은 Fail 된 잡의 정보를 볼 수 있다. Duration이 유난히 긴 Job에 대해선 조금 더 자세히 (Stage, Task 등) 살펴볼 필요가 있다. 또한 각 Job의 Description을 클릭하면 상세 Job 페이지가..
0. Overview Spark의 Join연산은 Executor들 사이의 방대한 데이터 이동을 일으킨다. 그것을 Shuffle이 일어난다고 표현하는데 어떤 데이터를 생성하고, 어떤 Key 관련된 데이터를 Disk에 쓰고, 어떻게 Key와 데이터들을 groupBy(), join(), sortBy(), reduceByKey() 같은 작업들을 진행하는 노드들에 옮기는지 등이 핵심이다. Spark의 5가지의 Join 연산 방법 중 많이 쓰이는 BroadCast Hash Join, Shuffle Sort Merge Join에 대해 살펴볼 예정이다. 1. Broadcast Hash Join (BHJ) Broadcast Hash Join (Map-Side-Only Join이라고 하기도 한다)은 Data 이동이 필요 ..
Spark SQL 엔진의 핵심으로 Catalyst Optimizer와 Tungsten이 있다. Catalyst 는 쿼리를 Optimizing 하는 데 이용하고, Tungsten은 이 Optimized Query를 바탕으로 Optimized Code를 생성하는데 이용된다. 이 둘의 조합으로 Spark SQL 엔진은 최적화된 고수준의 Dataframe / Dataset API 및 SQL 쿼리 등을 지원한다. 1. Catalyst Optimizer Catalyst Optimizer 는 Query 최적화 프로그램을 구축하는 Spark 엔진의 핵심으로, Logical Query 들을 Physical Query Execute Plan으로 변환한다. 실행 계획으로 변환하기 위한 과정은 분석 -> 논리적 최적화 -> ..
1. Spark Application Spark로 제출되는 Job들은 Task라는 저수준 RDD Byte Code로 변환되어 Executor 들에 분산된다. Application Spark 위에서 돌아가는 사용자 프로그램. Driver Program + Executor를 칭함 SparkSession Spark Core 기능들과 상호 작용할 수 있는 진입점을 제공하는 객체이다. Spark Application 에서는 사용자가 직접 Spark Session 객체를 생성해야 한다. Job Spark Action 에 대한 응답으로 생성되는 여러 Task들로 이루어진 병렬 연산. Spark Driver는 Spark Application을 하나 이상의 Job으로 변환하고, 각 Job은 DAG(실행계획)로 변환된다...
1. Spark Application 구조 소개 1) Spark Driver Spark Driver는 Spark Session 객체를 초기화, Cluster Manager와 통신하며 Executor들을 위해 필요한 자원 ( CPU, Mem 등)을 요청, Spark 작업을 DAG형태로 Transform 및 Scheduling 하는 역할을 한다. 즉, Spark 내 필요한 자원을 받아오고 Executor과 통신하는 일종의 Spark Job의 Managing 역할을 하게 된다. Spark Session 객체를 생성하고, 이 객체를 통해 Executor와 Cluster Manager과 통신한다. 2) Spark Session Spark Session은 Cluster Manager와 연결되는 객체로, Spark ..
Enviornment : Amazon Linux 2 / Python 3.7.* Problem AWS Gravtion Instance (ARM 프로세서) 에서 awswrangler package 설치 시 에러 발생 [ec2-user@ip-10-241-104-135 ~]$ pip install awswrangler Defaulting to user installation because normal site-packages is not writeable Collecting awswrangler Downloading awswrangler-2.16.1-py3-none-any.whl (248 kB) |????????????????????????????????| 248 kB 13.3 MB/s ... Collectin..
0. Overview Pyathena 는 AWS Athena를 위한 DB API를 제공하는 Package이다. 해당 글은 외부 서버(On-Prem 등) 에서 Python 내 Pyathena 패키지를 활용하여 Athena 에 쿼리를 날리는 과정을 보여준다. 1. VPC Endpoint 생성 외부 서버에서 Athena Query 를 실행시키기 위해서는 VPC Endpoint를 이용하게 된다. VPC Endpoint 는 VPC와 AWS 서비스들을 Private 하게 연결해주고 Client 는 VPC Endpoint 의 IP / DNS 등으로 접근할 수 있다.
EMR은 기존 Hadoop에서의 Computing 부분을 그대로 구현해 놓은 플랫폼이라고 이해하면 된다. (Storage는 HDFS를 사용할수도 있지만, 주로 Object Strorage인 S3과 함께 사용한다.) Cloud 특성에 맞게 Auto Scaling 도 지원하여 처리량에 따라 Instance를 유동적으로 Scale In/Out을 할 수 있으나, 흔히 떠올리는 Auto Scaling 처럼 바로바로 인스턴스가 할당되고 회수되진 않는다. 회수는 바로 해가지만 할당하는데는 8~20분 정도 걸리는 것 같다. EMR 내에는 Hadoop, JupyterHub, Hive, Zeppelin, Flink, Spark, Hue 등 다양한 분산처리 및 노트북 환경들을 제공한다. 아래와 같이 내가 필요한 서비스의 버..