⭐ Plogramming/BigData 8

Chpater 6. 클러스터에서 애플리케이션 실행하기 - 스파크 프레임워크

1. 스파크 프레임워크 오픈 소스 프로세싱 프레임워크 일반 서버를 사용해 대용량 데이터 처리 및 분석(맵리듀스) 하둡 클러스터에서 스파크와 맵리듀스는 병행해서 사용 가능 -> 맵리듀스는 배치 프로세싱 담당/스파크는 반복 처리 담당 얀으로 2개 프로세싱 프레임워크 관리 및 맵리듀스를 실행하는 노드에서 스파크를 실행할 수 있음 맵리듀스와의 차이점 데이터 스토리지로 메모리 사용 -> 애플리케이션이 동작하는 동안 계산과 데이터 스토리지를 위해 메모리를 사용(맵리듀스는 계산하는 데 메모리 사용) 잡을 여러 단계가 있는 DAG로 변환시킴 -> DAG가 복잡할 수록 실행 능력이 더 좋음 잡을 두 단계로 제한하지 않음 -> 여러 잡들로 나누고 여러 단계로 나눠 실행 가능(최적화 가능) 스파크 인메모리 계산: 디스크에서..

Apache Flink DataStream API를 사용한 사기 탐지

상태 저장 스트리밍 애플리케이션을 위한 API FraudDetectionJob.java 데이터 흐름을 정의 package spendreport; import org.apache.flink.streaming.api.datastream.DataStream; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.walkthrough.common.sink.AlertSink; import org.apache.flink.walkthrough.common.entity.Alert; import org.apache.flink.walkthrough.common.entity.Transaction;..

분산 클러스터를 위한 하둡 시스템

클러스터를 위한 주요 서비스 리소스 매니저 리소스를 많이 사용하는 서비스 매우 작은 클러스터가 아닐면 전용 노드에서 리소스 매니저 서비스를 실행 네임노드 서비스 네임노드 전용 노드에서 실행 전용서버가 필수 저널 노드 네임노드나 리소스매니저와 같은 하둡 마스터 서비스가 실행되는 서버에서 실행 잡히스토리서버 마스터 노드가 실행되는 노드에서 실행 데이터노드와 노드매니저 서비스 모든 데이터노드에서 실행 주키퍼 서비스를 같은 노드에 위치시킬 때, 노드매니저에 할당하는 메모리를 최소화시켜야 함 데이터노드 데몬은 모든 데이터 노드마다 실행 MySQL DB 리소스를 많이 사용해 클러스터 노드 이외 곳에 설치하는 것도 고려 주키퍼 네임노드의 고가용성을 위해 최소 3개의 인스턴스에 홀수 개의 주키퍼 서비스를 실행해야 함 ..

Apache Flink란?

Apache Flink란? 분산 처리를 위한 오픈 소스 데이터 스트림 및 배치 처리 프레임워크 모든 일반 클러스터 환경에서 실행되고 인메모리 속도와 모든 스케일에서 계산을 수행할 수 있도록 설계됨 Architecture 데이터 처리 데이터는 이벤트의 스트림으로 처리 제한되지 않은 스트림 시작점은 있으나 종료시점은 존재하지 않음 스트림은 종료되지 않고 데이터가 생성될 때마다 데이터를 제공 입력이 무제한이기 때문에 어느 시점에서도 입력이 완전하지 않아 종료되지 않은 데이터를 특정 순서로 처리해야 함 이벤트가 발생한 순서대로 이벤트를 수집해야 결과의 완전성을 처리할 수 있 제한된 스트림 시작점과 종료시점이 정해져 있음 모든 계산을 수행하기 전에 모든 데이터를 수집함으로써 처리 정렬된 입력이 필요하지 않음 ->..

TimeWindow란

