# MapReduce

28개의 포스트
post-thumbnail

데이터 엔지니어링 Key Word

SQL은 무엇의 약자인가요? > Structured Query Language 배치 프로세싱과 스트리밍 프로세싱의 가장 큰 차이점은 무엇인가요? > 처리 속도 배치 프로세싱에서 실패한 작업을 복구하려면 어떤 메커니즘이 사용될 수 있나요? > 다시 시도 메커니즘 데이터 스트리밍 아키텍처에서 "프로듀서"의 역할은 무엇인가요? > 데이터를 수집하고 스트리밍 플랫폼으로 전송 배치 프로세싱에서 데이터 파티셔닝이 필요한 주요 이유는 무엇인가요? > 병렬 처리 향상 > > - 파티셔닝 : 큰 table이나 index를, 관리하기 쉬운 partition(파티션)이라는 작은 단위로 물리적으로 분할하는 것 배치 프로세싱에서 **데이

2023년 9월 12일
·
0개의 댓글
·

MapReduce 정의 및 작동방식

MapReduce MapReduce는 HDFS, YARN과 함께 제공되는 Hadoop의 핵심 기술. Hadoop에 내재된 기능이며 클러스터에 데이터의 처리를 분배. MapReduce는 데이터를 파티션으로 나눠서 클러스터에 걸쳐 병렬 처리되도록 한다 Data Mapper 매핑은 기본적으로 데이터를 변형시킨다 즉 데이터가 한 줄씩 들어오면 매퍼는 그 데이터를 변형시킨다. 키-값 쌍으로 전환 > 예를 들어 각 사용자가 시청한 영화의 수를 집계하려고 한다면, 키는 사용자의 ID, 값은 사용자가 평가한 영화가 될 것. 일반적인 python dict 자료구조와는 달리 중복된 키가 존재할 수 있음. 이 경우 ID=1의 사용자가 두개 이상의 영화를 평가한 것. 맵핑 단계에서 같은 키값이 나오는 것은 전혀 문제될 것이 없음. 들어오는 데이터에서 필요한 정보를 추출하고 이해할 수 있는 구조로 정리. 모든 입력 줄(input line)마다 매퍼는 중요한 데이터를 추출하고

2023년 6월 28일
·
0개의 댓글
·

HDFS 파일 입/출력 MapReduce 실습

이제 HDFS(Hadoop Distributed File System)를 사용해서 로컬 호스트(DataNode)에서 파일을 Hadoop 클라우드(NameNode)로 올리고, 역으로 Hadoop 클라우드에 있는 데이터를 로컬 호스트로 옮기는 작업을 해본다. 이어서 HDFS가 데이터를 처리하는 Mapping과 Reducing을 WordCount를 통해서 실습해보자. Hadoop 마스터인 NameNode는 데이터를 (json 포맷 : Python의 Dictionary, MongoDB, XML, 프론트엔드에서의 웹 Expression, ...등에서의 데이터 저장방식)로 저장하고 있다가, 클라우드의 여러 슬레이브 DataNode에 분산 저장할 때에는 데이터를 Key와 value를 분리하는 Mapping 과정을 수행 한 뒤> 메모리에 올리는 Reducing 과정을 수행해서 데이터를 새롭게 정렬해둔다. Hadoop 마스터 NameNode는 Hadoop 슬

2023년 6월 21일
·
0개의 댓글
·

[Hive] 사용해보기

Hive 예제 사용해보기 (영화 크롤링 파일) > Hive를 이용하여 영화 크롤링 파일 mapreduce 해보기 hadoop 유저 접속 제공해준 파일 tmdb.zip 파일 받기 clinet 에서 실행 unzip 설치 잘들어갔는지 확인 (namenode:50070에서 확인) putty에서 확인하는 방법 Hiv

2023년 6월 20일
·
0개의 댓글
·

[Hadoop] 하둡 WordCount(예제)

