본문 바로가기
728x90

BigData101

[Spark] RDD action & transformation + Dataframe의 연산(operation) 분류 Spark는 분산 환경에서 데이터를 다루는 데 필요한 지연 처리방식(lazy evaluation)의 transformation과 즉시 실행 방식의 action을 제공그리고 DataFrame과 Dataset의 transformation, action과 동일한 방식으로 동작한다.1. RDD transformationSpark Transformation는 기존의 RDD에서 새로운 RDD를 생성하는 functionLazy 처리방식(lazy evaluation)이라서 action을 호출할 때 transformation이 실제로 실행 → transformation을 수행할 때 query plan만 만들고 실제로 메모리에 올리지는 않는다. action이 호출될 때 transformation을 메모리에 올려서 수행하고.. 2021. 12. 29.
[Spark] Spark 자주 쓰이는 Config 정리 driver,executor memory, dynamic allocation properties 분류 설명 예시 spark.master Application Properties 클러스터 매니저(리소스 매니저 설정) local[*], yarn, k8s://HOST:PORT, mesos: //HOST:PORT spark.driver.extraClassPath Runtime Environment 드라이버의 클래스 경로에 추가할 추가 클래스 경로 항목 /usr/lib/hadoop-lzo/lib/*:/usr/lib/hadoop/hadoop-aws.jar:/usr/share/aws/aws-java-sdk/*$spark.driver.extraLibraryPath /usr/lib/hadoop/lib/native:/usr/lib/hadoop-lzo/lib/native:/docker/usr/lib.. 2021. 12. 28.
[Spark] Spark Config정리 SparkSession.config vs spark.conf.set() ,spark-defaults.conf vs spark-submit vs pyspark code 적용 우선순위 *local에서 Jupyter Notebook을 통해 test해본 환경이기 때문에, UI에서 config 확인되는지 여부,명령어로 config가 확인 가능한지 여부에 대해서는 EMR+notebook과 같은 환경에서도 동일한 지는 알 수 없습니다. 1. SparkSession.config() vs spark.conf.set() sparksession.config() spark.conf.set() 용도 spark 설정을하는 method 적용되는 시점 SparkSession생성시 SparkSession생성 후 UI에서 확인 되는지 여부 O X spark.sparkContext.getConf().getAll()에서 확인 되는지 여부 O X 실제로 config가 적용되는지 O O 같은 config에 대한 처리 s.. 2021. 12. 28.
[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)특징설명ResilientRDD lineage 그래프를 통한 fault-tolerant가 빠졌거나,node의 실패로 인한 손상된 파티션을 다시 실행시킨다.Distributed클러스터의 여러 노드에 데이터가 분산되어 저장Dataset원천 데이터값 혹은 값의 값들로 이루어진 파티션된 collection 데이터(튜플 혹은 다른 레코드로써 사용될 수 있는 데이터 객체들)RDD 특징특징설명In-MemoryRDD속의 데이터는 가능한 많이, 오래 메모리에 저장되어 있다.불가변성(읽기 전용)한번 생성되고 나면 변하지 않는다. transformation 연산을 통해 새로운 RDD로써 만들 수 있다.lazy .. 2021. 12. 16.
[Hive,Spark] Hive와 SparkSQL의 호환성 Hive와의 호환성 spark SQL은 Hive Metastore, SerDes(Serialization Deserialization), UDFs(UserDefineFunctions)와 호환성을 염두하여 디자인 됨 1-1. 지원되는 하이브 특징 Hive 쿼리문 SELECT GROUP BY ORDER BY DISTRIBUTE BY CLUSTER BY SORT BY Hive 연산자 관계 연산자(=, , ==, , , >=, 1, Hive 는 null, Spark SQL NaN return ASIN(n) n 1, Hive 는 null, Spark SQL NaN return CAST(n AS TIMESTAMP) n이 정수면 Hive는 n 을 밀리초로 취급, Spark SQL 은 n 을 초로.. 2021. 11. 30.
[Hive] Hive on Hadoop cluster 실습 + yarn ui 확인하기 이번 포스트에는 fully distributed hadoop cluster에 HQL파일을 생성하여 job을 제출하는 실습을 해보겠습니다. 하둡 및 하이브를 설치하지 못하신 분은 아래의 링크를 참조해주세요. 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 - 3.1.0 Zookeep.. 2021. 11. 23.
[Spark Tuning] Spark의 Partition 개념, spark.sql.shuffle.partitions, coalesce() vs repartition(), partitionBy() 정리 이번 포스트에는 Spark의 Partition 개념, 종류 및 조작관련 팁, 헷갈릴 만한 개념에 대해 포스트 해보겠습니다.Partition이란?Partition은 RDDs나 Dataset를 구성하고 있는 최소 단위 객체이며, 스파크의 성능과 리소스 점유량을 크게 좌우할 수 있는 RDD의 가장 기본적인 개념입니다.데이터 파티셔닝은 데이터를 청크 단위로 여러 클러스터 노드로 분할하는 메커니즘을 의미합니다.클러스터의 물리적 머신에 존재하는 로우의 집합각 Partition은 서로 다른 노드에서 분산 처리됩니다.즉, 1 Core = 1 Task = 1 Partition입니다. Spark에서는 하나의 최소 연산을 Task라고 표현하는데, 이 하나의 Task에서 하나의 Partition이 처리됩니다. 또한, 하나의 .. 2021. 11. 23.
[BigData] Apache Airflow 설치 및 실습하기 series (3) Airflow로 spark-submit(pyspark)하기with BashOperator 이번 포스트에는 spark-submit 실습한 파일을 가지고 설치한 airflow로 spark-submit해보도록 하겠습니다. + 헷갈리는 개념인 start_date, execution_date, schedule_interval, data interval에 대한 조작과 이해를 돕는 실습을 하겠습니다. spark-submit을 통해 만든 .py file과 실습내용은 아래의 링크에 있습니다. https://spidyweb.tistory.com/303 [Spark] spark standalone 모드로 pyspark 실습(.py spark submit)+ui확인하기 이번 포스트에서는 spark standalone 모드 즉, yarn을 이용하지 않고 local(단일 노드로) pyspark을 제출하는 .py 파일.. 2021. 11. 19.
728x90