본문 바로가기
728x90

spark35

[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) 특징 설명 Resilient RDD lineage 그래프를 통한 fault-tolerant가 빠졌거나,node의 실패로 인한 손상된 파티션을 다시 실행시킨다. Distributed 클러스터의 여러 노드에 데이터가 분산되어 저장 Dataset 원천 데이터값 혹은 값의 값들로 이루어진 파티션된 collection 데이터 (튜플 혹은 다른 레코드로써 사용될 수 있는 데이터 객체들) RDD 특징 특징 설명 In-Memory RDD속의 데이터는 가능한 많이, 오래 메모리에 저장되어 있다. 불가변성(읽기 전용) 한번 생성되고 나면 변하지 않는다. transformation 연산을 통해 새로운 RD.. 2021. 12. 16.
[AWS] EMR-6.2.0 config with ssh tunneling(yarn UI 확인) 이번 포스트에는 EMR-6.2.0 버전을 Hadoop, Hive, Zookeeper, livy,Spark JupyterHub와 JupyterEnterpirseGateway를 포함하여 띄우겠습니다. 1. Software Configuration HA 구성을 하시려면 use multiple mastger nodes 란에 check합니다(이번 포스트에는 HA구성 없음) AWS Glue Data Catalog Setting에는 Hive table과 Spark table의 metadata를 Glue로 대신하여서 연동할 것인지에 대해 물어보는 옵션인데, Glue에 작업해 둔 것이 있어서 체크.(없으신 분들은 체크 해제) JupyterEnterpriseGateway는 EMR과 연동할 Notebook에 필요 edit .. 2021. 11. 23.
[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.
[Hadoop] 하둡이란? 하둡 에코시스템이란? hadoop, hadoop eco-system 개념 1.Hadoop 이란? -하둡은 분산 데이터 처리의 공통 플랫폼입니다. -하둡을 3가지로 나눈다면 1) 데이터 저장의 분산 파일 시스템(Distributed file system) HDFS 2) 데이터 처리의 분산 데이터 처리(Distributed data processing) MapReduce(MR) 3) 자원 관리의 YARN(hadoop ver 2.0에 발표) -YARN의 역할 1) CPU나 메모리 등의 계산 리소스는 리소스 매니저인 YARN에 의해 관리 2) YARN은 애플리케이션이 사용하는 CPU 코어와 메모리를 '컨테이너라 불리는 단위로 관리) 3) Hadoop에서 분산 애플리케이션을 실행하면 YARN이 클러스터 전체의 부하를 보고 비어 있는 호스트부터 컨테이너를 할당 -MapReduce란 1).. 2021. 7. 12.
728x90