목록하둡과 Spark (42)
터칭 데이터
Spark 프로그래밍: DataFrame Spark 데이터 처리와 데이터 구조 DataFrame 프로그래밍 실습 Contents 1. Spark 데이터 처리 2. Spark 데이터 구조: RDD, DataFrame, Dataset 3. 프로그램 구조 4. 개발/실습 환경 소개 5. Spark DataFrame 실습
요약 빅데이터의 처리를 위해 하둡이라는 오픈소스가 등장 분산 파일 시스템과 분산 컴퓨팅 시스템으로 구성 - HDFS와 맵리듀스/YARN 맵리듀스 프로그래밍의 제약성으로 인해 SQL이 재등장 Spark은 대세 대용량 데이터 분산 컴퓨팅 기술 Pandas + Scikit Learn의 스테로이드 버전 SQL과 스트림 데이터와 그래프 처리도 제공

Spark 프로그램 실행 옵션 Spark 프로그램을 실행하는 방법에 대해 먼저 살펴보자 Spark을 YARN 위에서 실행한다고 가정하고 설명하겠습니다. Spark 프로그램 실행 환경 개발/테스트/학습 환경 (Interactive Clients) 노트북 (주피터, 제플린) Spark Shell 프로덕션 환경 (Submit Job) spark-submit (command-line utility): 가장 많이 사용됨 데이터브릭스 노트북: - 노트북 코드를 주기적으로 실행해주는 것이 가능 REST API: - Spark Standalone 모드에서만 가능 - API를 통해 Spark 잡을 실행 - 실행코드는 미리 HDFS등의 파일 시스템에 적재되어 있어야함 Spark 프로그램의 구조 Driver 실행되는 코드의..

Spark 소개 하둡은 1세대 빅데이터 처리기술이라면 Spark은 2세대 빅데이터 기술이라 할 수 있다. 이번 강의 주제인 Spark에 대해 알아보자 Spark의 등장 사실상의 표준 기술 버클리 대학의 AMPLab에서 아파치 오픈소스 프로젝트로 2013년 시작 나중에 Databricks라는 스타트업 창업 하둡의 뒤를 잇는 2세대 빅데이터 기술 YARN등을 분산환경으로 사용 Scala로 작성됨 빅데이터 처리 관련 *다양한* 기능 제공 Spark 3.0의 구성 Spark Core Spark SQL Spark ML Spark MLlib Spark 머신러닝 라이브러리에는 2개가 있는데 하나는 Spark ML과 Spark Mlib입니다. MLlib는 데이터 스트럭쳐 기반, ML은 데이터 프레임 기반으로 MLlib..

맵리듀스 프로그래밍 - 단어수 세기 앞서 살펴본 WordCount 프로그램 실행해보기 bin/hadoop jar hadoop-*-examples.jar wordcount input output bin/hadoop == bin/yarn HDFS 입력/출력 살펴보기 bin/hdfs dfs -ls input bin/hdfs dfs -ls output 하둡 Web UI (Resource Manager)로 실행 결과 살펴보기 데모 MapReduce 프로그래밍 문제점 생산성이 떨어짐. 데이터 모델과 오퍼레이션에 제약이 많음 모든 입출력이 디스크를 통해 이뤄짐 큰 데이터 배치 프로세싱에 적합 Shuffling 이후에 Data Skew가 발생하기 쉬움 Reduce 태스크 수를 개발자가 지정해주어야함
하둡 설치와 맵리듀스 프로그래밍 실습 하둡 설치와 맵리듀스 프로그래밍 실습 하둡 설치 하둡 3.0을 의사분산 모드로 리눅스 서버에 설치 의사분산 모드는 Hadoop 관련 프로세스들을 개별 JVM으로 실행 AWS 우분투 EC2 t2.medium 인스턴스 사용 - 자바 8이 필요. 우분투 설치 문서 참조 데모 하둡 웹 UI - HDFS 내임노드 (포트번호: 9870) 데이터노드 (포트번호: 9864)

맵리듀스 프로그래밍 소개 맵리듀스 프로그래밍은 기존 프로그래밍과 어떻게 다른가? 맵리듀스 프로그래밍의 특징 데이터 셋은 Key, Value의 집합이며 변경 불가(immutable) 데이터 조작은 map과 reduce 두 개의 오퍼레이션으로만 가능 이 두 오퍼레이션은 항상 하나의 쌍으로 연속으로 실행됨 이 두 오퍼레이션의 코드를 개발자가 채워야함 맵리듀스 시스템이 Map의 결과를 Reduce단으로 모아줌 이 단계를 보통 셔플링이라 부르며 네트웍단을 통한 데이터 이동이 생김 맵리듀스 프로그래밍의 핵심: 맵과 리듀스 Map: (k, v) -> [(k', v')*] 입력은 시스템에 의해 주어지며 입력으로 지정된 HDFS 파일에서 넘어옴 키,밸류 페어를 새로운 키,밸류 페어 리스트로 변환 (transformati..

YARN의 동작 방식 YARN의 세부 동작을 알아보고 하둡 버전 간의 차이점에 대해 간략히 요약해보자 분산 컴퓨팅 시스템: 하둡 2.0 (YARN 1.0) 하둡 2.0 분산 컴퓨팅 시스템의 구성도 마스터(Master): 리소스 매니저 슬레이브(Slave): 노드 매니저 컨테이너는 JAVA의 JVM과 비슷하며 앱 마스터와 태스크 두 유형이 존재 앱 마스터는 일단 조금 더 특별한 컨테이너라고 알아둡시다. 세부 리소스 관리가 가능한 범용 컴퓨팅 프레임웍 리소스 매니저 - Job Scheduler, Application Manager 노드 매니저 컨테이너 - 앱 마스터 - 태스크 Spark이 이 위에서 구현됨 YARN의 동작 1. 실행 코드(와 환경 정보)를 RM에게 제출 2. RM이 NM을 통해 AM 실행 3..

하둡의 등장과 소개 기존 기술과는 전혀 다른 방식을 택함으로써 대용량 데이터 처리를 가능하게 해준 하둡에 대해 알아보자 하둡(Hadoop)의 등장 Doug Cutting이 구글랩 발표 논문들에 기반해 만든 오픈소스 프로젝트 2003년 The Google File System (분산에 대해) 2004년 MapReduce: Simplified Data Processing on Large Cluster (분산 파일의 처리에 대해) 처음 시작은 Nutch라는 오픈소스 검색엔진의 하부 프로젝트 위의 구글랩 논문 2개에 영감을 받아 탄생 하둡은 Doug Cutting의 아들의 코끼리 인형의 이름 2006년에 아파치 톱레벨 별개 프로젝트로 떨어져나옴 하둡(Hadoop)이란? Hortonworks의 정의 An open..

빅데이터 처리의 특징은? 스토리지, 병렬처리, 비구조화 데이터 처리 기능이 필요합니다. 먼저 큰 데이터를 손실없이 보관할 방법이 필요: 스토리지 처리 시간이 오래 걸림: 병렬처리 이런 데이터들은 비구조화된 데이터일 가능성이 높음: SQL만으로는 부족 예를 들면 웹 로그 파일 66.249.65.107 - - [08/Oct/2007:04:54:20 -0400] "GET /support.html HTTP/1.1" 200 11179 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)" 111.111.111.111 - - [08/Oct/2007:11:17:55 -0400] "GET / HTTP/1.1" 200 10801 "ht..