본문 바로가기
728x90

BigData/Spark & Spark Tuning33

[Spark Tuning] (spark on YARN)yarn container, spark core, executor 개수 Memory 용량 계산법 및 최적화 이번 포스트에는 Spark의 core, executor, memory 계산법 대해서 알아보겠습니다. Core ? vCore? 헷갈릴 개념 요즘은 하이퍼스레딩이라 하여 1코어에 2개의 스레드를 지원하는 instance들이 많습니다. core든 vCore든 가상화의 차이만 있을 뿐 같은 코어입니다. 여기서 중요한건 코어당 스레드가 1이냐 2이냐 차이인데, 아래의 instance는 8코어이지만 vCPU(vCore,가상 논리 프로세서=스레드)는 16입니다. *spark에 있어서 불리는 코어는 하이퍼스레딩은 지원하지 않으면 코어수 그대로겠지만, 지원한다면 vCPU인 가상 논리 프로세서의 수를 의미합니다. vCPU: 코어 x 코어당 스레드, 논리프로세서라고도 불리며, 하나의 스레드 코어: 물리적인 CPU당 들어 있.. 2021. 12. 20.
[Spark] RDD vs DataFrame 큰 차이점, Dataframe을 사용해야 되는 이유, RDD를 사용해야 하는 경우는? RDD, Dataframe 다루기 RDD란? 정의 및 특징, dataframe과의 차이는? RDD(Resilient Distributed Dataset) 특징 설명 Resilient RDD lineage 그래프를 통한 fault-tolerant가 빠졌거나,node의 실패로 인한 손상된 파티션을 다시 실행시킨다. Distributed 클러스터의 여러 노드에 데이터가 분산되어 저장 Dataset 원천 데이터값 혹은 값의 값들로 이루어진 파티션된 collection 데이터 (튜플 혹은 다른 레코드로써 사용될 수 있는 데이터 객체들) RDD 특징 특징 설명 In-Memory RDD속의 데이터는 가능한 많이, 오래 메모리에 저장되어 있다. 불가변성(읽기 전용) 한번 생성되고 나면 변하지 않는다. transformation 연산을 통해 새로운 RD.. 2021. 12. 16.
[Spark Tuning] Spark의 Partition 개념, spark.sql.shuffle.partitions, coalesce() vs 이번 포스트에는 Spark의 Partition 개념, 종류 및 조작관련 팁, 헷갈릴 만한 개념에 대해 포스트 해보겠습니다. Partition이란? Partition은 RDDs나 Dataset를 구성하고 있는 최소 단위 객체이며, 스파크의 성능과 리소스 점유량을 크게 좌우할 수 있는 RDD의 가장 기본적인 개념입니다. 데이터 파티셔닝은 데이터를 여러 클러스터 노드로 분할하는 메커니즘을 의미합니다. 각 Partition은 서로 다른 노드에서 분산 처리됩니다.즉, 1 Core = 1 Task = 1 Partition입니다. Spark에서는 하나의 최소 연산을 Task라고 표현하는데, 이 하나의 Task에서 하나의 Partition이 처리됩니다. 또한, 하나의 Task는 하나의 Core가 연산 처리합니다. 이처.. 2021. 11. 23.
[Spark] spark on yarn cluster에 pyspark job submit(스파크 클러스터에 잡 던지고 UI 확인하기) 이번 포스트에는 spark를 yarn을 이용하여 cluster mode로 pyspark job을 제출하고, cluster로 잘 돌았는지 확인해보겠습니다. hadoop cluster가 구성 안되신 분들은 아래의 링크를 참조해주세요. 2021.08.08 - [BigData] - [BigData] 완전 분산 하둡 클러스터(hadoop cluster)구축하기(4개 노드) 1. 4개의 가상 노드 띄우기 [BigData] 완전 분산 하둡 클러스터(hadoop cluster)구축하기(4개 노드) 1. 4개의 가상 노드 띄우기 이번 포스트에는 하둡 fully-distributed mode 구축을 해보도록 하겠습니다. 하둡 구성 스펙 호스트OS - windows10 home 게스트OS들 - centOS7 Hadoop -.. 2021. 11. 18.
[spark] error 기록, spark write시 format에 따른 column name 형태 spark write csv format -> column에 space가 들어가도 허용O parquet format -> column에 space가 들어가면 에러O spark 문법 중 desc(column)이 있고 column.desc()가 있는데, ubuntu에서 pyspark돌릴 때 desc(column)형태의 메소드가 안먹혀서 column.desc()로 바꾼 케이스가 있음. 2021. 11. 16.
[Spark] spark standalone 모드로 pyspark 실습(.py spark submit)+ui확인하기 이번 포스트에서는 spark standalone 모드 즉, yarn을 이용하지 않고 local(단일 노드로) pyspark을 제출하는 .py 파일을 생성해 스크립트 실행을 시켜 제출해보도록 하겠습니다. 하둡 및 스파크를 설치하지 못하신 분은 아래의 링크를 참고해 주세요. 2021.04.26 - [BigData] - [Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 1.virtualbox에 ubuntu 설치하기 [Hadoop] virtual box linux [ubuntu 18.04]에 하둡 설치,다운로드 1.virtualbox에 ubuntu 설치하기 1.virtual box를 다운로드한다. www.virtualbox.org/wiki/Downloads Down.. 2021. 11. 8.
[BigData] 완전 분산 하둡 클러스터(hadoop cluster)(4개 노드) 에 "Spark"(Spark on Yarn cluster) 설치 및 실습 하기 저번 포스트까지는 하둡 클러스터를 구성해보았습니다. 이번 포스트에는 구성된 하둡 클러스터에 Spark를 설치해보겠습니다. 본 포스팅은 standalone모드 4개를 구축하여 spark cluster를 만드는 것이 아닌, 구축된 hadoop cluster의 yarn위에 spark을 올리는 spark on yarn(cluster mode,master(yarn))입니다. 아직 hadoop cluster 구축이 안되신 분은 아래의 링크를 참고해주세요. https://spidyweb.tistory.com/266 [BigData] 완전 분산 하둡 클러스터(hadoop cluster)구축하기(4개 노드) 1. 4개의 가상 노드 띄우기 이번 포스트에는 하둡 fully-distributed mode 구축을 해보도록 하겠.. 2021. 11. 7.
[Spark] Spark partition pruning 개념, 확인 방법(실행 계획) 1.Partition Prunning 이란? prunning이란 '가지치기' 라는 뜻으로 데이터 시스템에서는 얻고자 하는 데이터를 가지고 있지 않은 파일은 스킵하고 얻고자 하는 파일만 스캔하는 최적화 기법 RDBMS의 Partition prunning과 개념적으로 동일 Spark가 HDFS나 S3와 같은 저장소에 디렉토리와 파일을 읽을 때 지정된 파티션의 파일만 읽을 수 있도록 성능 최적화를 가능하게 함 파일을 파티션구조로 만드는 것이 선행되어야 함 2. Static Partition Prunning 아래의 사진과 같이 모든 데이터를 Scan하여 filter하는 것이 아닌, 특정 원하는 데이터만 Filter 후 데이터를 scan하는 것이 pushdown filter 혹은 predicate pushdown.. 2021. 9. 14.
[Hive,Spark] Hive, Spark의 Date Functions 정리, oracle,mysql에서 쓰일 수 있는 functions 언급 1.자주 쓰이는 Hive,Spark Date Functions 정리 1. current_date() 현재의 날짜를 반환 (oracle은 current_date) 2. current_timestamp() 현재의 시각을 반환(밀리초까지) (oracle은 current_timestamp, current_date,current_timestamp가 oracle에서는 동일하다.) 3. unix_timestamp() 현재의 시각을 unix시간으로 반환 unix_timestamp() 는 unix_timestamp(current_timestamp,'yyyy-MM-dd HH:mm:ss')와 같다. 4. unix_timestamp(str date) 입력한 시각,날짜를 unix시간으로 반환 yyyy-MM-dd HH:mm:ss.. 2021. 8. 19.
728x90