TimeWindow 데이터를 처리하고 분석하는 데 사용되는 시간 범위 일련의 데이터를 지정된 시간 간격으로 그룹화하거나 분할하여 특정 기간 동안의 데이터 통계, 집계 또는 분석을 수행하는데 사용 스트리밍 데이터나 시계열 데이터와 같이 시간에 따라 변화하는 데이터를 다룰 떄 유용 실시간 스트림 데이터에서 5분 동안의 트랜잭션 통계를 계산하거나, 웹 로그 데이터에서 1시간마다 페이지 뷰의 변화를 분석하는 등 적용 가능 Fixed Window 고정된 길이를 가짐 일정한 시간 간격으로 데이터를 그룹화하는 방식 예로, 1분 단위로 데이터를 그룹화하여 1분 동안의 통계를 계산하거나 집계할 수 있음 Sliding Window 이동하면서 변하는 길이를 가 이동하는 시간 창구로 데이터를 그룹화하는 방식 예로, 10분 길..

Chpater 3. 하둡 클러스터 생성 및 환경 설정

1. 하둡 설치 타입 독립형(Standalone) 로컬 파일 시스템에 데이터를 저장 단일 맵퍼와 단일 리듀서를 이용 자신의 코드를 실행하는 개발자에게 적합 가상 분산형 실제 멀티노드(분산) 클러스터처럼 모든 서비스를 설정할 수 있음 모든 데몬(데이터 노드, 네임 노드, 리소스 매니저 프로세스)는 단일 노드에서 동작 실제 운영 환경에서 사용 x 완전 분산형 여러 서버에 걸쳐 하둡을 설치 데이터 복제, 고가용성 설정 가능 다중 서버를 통해 각 프로세스들을 위한 데몬 운영 2. 운영 시스템의 유용한 유틸리티 yum Red Hat Enterprise Linux RPM SW 패키지를 가져와 설정, 삭제, 검색, 관리할 수 있게 해주는 툴 우문투 리눅스에서는 apt-get rpm Red Hat, SUSE, Fedo..

Chapter 2. 하둡 아키텍쳐

1. 하둡 아키텍쳐 하둡 클러스터 HDFS과 얀(클러스터 리소스 매니저)를 기반으로 하는 하둡 SW를 사용하는 컴퓨터들의 집합체 마스터 노드: 클러스터의 작업을 중재 워커 노드: 마스터의 명령을 수행하며 데이터가 저장되고 프로세싱 하둡 서비스 HDFS 서비스 얀 서비스 2. HDFS 아키텍처 데이터 스토리지 특징 대용량 데이터 세트 다루기 장애 허용 기본적으로 3번 복제가 되어 다른 노드에 데이터가 저장되기 때문에 장애 서버의 영향을 받지 않는다. (서버의 병렬화) 데이터 스트리밍 배치 프로세싱을 위해 디자인되었으며 데이터 세트에 대해 스트리밍 접속이 가능하도록 만들어졌다. 단순 데이터 일관성 모델 WORM(Wite Once Read Many access model)로 하나의 주체만 기록할 수 있다. 마..

Chapter 1. 하둡 소개 및 환경

1. 하둡이란? 하둡은 방대한 양의 데이터를 처리하는 플랫폼이다. 하둡의 핵심: HDFS(데이터 저장), 얀(프로세싱 프레임워크) 2. 하둡 특징 대용량 처리 능력: 파일 사이즈가 크고, 하둡 클러스터로 백만개 이상 저장 가능 장애 허용: 데이터를 다수의 서버에 복사한다. 높은 장애 대응력: 얀이나 HDFS는 디스크가 작동하지 않아도 계속 데이터 복사 업무를 수행한다. 데이터 스트리밍 액세서: 목차를 다는 것처럼 배치 프로세싱을 위한 스트리밍 액세스 간단한 데이터 일관성 모델: WORM(Wite Once Read Many access model) 3. 클러스터 컴퓨팅과 하둡 클러스터 클러스터 컴퓨팅 여러 대의 컴퓨터를 하나의 시스템으로 연결하여 하나의 큰 컴퓨터처럼 동작하도록 구성하는 기술 데이터 블록들..