Hadoop에서 wordcount 하기 putty 접속 후 hdfs에 새로운 폴더 생성 hdfs에 데이터 넣기 Hadoop Cluster에서 텍스트 파일 검색하기 Hadoop MapReduce의 예제 중 하나인 grep 실행 하둡 클러스터에서 텍스트 파일을 검색 >/mydata 경로에 있는 텍스트 파일을 dfs[a-z.]+라는 문법 (dfs가 들어가는 거를 wordcount)을 통해서 작업할거고, 그 아웃풋을 /output2 에 담겠다. MapReduce 성공 결과 세부 내역 확인 노란색 url 경로를 들어가면 아래 그림과 같이 확인할 수 있다. ![](https://velog.velcdn.com/images/jaekyu_lim/post/d32ecaba-bc04-

2023년 6월 19일
·
0개의 댓글
·
post-thumbnail

MapReduce란?

💡 MapReduce는 구글에서 공개한 논문인 MapReduce: Simplified Data Processing on Large Cluster에서 소개한 프로그래밍 모델과 구현한 모듈 자체를 모두 지칭하는 말로 한 가지 Task를 여러 대의 컴퓨터에게 분산해서 처리하는 방식을 의미합니다. map( )은 Task를 분산하여 각 여러대의 컴퓨터에 mapping해서 데이터를 처리하고 reduce( )는 그렇게 처리한 결과를 병합합니다. 빅데이터 분산 처리 프레임워크인 Hadoop의 핵심 모듈, 분산 처리 엔진으로 사용되고 있습니다. MapReduce ![](https://velog.velcdn.com/images/ggydo59/post/1d0ce87c-

2023년 3월 20일
·
0개의 댓글
·

[하둡 완벽 가이드] 2. 맵리듀스

2.0 맵리듀스는 데이터 처리를 위한 프로그래밍 모델이다. 맵리듀스는 태생 자체가 병행성을 고려하여 설계되었고, 누구든지 이를 이용해 데이터 분석을 할 수 있다. 맵리듀스는 대용량 데이터셋에서 진가가 드러난다. 2.1 기상 데이터셋 예시로 쓰일 기상 데이터는 https://www.ncei.noaa.gov/ 에서 가져오면 된다. 연도별 최고 기온이 얼마인지 궁금하다. 기상 데이터를 살짝 뜯어보면 기상관측소 식별자, 관측 날짜, 관측 시간, 위도, 경도, 바람 뱡향, 고도 등 수많은 정보들이 담겨있다. 이 모든 정보들은 필요하지 않고 필요한 정보(기온, 연도)만 뽑기 위해 전처리 작업을 수행해야 한다. 2.2 유닉스 도구로 데이터 분석하기 이 스크립트는 압축된 연도별 파일을 살펴본다. 단순하게 보면 데이터에서 기온을 뽑아낸 후 유효한 값이면 계속해서 최고 기온과 비교하여 최고 기온을 갱신하는 방법이다. 이러한 방법으로 ec2 고성능 인스턴스에서 실행한 결과 4

2023년 2월 28일
·
0개의 댓글
·

빅데이터를 지탱하는 기술 - 5장

5장 빅데이터의 파이프라인 빅데이터 파이프라인을 자동화하기 위한 구조에 대해 살펴보겠다. 5-1 워크플로 관리 정기적인 데이터 관리를 자동화하여 안정된 배치 처리를 실행하기 위해 워크플로 관리 도구를 도입한다. 워크플로 관리 워크플로 관리(workflow management) : 기업 내에 정형적인 업무 프로세스(신청, 승인, 보고 등)와 같이 정해진 업무를 원할하게 진행하기 위한 구조. 워크플로 관리 도구 역할 정기적으로 태스크를 실행 비정상적인 상태를 감지하여 그것에 대한 해결을 도움 워크플로 관리 도구 종류 태스크(task) : 파이프라인 안에서 처리되는 개별 처리 단위 ! 간단한 태스크 처리 같은 경우에는 도구를 사용하지 않고 스크립트로 처리

2023년 2월 14일
·
0개의 댓글
·
post-thumbnail

[BigData] Hadoop을 이용한 MapReduce 실습

**위의 사진은 하둡이 일반컴퓨터에서도 빠르게 작동하는 모습을 표현한 사진입니다. 출처 > #### 1. 가상머신(Virtual Machine) 설치 > #### 2. CentOS Linux 설치 > #### 주의 가상머신과 리눅스는 설치하기 쉽다. 하지만, 하둡은 셀 상에서 vi / vim을 명령어를 이용하여 파일을 편집해 주면서 설치하는 프로그램이다. 이때, 오타를 각별히 주의해야 한다! >

2022년 12월 22일
·
0개의 댓글
·

HDFS 작동방식

HDFS > 빅데이터를 전체 클러스터에 분산해 안정적으로 저장하여 애플리케이션이 그 데이터를 신속하게 액세스해 분석할 수 있게함. HDFS는 대용량 파일들을 다루기 위해 만들어짐. 대용량 파일들을 작은 조각으로 나누어 클러스터 전체에 걸쳐 분산시키는데 최적화되어있다. 대용량 파일 즉 빅데이터를 '데이터 블록'으로 나눔. 기본값은 128MB 혹은 그 이하 대용량 파일을 블록으로 나눔으로써 더 이상 하드 드라이브의 용량에 제한되지 않게한다. HDFS는 이 대용량 파일을 분산해서 처리. 대용량 파일을 쪼개 여러 컴퓨터에 걸쳐 저장했다면 각 컴퓨터는 자기에게 저장된 데이터 블록을 동시에 처리할 수 있게된다. 데이터를 효율적으로 엑세스할 수 있도록 데이터 블록을 처리하는 컴퓨터가 해당 블록이 저장된 곳이랑 가까운 거리에 있도록 조정함. 단 하나의 블록만 저장하지 않는다. 모든 블록마다 두 개 이상의 복사본을 저장. 어

2022년 12월 20일
·
0개의 댓글
·
post-thumbnail

MapReduce

MapReduce란? 2004년 구글에서 발표한 Large Cluster 에서Data Processing 을 하기 위한 알고리즘 Hadoop MapReduce 는 구글 알고리즘 논문을 소프트웨어 프레임워크로 구현한 구현체 Key-Value 구조가 알고리즘의 핵심 모든 문제를 해결하기에 적합하지는 않을 수 있음(데이터의 분산 처리가 가능한 연산에 적합) MapReduce 알고리즘 key-value구조로 되어있다. Map Function과 Reduce Function 모두 input도 key value, output도 key value Map Function : (key1, value1) -> (key2, value2) Reduce Function : (key2, List of value2) -> (key3, value3) | 장점 | 단점 | |:----------|:----------:| | 단순하고 사용이 편리 | 고정된

2022년 12월 8일
·
0개의 댓글
·
post-thumbnail

Hadoop-ecosystem - Docker container로 구축해보기 (1)

프로젝트 github : https://github.com/cattmerry/docker-hadoop hadoop ecosystem을 docker container로 구축해보는 테스트를 진행해봤다. centos 이미지를 base로 단계별로 dockernize하여 필요한 이미지를 빌드하고 서비스별 컨테이너를 실행하도록 구성했다. 사용한 언어 및 프레임워크 버전은 다음과 같다. > java : 1.8.0 python : 3.7.6 hadoop : 3.2.4 spark : 3.2.2 zeppelin : 0.10.1 Base image build 먼저 각 서비스 실행을 위한 base image를 build한다. 아래의 순서로 이미지를 쌓아간다. 필요한 프로그래밍 언어 설치 필요한 프레임워크 설치 language-base image ![](https://velog.velcdn.com/images/cattmerry/post/8c1092ff-49ca-4

2022년 9월 5일
·
0개의 댓글
·
post-thumbnail

Apache Spark

Apache Spark 비교적 최근에 (2012년) 등장하여 선풍적인 인기를 얻고 있는 분산처 리 프레임워크 메모리 기반의 처리를 통한 고성능과 Functional Programming 인 터페이스를 활용한 편리한 인터페이스가 특징 >Hadoop (MapReduce)는 매번 중간 결과를 디스크에 저장하지만, Spark은 이를 메모리에서 처리하므로 효율이 좋다. (PageRank나 머신러닝 알고리즘같이 반복계산이 많은 경우 특히 성 능이 좋음) MapReduce 빅데이터의 시초 여러대의 분산 저장소에 존재하는 데이터를 변환하

2022년 9월 2일
·
0개의 댓글
·
post-thumbnail

[Week2] 데이터 엔지니어링이란?) 04. Hadoop Ecosystem

💡 (Apache) Hadoop : High-Availability Distributed Object-Oriented Platform의 약자 Apache(아파치) 재단에서 관리하는 프리웨어인 Hadoop Project에서 만들어지는 모든 소프트웨어 솔루션들의 집합을 얘기한다. Hadoop은 HDFS라는 파일처리 시스템과 YARN이라는 리소스 관리 시스템, MapReduce라는 대용량 처리 시스템을 기반으로 하는 프레임워크다. 대용량 데이터를 효과적으로 처리하는 것을 목적으로 하는 많은 소프트웨어들이 함께 있는 플랫폼으로 많은 기업이 활용하고 있다. HDFS (Hadoop Distributed File System) ![](https://velog.ve

2022년 8월 30일
·
0개의 댓글
·
post-thumbnail

MapReduce Framework

병렬 분산 시스템 사용하는 이유 Scale-out 아주 많은 값싼 서버들을 이용함 Scale-up 적은 수의 값비싼 서버들을 이용함 데이터 중심 어플리케이션 분야에서는 아주 많은 값싼 서버들을 이용하는 것을 선호 고가의 서버들은 가격에 관점에서는 선형으로 증가하지 않음 두배의 성능을 가진 프로세서 한 개를 가진 컴퓨터의 가격이 일반적인 프로세서 한 개를 가진 컴퓨터 가격의 두 배보다 훨씬 더 비쌈 맵 리듀스를 사용하는 이유 데이터 중심 프로세셍 한대의 컴퓨터의 능력으로 처리가 어려움 근본적으로 수십대, 수백대 혹은 수천대의 컴퓨터를 묶어서 처리해야 함 맵 리듀스는 빅데이터를 이용한 효율적인 계산이 가능한 첫번째 프로그래밍 모델 기존에 존재하는 여러 가지 다른 병렬 컴퓨팅 방법에서는 프로그래머가 낮은 레벨의 시스템 세부 내용까지 아주 잘 알고 많은 시간을 쏟아야만 함 MapReduce Fram

2022년 8월 26일
·
0개의 댓글
·
post-thumbnail

[8.23 TIL] Hadoop

Hadoop Hadoop이란? 단일 서버에 수천대의 머신으로 확장할 수 있도록 설계되었다. 일반적으로 하둡파일시스템(HDFS)과 맵리듀스(MapReduce)프레임워크로 시작되었으니, 여러 데이터 저장, 실행 엔진, 프로그래밍 및 데이터 처리와 같은 하둡 생태계(Haddoop Ecosystem) 전반을 포함하는 의미로 확장, 발전되었다. img 하둡 코어 프로젝트 : HDFS(분산 데이터 저장), MapReduce(분산 처리) 하둡 서브 프로젝트 : 나머지 프로젝트들 -> 데이터 마이닝, 수집, 분석 등을 수행한다. 하둡 분산형 파일 시스템(Hadoop Distributed File System, HDFS) 하둡 분산 파일 시스템은 하둡 프레임워크를 위해 자바

2022년 8월 23일
·
0개의 댓글
·
post-thumbnail

[Hadoop] Hadoop TIL

- Hadoop 분산 파일 시스템의 병렬처리 프레임워크에서 실행되는 플랫폼 -> 데이터의 양이 많아짐에 따라 분산해서 저장 why? -> 한번에 큰 데이터를 한번에 저장하기 힘들기 때문에 -HDFS (Hadoop Distributed File System) 블록 파일 시스템과 디스크 블록과 같은 유형 마스터(데이터의 위치, 형식보관) - 슬레이브(실데이터 저장) 구조 슬레이브 노드의 쉬운 확장가능 신뢰성 보장 - 데이터 복제본 자동관리 Block in Hadoop -하나의 파일을 여러 개의 Block으로 저장한다. process & thread 작업의 단위 / 흐름의 단위 - NameNode (Master) 메타 데이터라고 부르는 파일 시스템의 전체 디렉터리 구조에 대해 스냅샷을 유지하고 클러스터에서 위치를 추적한다. HDFS 내의 모든 파일에 대한 블록과 해당 위치를 리스트한다

2022년 8월 16일
·
0개의 댓글
·
post-thumbnail

Apache Hadoop

하둡은 누구나 무료로 사용할 수 있는 오픈소스(Open Source) 소프트웨어. 대량의 데이터 저장소라고 생각하면 된다. Apache Hadoop 오픈소스 분산 컴퓨팅 플랫폼 Java-based distributed 컴퓨팅 플랫폼 Scale - Out 형식(서버 대수를 증가하여 저장용량을 확장시켜 분산 처리) 소프트웨어 에코시스템 데이터 프로세싱과 분석을 모두 수행하는 시스템 대량의 데이터를 서버 대수를 나눠 배치 프로세싱하는 방법 클러스터 방식의 시스템(대량의 서버가 클러스터로 구성) Hadoop-Echosystem이란? 하둡의 코어 프로젝트(Framework)는 HDFS, MapReduce이지만 그 외에도 다양한 서브 프로젝트들이 많다. 하둡 에코 시스템은 그

2022년 7월 11일
·
0개의 댓글
·
post-thumbnail

[Hadoop] 맵 리듀스

과정 입력 데이터를 스플릿이라는 조각으로 나눈다. 스플릿의 크기는 작을 수록 더 많은 수의 컴퓨터로 병렬적으로 처리할 수 있기 때문에 좋다. 하지만 너무 작으면 스플릿 관리와 맵 태스크 생성을 위한 오버헤드 때문에 잡의 실행 시간이 증가한다. 일반적으로 HDFS 블록의 기본 크기인 128MB가 적당하다고 알려져 있다. 스플릿이 있는 곳에 맵 태스크에 할당한다. (스플릿의 위치에 대한 정보는 HDFS의 NameNode 들이 알고 있다. 주기적으로 DataNode 들이 데이터의 위치에 대한 정보를 NameNode 들에게 보고한다.) 이렇게 하는 이유는 코드의 실행이 실제 데이터가 있는 곳에서 이뤄지게 하기 위해서이다. 계산 노드와 데이터 노드를 같은 곳에 배치하여 데이터 지역성(Data Locality)을 취할 수 있다. 맵 태스크는 자신에게 할당된 스플릿을 읽으면서 새로운 키-값 쌍들을 만든다. 하나로 묶어서 처리해야 할 데이터들은 값이 되고, 그

2022년 2월 3일
·
0개의 댓글
·

[Hadoop] Mapreduce 기본

MapReduce 하둡이 제공하는 빌트인 도구 데이터를 클러스터에 분배하는 작업 수행 데이터를 파티션으로 나누어 클러스터에서 병렬로 처리할 수 있도록 함 Mapper 는 관심있는 데이터를 뽑아 데이터를 추출하고 구조화 Reducer 는 mapper 에서 변경, 추출한 데이터를 종합하는 과정 인풋데이터를 mapper 를 통해 key value 쌍으로 변환 같은 키가 여러번 나타날 수 있음 ex) 사용자가 영화를 평가한 경우, key 를 user id, value 를 movie id 라 하면 user id 는 평가한 영화의 갯수만큼 중복되게 됨 그 외 timestamp 등 불필요한 데이터는 최적화를 위해 제외 데이터를 같은 키 별로 분류하고 정렬, 값을 종합함 검색에 유리한 키를 분류하기도 함 reducer 는 각 키에 대해 호출됨 ** 서로 다른 클러스터에 저장된 데이터에 대해 키 별로 데이터를

2022년 1월 10일
·
0개의 댓글
·