반응형

spark 26

[Pyspark] pyspark설치 및 데이터 읽어오기, RDD&Python객체&DataFrame 변환

Local Standalone Spark Spark Cluster Manager로 local[n] 지정 master를 local[n]으로 지정 master는 클러스터 매니저를 지정하는데 사용 주로 개발이나 간단한 테스트 용도 하나의 JVM에서 모든 프로세스를 실행 하나의 Driver와 하나의 Executor가 실행됨 1+ 쓰레드가 Executor안에서 실행됨 Executor안에 생성되는 쓰레드 수 local:하나의 쓰레드만 생성 local[*]: 컴퓨터 CPU 수만큼 쓰레드를 생성 Package 설치 PySpark + Py4J를 설치 구글 Colab 가상서버 위에 로컬 모드 Spark을 실행 개발 목적으로는 충분하지만 큰 데이터의 처리는 불가 Spark Web UI는 기본적으로는 접근 불가 ngrok을 ..

[Spark] SparkSession 생성과 환경변수 세팅

Spark Session 생성 Spark 프로그램의 시작은 SparkSession을 만드는 것 프로그램마다 하나를 만들어 Spark Cluster와 통신: Singleton 객체 Spark 2.0에서 처음 소개됨 Spark Session을 통해 Spark이 제공해주는 다양한 기능을 사용 DataFrame, SQL, Streaming, ML API 모두 이 객체로 통신 config 메소드를 이용해 다양한 환경설정 가능 (단계별로 하나씩 설정도 가능)단 RDD와 관련된 작업을 할때는 SparkSession 밑의 sparkContext 객체를 사용Spark Session API Document : https://spark.apache.org/docs/3.1.1/api/python/reference/api/py..

[Spark] Spark 데이터 구조 (RDD, DataFrame, Dataset)

Spark 데이터 구조  RDD, DataFrame, Dataset (Immutable Distributed Data)RDD가 가장 밑바닥에 있고, 그 위해 DataFrame과  Dataset가 있음RDD는 할 수 있는 것은 많지만, 프로그래밍 생산성이 떨어짐.python을 쓴다면 Dataframe, java/scaler로 한다면 Dataset을 씀2016년에 DataFrame과 Dataset은 하나의 API로 통합됨모두 파티션으로 나뉘어 Spark에서 처리됨DataFrame Code나 Sparksql을 효율적인 자바 바이트 코드(Java bytecode) 로 만들어주는 과정Cody Analysis : 코드 분석하여 어떤 테이블과, 컬럼을 쓰는지 결정하고, 사용자가 없는 테이블과 컬럼을 쓰면 에러를 냄L..

[Spark] Spark 데이터 처리 방식 (Partitioning, Shuffling, Spill) (InputPartition, OutputPartition, ShufflePartition)(Range partition, Hashing partition, Data Skewness)

Spark 데이터 시스템 아키텍처큰데이터를 ETL하거나 일시적으로 데이터를 select할때는 hive나 presto도 상관 없음하지만 spark가 각광받는 이유는 하나의 시스템으로 다양한 것들을 할 수 있기 때문외부데이터의 예 : RDS, Nocurl 등외부데이터를 주기적으로 ETL을 통해 HDFS로 가져와주어야 함.이를 위해1. 주기적으로 ETL작업 진행 (보통 Airflow를 활용)2. 필요할 때 바로 spark에서 로딩내부든 외부든 spark에 올라가는 순간 똑같은 데이터가 됨 데이터 병렬처리와 파티션(Partition)데이터가 먼저 분산되어야함하둡 맵의 데이터 처리 단위는 디스크에 있는 데이터 블록 (128MB)hdfs-site.xml에 있는 dfs.block.size 프로퍼티가 결정Spark에서..

[Hadoop] 맵리듀스 프로그래밍 실행 (WordCount)

해당 포스팅에서는 맵리듀스 프로그램으로 단어수를 세는 방법을 설명합니다 WordCount 맵리듀스 프로그램 실행 1. 하둡 디렉토리로 이동한다. cd hadoop-3.3.4/sbin/ 2. input이 되는 디렉토리를 HDFS상에 만든다. bin/hdfs dfs -mkdir input bin/hdfs : hdfs와 관련된 기능을 제공해주는 권한 조정하는 곳 CF) 위 코드를 실행했을 때 아래와 같이 디렉토리가 없다고 나온다면 Hdfs 쪽에 User폴더와 내 sub폴더를 만들어 줍니다. bin/hdfs dfs -mkdir /user bin/hdfs dfs -mkdir /user/hdoop CF) 아래와 같이 Connection Error가 발생한다면 아래 코드를 실행하여 hdfs와 yarn을 실행시켜줍니다..

[Hadoop] 대용량 분산시스템 Hadoop과 MapReduce (Hadoop 1.0, Hadoop 2.0, Hadoop 3.0)

대용량 분산 시스템분산 환경 기반 (1대 혹은 그 이상의 서버로 구성)분산 파일 시스템과 분산 컴퓨팅 시스템이 필요Fault Tolerance소수의 서버가 고장나도 동작해야함확장이 용이해야함즉, Scale Out이 되어야함Hadoop(하둡)Doug Cutting이 구글랩 발표 논문들에 기반해 만든 오픈소스 프로젝트2003년 The Google File System2004년 MapReduce: Simplified Data Processing on Large Cluster처음 시작은 Nutch라는 오픈소스 검색엔진의 하부 프로젝트하둡은 Doug Cutting의 아들의 코끼리 인형의 이름2006년에 아파치 톱레벨 별개 프로젝트로 떨어져나옴하둡의 정의 An open source software platform ..

반응형