데이터 엔지니어링/빅데이터 33

Apache Hadoop Ecosystem

2022.05.09 - [분류 전체보기] - Flume Flume 연속적으로 생성되는 데이터 스트림을 수집 및 전송하고 HDFS에 저장할 수 있는 도구이다. 로그파일, 소셜 미디어 데이터, 이메일 메시지 등 다양한 데이터를 다룬다. Flume의 구성요소는 다음과 malachai.tistory.com 2022.05.09 - [분류 전체보기] - Sqoop Sqoop RDBMS와 HDFS 간의 효율적인 대용량 bulk 데이터 전송을 지원해주는 도구이다. MS SQL, PostgreSQL, MySQL, Oracle 등 JDBC와 호환되는 모든 RDBMS에 사용이 가능하다. Sqoop은 Hadoop 내에서 실행되는데, Sqoop I.. malachai.tistory.com 2022.05.09 - [분류 전체보기..

Hadoop의 구성 요소

Hadoop Common 타 모듈들에게 공통으로 필요한 라이브러리 및 유틸리티를 담는다. Java Archive(JAR)의 형태로 제공돤다. JRE 1.6 이상을 요구한다. 하둡을 기동 및 셧다운할 때 필요한 스크립트를 제공한다. Secure Shell(SSH)을 요구한다. Hadoop Core HDFS Hadoop 클러스터 노드에 데이터를 저장하는 분산된 파일 시스템이다. 클라이언트가 네임노드에서 접근해야 하는 파일의 위치 등 메타데이터 수집 → 데이터 노드에 접근하여 파일 쓰기/읽기 YARN 클러스터에 있는 컴퓨팅 자원들(CPU, 메모리 등)을 동적으로 관리하는 플랫폼 서비스이다. MapReduce의 경우, 대규모 테이블 데이터를 검색하여 많은 디스크 관련 I/O를 사용하여 적은 메모리를 사용한다. ..

Hadoop의 빅데이터 처리 방식

Hadoop의 큰 특징은 다음과 같이 정리할 수 있다. 오픈소스 SW HDFS + MapReduce 빅데이터 처리 프레임워크 다양한 하둡 에코시스템으로 구성 결함 허용 데이터 블록의 복사본을 중복 저장하고 유지 Hadoop이 데이터를 처리하는 방식은 다음과 같은 단계로 나타낼 수 있다. 데이터 블록 전송 단계 하나의 파일을 여러 블록으로 나누어 클러스터에 있는 데이터 노드들에게 분산하여 저장한다. 데이터 블록 복제 단계 하나의 블록은 여러개의 복제본을 생성하여 분산 저장한다. 프로그램 코드 전송 단계 데이터를 저장하고 전처리와 같은 처리방법 전달을 위해 작업을 전달한다. 패키지 된 프로그램 코드를 해당 노드들에게 전달한다. 데이터 병렬 처리 단계 데이터를 병렬 처리할 수 있게 한다.

Hadoop의 계층

YARN(Yet Another Resource Negotiator) 하위에 있는 HDFS 계층과 상위에 있는 맵리듀스를 포함한 여러 Data Processing 모듈들과의 인터페이스 역할을 하며 자원 관리를 전담할 수 있도록 하는 계층이다. YARN 계층의 특징은 다음과 같다. 자원을 다양한 응용프로그램에 효율적으로 할당하도록 노력한다. 사용자 응용 프로그램을 효율적으로 스케줄링 한다. 클러스터의 자원을 컨테이너로 분할한다. 실행중인 컨테이너들을 모니터링 한다. 클러스터의 자원을 컨테이너로 관리함으로써 분산 시스템을 전체적으로 원활하게 운영한다. YARN은 자원 관리자(Resource Manager), 응용 프로그램 마스터(Application Master)의 두가지 Daemon을 실행하는데, 자원 관리..

빅데이터 처리 시스템 HW

HW 구성 요소 하둡은 크게 저장된 데이터를 관리하는 HDFS 계층, 작업을 관리하는 MapReduce 계층으로 구분된다. 각 HW에 데이터 저장과 작업을 적절하게 분산시켜 Multi-node Cluster를 이루게 되는데, 이 때 총 시스템을 감독하는 Master노드와 데이터 저장 및 작업을 수행하는 Slave노드로 구분된다. 하둡의 두 계층 관점에서, Master노드는 두가지 기능을 수행한다. 자신 또는 Slave 노드에 저장된 Data를 괸리하는 Name노드의 역할과 자신 또는 Slave노드가 수행 할 작업이 관리되는 Task Tracker를 총괄감독하는 Job Tracker의 역할이 있다. 마스터 노드 마스터 노드의 핵심 기능 두가지는 네임노드와 작업 트래커라 할 수 있다. 네임노드 실행 → 작업..

빅데이터 처리 방식

배치 처리 일간, 월간, 연간 등 주기적으로 작업을 일괄적으로 수행하는 방식이다. 배치 처리의 대표적인 툴은 MapReduce, Hive, Pig 등이 있다. 배치 처리 방식의 핵심인 ETL은 주기적 Extraction, 추출한 데이터의 Transformation, 데이터를 받아오는 Load 프로세스로 구성된다. 배치 처리 수행의 스케줄링을 위해 Unix/Linux에선 cron 명령어나 at, Windows에선 Job Scheduler를 사용한다. https://webdir.tistory.com/174 리눅스 cron - 작업 예약 명령 CentOS 6.4에서는 RHEL6 버전부터 사용된 anacron이 채용되어 있습니다. 이로 인해 RHEL5 버전까지 crontab에 설정되어 있던 run-part부분,..

빅데이터 처리 SW

Hadoop 오픈소스 빅데이터 처리 플랫폼이며, 분산 파일 시스템인 HDFS와 분산 병렬 처리 시스템인 Map Reduce의 두가지 핵심기능을 제공한다. 데이터 처리, 분석, 시각화 등 다양한 기능을 가진 툴들과 함께 시스템을 이루는 경우가 많은데, 이를 Hadoop Ecosystem이라 부른다. 결함 허용의 특징이 있으며, 데이터 블록의 복사본을 중복 저장하고 유지한다. Big Query 구글 클라우드 스토리지와 함께 사용하는 대용량 데이터 처리 엔진이다. 클라우드 서비스로, 자체적인 SW 설치나 운용이 필요 없다. 분석할 데이터를 구글 시스템에게 전송한 후, BigQuery API를 사용하여 질의하는 방식이다. 최대 2TB까지 무료로 데이터를 업로드하고 분석할 수 있다. SQL 언어를 사용하며 구글 ..

빅데이터 처리 인프라

개별적 시스템 구축 On-Premise 환경에서 자체적으로 구축한 시스템을 사용하는 방식이다. 소프트웨어를 서버에 직접 설치함으로써 시스템을 구축한다. 이 방법은 내부데이터의 관리정책과 보안 문제로 외부 IaaS나 PaaS를 활용하기 어려울 때, 서비스의 요구사항을 외부 서비스가 지원하지 않을 때 사용된다. 클라우드 컴퓨팅 외부 서비스업체로부터 하드웨어나 소프트웨어, 네트워크 등의 자원을 구매하여 원격으로 지원받아 환경을 구축한다. 초기 투자비용이 상대적으로 적게 발생하며 시스템에 대한 구축 오버헤드 또한 절감할 수 있다. 향후 시스템이 확장되어야 할 때 확장성을 보장받을 수 있다. 베어메탈(Bare-metal) 기반 클라우드 컴퓨팅 타입1 하이퍼바이저(TYPE1 Hypervisor)라고도 불리우는 클라..

빅데이터 처리 프로세스

빅테이터 처리는 데이터로부터 유용한 정보를 발견하고, 정보를 분석하여 가설이나 규칙을 만들어, 의사결정을 지원한다. 이를 정리하면 데이터를 수집, 저장, 처리, 분석, 표현하는 전반적인 프로세스이다. 1. 데이터 소스 파일, DB와 같은 내부 데이터 소스나 공공DB, SNS, IoT 센서와 같은 외부 데이터소스가 있다. 2. 데이터 수집 정형화된 데이터로 RDB, CSV 파일 등이 있다. 반정형 데이터로 JSON, RSS, XML, 웹 로그, HTML, 센서 데이터 등이 있다. 비정형 데이터로 이진파일, 이미지, 텍스트, 동영상 등이 있다. 3. 데이터 저장 수집한 데이터의 형식에 따라 파일시스템 RDBMS, NoSQL DB의 데이터베이스 형식로 저장할 수 있다. 4. 데이터 처리 배치처리, 실시간 처리..

Hadoop 클러스터 동작방식

클러스터 환경인 Hadoop의 클러스터는 세가지 동작 방식이 있다. 독립모드(Standalone Mode) 데몬 프로세스 없이 모든 프로그램이 하나의 JVM(Java Virtual Machine) 위에서 동작하는 모드이다. 일반적으로 Map Reduce 프로그램을 동작시키고 테스트를 하며 사용된다. 분산운영 모드가 아니므로 실제 빅데이터 처리 환경으로는 부적합하다. HDFS(Hadoop Distriuted File System; 대용량 파일을 분산된 서버에 저장하고, 저장된 데이터를 빠르게 처리할 수 있게 하는 파일시스템)를 사용하지 않고, 로컬 파일 시스템을 사용한다. 의사 분산 모드(Pseudo-Distributed Mode) 하나의 노드에 하둡 데몬프로세스가 여러 개 분리되어 동작하는 모드이다. 하..