전체 글 373

Spark 소개

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..

하둡과 Spark 2024.01.15

맵리듀스 프로그래밍 실행

맵리듀스 프로그래밍 - 단어수 세기 앞서 살펴본 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 태스크 수를 개발자가 지정해주어야함

하둡과 Spark 2024.01.15

하둡 설치 - 맵리듀스 프로그래밍 실행

하둡 설치와 맵리듀스 프로그래밍 실습 하둡 설치와 맵리듀스 프로그래밍 실습 하둡 설치 하둡 3.0을 의사분산 모드로 리눅스 서버에 설치 의사분산 모드는 Hadoop 관련 프로세스들을 개별 JVM으로 실행 AWS 우분투 EC2 t2.medium 인스턴스 사용 - 자바 8이 필요. 우분투 설치 문서 참조 데모 하둡 웹 UI - HDFS 내임노드 (포트번호: 9870) 데이터노드 (포트번호: 9864)

하둡과 Spark 2024.01.15

맵리듀스 프로그래밍 소개

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

하둡과 Spark 2024.01.15

YARN의 동작방식

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..

하둡과 Spark 2024.01.15

하둡의 등장과 소개

하둡의 등장과 소개 기존 기술과는 전혀 다른 방식을 택함으로써 대용량 데이터 처리를 가능하게 해준 하둡에 대해 알아보자 하둡(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..

하둡과 Spark 2024.01.15

빅데이터 처리가 갖는 특징

빅데이터 처리의 특징은? 스토리지, 병렬처리, 비구조화 데이터 처리 기능이 필요합니다. 먼저 큰 데이터를 손실없이 보관할 방법이 필요: 스토리지 처리 시간이 오래 걸림: 병렬처리 이런 데이터들은 비구조화된 데이터일 가능성이 높음: 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..

하둡과 Spark 2024.01.15

빅데이터의 정의와 예

빅데이터의 정의와 예 빅데이터란 무엇이며 어떤 예들이 있는가? 빅데이터의 정의 1 “서버 한대로 처리할 수 없는 규모의 데이터” 2012년 4월 아마존 클라우드 컨퍼런스에서 아마존의 data scientist인 존 라우저(John Rauser)가 내린 정의 분산 환경이 필요하느냐에 포커스 판다스로 처리해야할 데이터가 너무 커서 처리가 불가능하다면 어떻게 할 것인가? 빅데이터의 정의 2 “기존의 소프트웨어로는 처리할 수 없는 규모의 데이터” 대표적인 기존 소프트웨어 오라클이나 MySQL과 같은 관계형 데이터베이스 분산환경을 염두에 두지 않음 Scale-up 접근방식 (vs. Scale-out) - 메모리 추가, CPU 추가, 디스크 추가 빅데이터의 정의 3 4V (Volume, Velocity, Varie..

하둡과 Spark 2024.01.15

13주차 - 2 [프로젝트] API와 DAG

1. Google Trends는 공식적으로 API를 제공하지 않는다. 2. pytrends라는 비공식 API가 존재하지만 모듈 관리가 제대로 되지 않는 상황 (가혹한 TooManyRequestsError 등) 3. 최후의 방법으로 Google Trends에서 웹 스크래핑을 하려했으나 구글측에서 bs4는 물론 Selenium을 이용한 크롤링을 원천차단 4. Network에서 Google Trends의 API를 알아내 오늘 날짜의 현재 시각 키워드를 알아내는데는 성공 (팀원분께서 도와주셨다) 5. 위의 작업을 DAG로 작성하고 Airflow를 통해 PostgreSQL(Redshift)에 적재하는데 성공 Google_trends_data_extraction.py from airflow import DAG fr..

데브코스 TIL 2024.01.09