반응형 스파크11 Spark - 파티셔너(Partitioner)&셔플링(shuffling) 파티셔너에 의해 RDD 파티셔닝이 실행된다. 파티셔너는 파티션 인덱스를 RDD 엘리먼트에 할당한다. 동일 파티션에 존재하는 모든 엘리먼트는 동일한 파티션 인덱스를 가질 것이다. 스파크는 HashPartitioner와 RangePartitioner라는 두개의 파티션이 있다. (사용자 정의 파티셔너도 구현 가능!) HashPartitioner Spark의 기본 파티셔너이고, RDD 엘리먼트의 각 키에 대한 해시값을 계산한다. 동일한 해시 코드를 가진 모든 엘리먼트는 다음 코드처럼 동일 파티션을 얻는다. hashCode()를 사용해 3으로 설정된 파티션 개수를 기반으로 각 엘리먼트마다 partitionIndex를 얻을 수 있다. RangePartitioner RangePartitioner는 RDD를 거의 동일.. 2022. 3. 10. Spark - RDD? RDD(Resilient Distributed Dataset)는 불변이며, 분산 컬렉션 객체이다. 불변성 특성때문에 한번 생성된 RDD는 읽기 전용이다. 즉, 트랜스포메이션(Transformation)은 RDD에서 새로운 RDD로 생성할 수는 있지만, 원본 RDD는 생성된 후에는 결코 수정되지 않는다. 그러므로 RDD는 경쟁조건과 기타 동기화 문제에 영향을 받지 않는다! RDD는 데이터에 대한 참조만 포함하기 때문에(실제 데이터는 클러스터의 노드에 있는 파티션에 포함) RDD의 분산 특성이 동작할 수 있다. RDD는 실제로 클러스터에서 파티션으로 나워진 데이터셋이고, 파티션 데이터는 HDFS, HBase, Cassnadra, AWS S3에서 가져온 것일 수 있다. RDD는 다음과 같은 5가지 주요 속성을.. 2022. 3. 3. Spark Study - 용어를 익히자! (feat. spark architecture) spark의 주요 컴포넌트는 드라이버와 익스큐터이며 모두 jvm 프로세스이다. 드라이버 : 애플리케이션, 메인 프로그램이 들어가있다. spark-shell을 사용하고 있다면 spark-shell은 드라이버 프로그램이 되고, 드라이버는 클러스터에 익스큐터를 시작 시키고 태스크 실행을 제어한다. 익스큐터 : 클러스터의 워커 노드에서 실행 중인 프로세스이다. 익스큐터 내부에서 개별 태스크나 계산이 실행된다. 클러스터 관리자 : 클러스터를 구성하는 계산 노드 전체에 대해 자원 예약과 자원 할당을 담당한다. 종류에는 독립형, 얀, 메소스, 쿠버네티스가 있다. 스파크 프로그램의 주요 진입점은 SparkContext이다. SparkContext는 드라이버 컴포넌트 내부에 있으며, 스케줄러, 태스크 배포, 오케스트레이.. 2021. 10. 28. [Spark-Study] Day-7 spark-shell을 통한 실습 2021.08.19 - [Study/Study group] - [Spark-Study] Day-6 저번 시간에 55p 실습하다 잘 안되는 부분 다시 츄라이~ spark-shell을 통해 코딩! terrypark ~ master spark-shell 21/08/26 10:19:58 WARN Utils: Your hostname, acetui-MacBookPro.local resolves to a loopback address: 127.0.0.1; using 172.27.114.231 instead (on interface en0) 21/08/26 10:19:58 WARN Utils: Set SPARK_LOCAL_IP if you need to bind to another address WA.. 2021. 8. 26. [Spark-Study] Day-4 스파크 로컬 디버깅 2021.06.14 - [Study/Study group] - [Spark-Study] Day-1 2021.06.24 - [Study/Study group] - [Spark-Study] Day-2 2021.07.01 - [BigDATA/spark] - [Spark-Study] Day-3 spark local debugging 해보기 코드상으로는 아래의 내용이 추가 된다. val conf = new SparkConf().setAppName("MnMCount") conf.setIfMissing("spark.master", "local[*]") val spark = SparkSession .builder .config(conf) .getOrCreate() // val spark = SparkSession //.. 2021. 8. 5. [Spark-Study] Day-3 스파크 예제를 위한 셋팅 spark 예제 돌려보기 sbt로 build를 하기 위해 필요한 것은 아래와 같다. 1. 소스 2. build.sbt sbt clean 한뒤에 sbt package를 해보자! spark-submit 해보기! /usr/local/Cellar/apache-spark/3.1.1/bin/spark-submit --class MnMcount target/scala-2.12/main-scala-chapter2_2.12-1.0.jar mnm_dataset.csv 인텔리J에 셋팅 해보기! 인텔리J에서 프로젝트를 Open 해보자! 아래와 같이 인텔리J에 프로젝트를 잘 가져왔다. 프로젝트 구조는 위와 같다. MnMcount 소스 // scalastyle:off println import org.apache.spark.sq.. 2021. 7. 1. [Spark-Study] Day-1 스파크 셋팅 mac에 아파치 스파크 설치 - brew info apache-spark - brew install apache-spark 3.1.1 셋팅 완료! 스파크는 아래와 같이 다양하게 사용이 가능하다! Spark Job Spark Stages - Job -> stage 즉, 각 Job마다 Stage가 parallel 하게 또한 연속적인 형태로 붙을 수 있다. - 스터디 시 그림만 보고 Job은 parallel하게 되고 연속적인 Single Stage가 호출 되는줄 오해 했음. Spark Tasks 최종적으로 머릿속에 큰 그림이 그려지는가? Spark 아키텍처 콜? Transformations, Actions, and Lazy Evaluation 각각의 특징을 설명할 수 있는가? Transformations와 A.. 2021. 6. 14. 2탄. SPARK를 설치해보자~(클러스터) 2016/10/18 - [BigDATA/spark] - 1탄. SPARK를 설치해보자~ 1탄. 단일모드 2탄. 클러스터 모드 3탄. 기타 유용 셋팅(스파크 관련) 우선 분산 클러스터로 셋팅하기전에! 요것만큼은 알고가자는 의미에서 살짝 정리해본다.1. Spark 구조(펌: https://www.google.co.kr/search?q=spark+%EA%B5%AC%EC%A1%B0&newwindow=1&biw=1598&bih=976&source=lnms&tbm=isch&sa=X&sqi=2&ved=0ahUKEwi1y4ut0ObPAhWqiVQKHWFaDgcQ_AUIBigB&dpr=1#imgrc=EdvQ87Vu0XWkMM%3A) 여기에서 Stand alone Scheduler , YARN, Apache Mesos는 .. 2016. 10. 19. 1탄. SPARK를 설치해보자~ 해당 포스팅은 총 3부로 구성될 예정 입니다.1탄. 단일모드 2탄. 클러스터 모드3탄. 기타 유용 셋팅(스파크 관련) 1탄. SPARK를 설치해보자~ Apache Spark 설치! 버전은 1.6.1 / hadoop 2.6으로 해서 다운받아보겠습니다. (현업에서 사용중인게 요거라서 요걸로!)Step 1. 아래의 링크를 통해 스파크를 다운 받아보자!http://spark.apache.org/downloads.html Step 2. down을 받아서 원하는 서버에서 압축을 풀어줍니다.압축을 해제하고 내용을 보면 아래와 같습니다. Step 3. Spark는 대화형 쉘들을 제공 합니다.파이썬과 스칼라가 있는데요 즉석 데이터를 분석하기에 좋습니다.실행은?1) 파이썬 쉘 ㄴ bin directory에 가서 ./pys.. 2016. 10. 18. spark와 친해지기! 아마 아래와 같은 형태가 될것 같다.sparkContext 클래스는 스파크클러스터의 연결과 스파크와 연동할 수 있는 엔트리 포인트를 제공. 인스턴스를 생성하여 다양한 일을할 수 있다.spark RDD : RDD(resilient distributed dataset)를 활용하면 데이터의 병렬처리를 쉽게할 수 있다.spark 참고 사이트!!http://spark.apache.org/docs/latest/programming-guide.html#overview 2016. 3. 22. spark + scala + sbt 프로젝트!! 환경 : sbt : 0.13.11 - 참고 : https://twitter.github.io/scala_school/ko/sbt.htmlscala : 2.10.6spark : 1.5.2 음..환경설정이 조금 짜증이 났지만..아래와 같은 프로젝트 구조가 생겼다. 이제 한번 scala의 문법을 공부해보자. 그런 뒤 spark를 사용하여 지지고 볶고 해보자! 일단 여기까쥐~ - 끝 - 2016. 3. 22. 이전 1 다음 반응형