본문 바로가기

SPARK36

[spark] RDD, Transformation, Action, Dependency 용어 RDD operationRDD를 제어하는 API operation은 크게 2개의 타입Transformation: RDD에서 새로운 RDD를 생성하는 함수Action: RDD에서 RDD가 아닌 타입의 data 로 변환하느 함수들 RDDMR의 단점복잡하고 Multi-Stage 한 처리가 느림interactive 하고 ad-hoc 한 쿼리 실행이 느림효율적인 데이터 공유 도구를 생성하기 위해 나옴MR은 중간 단계를 파일을 이용하기 때문에 IO 비용이 많이 들어감스파크는 하드디스크 대신 RAM을 이용하자 문제가 생기면 복구는 Lineage를 생성하여 새로 만들자 동작의 순서를 기록해 DAG로 표현한 것을 Lineage라고 함RAM을 Read-Only로 사용 Spark의 Operationtransformation.. 2018. 3. 28.
[spark] 스파크 디플로이 모드(deploy mode)의 cluster, client 의 차이 스파크의 클러스터 타입은 4가지가 있다. standalone스파크에 포함된 클러스터 관리자 YARNHadoop2의 관리자 https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/YARN.htmlMesosHadoop MapReduce와 다른 응용 서비스를 실행할 수 있는 범용 클러스터 관리자 http://mesos.apache.org/Kubernetes컨테이너화된 응용프로그램의 배치, 실행을 관리하는 클러스터 관리자 https://kubernetes.io/ 그리고 이 클러스터에 대한 배포 모드(deploy mode)는 2가지가 있다. client실행을 호출한 곳에서 드라이버가 생성cluster클러스터 내부에서 드라이버가 생성 https://.. 2018. 3. 27.
[spark] NoSuchElement 오류 해결 방법 spark 처리중 다음과 같은 오류가 발생하는 경우가 있다. 아마도 shuffle 처리중 메모리가 부족해서 발생하는 것으로 추정된다. 이럴때는 spark.sql.shuffle.partitions 설정을 추가하면 된다. 다음 설정을 추가하여 처리하였다. spark.sql.shuffle.partitions=300spark.default.parallelism=300 diagnostics: User class threw exception: org.apache.spark.SparkException: Job aborted due to stage failure: Task 1 in stage 2.0 failed 4 times, most recent failure: Lost task 1.3 in stage 2.0 (TI.. 2018. 1. 8.
스파크에서 문자열 utf-8 형식으로 처리하기 pyspark에서 spakr 2.x 버전을 이용할 경우 utf-8 버전의 파일을 읽어서 처리할 경우 유니코드 오류가 발생한다. 이럴때 다음과 같이 처리하면 된다. ScalaContext를 이용하여 파일을 읽을 때 use_unicode 옵션을 이용하고, map 함수에서 라인단위로 읽을 때 인코딩을 처리해주면 된다. 2016. 6. 20.
[개념] 스톰 vs 스파크 - 2011년 트위터가 인수한 백타이프가 처음 시작한 프로젝트 - 트위터에서 오픈소스화 -> 아파치 프로젝트로 이동 - 클로저(Clojure)를 주언어로 사용 - 클로저에 기반을 두고 있지만 JVM에서 실행되며, 볼트는 다양한 언어로 개발이 가능 - 확장성이 크고, 내결함성이 강한, 스트림 프로세싱에 최적화된 이벤트 스트림 프로세싱 중심 - UC 버클리 산하 AMPLap에서 시작하여 아파치 프로젝트로 이동 - 범용 분산형 컴퓨팅 플랫폼 - 하둡을 기반으로 처리(불편하지만 하둡 없이도 가능함) - 스칼라, 파이썬을 이용한 인터랙티브 쉘 제공 - 확장성이 높은 실시간 분석과 BI 시스템을 위한 우수한 플랫폼 http://www.itworld.co.kr/news/91022 https://storm.apache.. 2015. 7. 21.
[spark] 아파치 스파크 아파치 스파크 실시간 분산형 컴퓨팅 프로젝트이다. 스트림 지향형 프로세스를 지원한다. 기존 하둡 클러스터에서 실행시킬 수 있다. 스칼라로 작성이 되어 있지만, 스칼라, 자바, 파이선 API를 지원한다. In-Memory 방식으로 처리를 하기 때문에 하둡에 비해 처리속도가 빠르다. 하둡에 비해 100배정도 빠르다고 한다. 예제 코드 # /spark/bin/pyspark 를 실행후 콘솔에서 입력 # README.md 파일은 hdfs 상에 업로드 되어 있어야 함 # hdfs://user/name/README.md 에 위치 # README.md 파일을 입력하여 라인 카운트 확인 lines = sc.textFile("README.md") print lines.count() # README.md 파일의 문장을 공백.. 2015. 6. 24.