EMR 이란?EMR(Elastic MapReduce). AWS의 Hadoop 서비스(On-demand Hadoop)로 Hadoop(YARM), Spark, Hive, Notebook(Zeppelin) 등이 설치되어 제공되는 서비스.EC2 서버들을 worker node로 사용하고 S3를 HDFS로 사용 Spark on EMR 실행AWS의 EMR 클러스터 생성EMR 생성시 Spark 실행(옵션 선택)S3를 기본 파일 시스템으로 사용EMR의 마스터 노드를 드라이버 노드로 사용마스터 노드를 SSH 로그인(spark-submit 사용)Spark의 Cluster 모드에 해당🔽 관련 포스팅 확인 Cluster 모드가 무엇인지 모른다면? [Spark] YARN 기반 Spark Cluster 프로그램의 구조Spark..
Spark Session프로그램 마다 하나를 만들어서 Spark Cluster와 통신(Singleton 객체)DataFrame, SQL, Streaming, ML API 모두 통신config 메소드를 통해 환경설정 가능RDD 관련 작업은 SparkSession 밑에 sparkContext 객체 사용Spark 세션 생성from pyspark.sql import SparkSession SparkSession은 디자인 패턴 builder의 싱글턴 패턴 사용.getOrCreate() 한 프로그램에 하나의 오퍼레이터만 있으면 된다spark = SparkSession.builder.master("local[*]").appName("앱이름").getOrCreate() 세션 종료spark.stop() 드라이버 상에 S..
Spark 프로그램의 구조Driver실행되는 코드의 마스터 역할 수행(YARN의 Application Master)사용자 코드를 실제 Spark 태스크로 변환해 Spark 클러스터에서 실행실행모드(client, cluster)에 따라 실행되는 곳이 달라짐cluster 모드로 돌 때는 드라이버가 YARN 클러스터 안에서 컨테이너 내 동작→ Application Master실제 프로덕션 운영시(Spark-submit과 같은 커맨드라인 유틸리티를 써서 개발이 끝난 경우)client 모드일 때는 YARN 클러스터 밖에서 실행교육이나 개발용으로 사용Spark Shell, 노트북으로 프로그램 실행코드를 실행하는데 필요한 리소스를 지정 --num-executors, --executor-cores, --executor..
Apache Spark란?Aparche Spark 3.0의 구성다양한 분산환경 위에서 애플리케이션 형태로 올라가서 돌아가는 분산 컴퓨팅 시스템코어 엔진 위에 SQL, Streaming, Graph, ML 처리 기능등이 제공됩니다.MapReduce vs. Spark낮은 생산성(맵리듀스) ↔️ 판다스 데이터 프레임 API와 SparkSQL을 통해 구조화된 데이터의 생산성을 높임 (스파크)2가지 오퍼레이션만 지원(배치 처리) ↔️ 다양한 방식의 컴퓨팅 지원(배치 데이터 처리, 스트림데이터 처리, SQL, 머신러닝, 그래프 분석)튜닝/ 최적화가 쉽지 않음(데이터 분포가 균등하지 않은 경우) ➡️ Data Skew는 Spark에서도 여전히 발생배치 작업 중심 (Low Latency가 아닌 Throughput에 초..
프로그램 실행bin/hadoop jar [jar파일 위치.jar] [프로그램이름] input outputbin/hadoop은 bin/yarn과 같은 명령어bin/yarn jar ~. 형식으로도 실행가능HDFS 입력/출력 살펴보기bin/hdfs dfs -ls inputbin/hdfs dfs -ls output hdfs 명령어는 리눅스 명령어와 유사하게 사용# hdfs상에 input이 들어갈 폴더 만들기# 하둡 폴더로 이동cd hadoop-3.3.4/# hdfs [subcommand] [bin/hdfs dfs -mkdir input# 'hdfs://127.0.0.1:9000/user/[username]':No such file or directory 에러 발생# 초기화한 뒤 아직 아무 작업도 하지 않은 상태..