본문 바로가기
공부

[Hadoop] Hadoop 공부 - 1. 기본개념

by kyoung-ho 2024. 9. 20.
반응형

1. 기초 과정

1-1. Hadoop 기본 개념 이해

  • Hadoop이란?
    • 분산 저장과 분산 처리를 위한 오픈 소스 프레임워크
    • 두 가지 주요 구성 요소: HDFS(분산 파일 시스템)와 MapReduce(분산 처리 프레임워크)
  • Hadoop의 특징
    • 확장성: 노드 추가로 쉽게 확장 가능
    • 내결함성: 데이터가 여러 노드에 복제되어 장애 발생 시에도 데이터 손실 방지
    • 저비용: 저렴한 하드웨어로 빅데이터 처리 가능
  • Hadoop 에코시스템
    • HDFS: 대용량 데이터를 여러 노드에 분산 저장
    • MapReduce: 데이터를 분산 처리하는 프로그래밍 모델
    • YARN: 자원 관리 시스템으로 여러 애플리케이션을 동시에 실행 가능
    • Hive, Pig: SQL 같은 언어로 빅데이터 쿼리 및 분석
    • HBase: 실시간 빅데이터 처리와 NoSQL 데이터베이스

1-2. Hadoop 설치 및 설정

  • 싱글 노드 클러스터 설치
    • Ubuntu 또는 CentOS 기반의 VM에 Hadoop 설치
    • Hadoop 환경 설정 파일 수정(core-site.xml, hdfs-site.xml, mapred-site.xml, yarn-site.xml)
    • HDFS 포맷 및 실행
  • HDFS 명령어
    • 파일 업로드, 다운로드, 복사, 삭제 등 기본 명령어 학습

1-3. MapReduce 프로그래밍 기초

  • MapReduce 개념
    • MapperReducer의 개념 이해
    • 데이터를 키-값 쌍으로 나누고 병렬 처리
    • WordCount 예제: MapReduce의 Hello World 프로그램
  • MapReduce 프로그래밍 실습
    • 간단한 Java 기반 MapReduce 프로그램 작성 및 실행
    • Hadoop Streaming을 통한 Python, Bash 등을 이용한 MapReduce 실행

2. 중급 과정

2-1. Hadoop 에코시스템 확장

  • Hive: SQL을 사용하여 Hadoop 데이터를 쿼리하는 방법
    • HiveQL 기본 구문과 사용 방법
    • 데이터 테이블 생성, 조회, 분석
    • External Table과 Internal Table의 차이점
    • 실습: Hive를 이용한 데이터 분석 및 쿼리
  • Pig: 복잡한 데이터 변환을 간단하게 표현
    • Pig Latin을 이용한 스크립트 작성
    • 데이터 필터링, 그룹핑, 조인 등의 연산 학습
    • 실습: Pig를 활용한 데이터 처리

2-2. HDFS 심화

  • HDFS의 내부 구조
    • NameNodeDataNode의 역할 및 작동 방식
    • Replication 설정과 동작 방식
    • Block 크기 설정 및 최적화
  • 데이터 처리 최적화
    • HDFS 블록 크기리플리케이션 팩터 조정
    • CombinerPartitioner 사용으로 MapReduce 성능 최적화
    • 실습: 블록 크기 및 리플리케이션 팩터 변경 및 성능 비교

2-3. YARN 자원 관리

  • YARN 구조 이해
    • ResourceManagerNodeManager의 역할
    • YARN 자원 할당 및 스케줄링
    • Container와 애플리케이션 실행 흐름
  • YARN 클러스터 모니터링 및 관리
    • YARN 웹 UI를 통한 클러스터 모니터링
    • CapacitySchedulerFairScheduler 설정

3. 심화 과정

3-1. HBase 및 실시간 데이터 처리

  • HBase: Hadoop 기반의 실시간 NoSQL 데이터베이스
    • RowColumn Family 구조 이해
    • HBase Shell을 이용한 데이터 조작
    • HBase와 MapReduce 통합
    • 실습: HBase에 데이터 입력 및 조회
  • HBase와 Hive 연동
    • HBase 테이블을 Hive 테이블로 활용하는 방법
    • 실시간 분석을 위한 HBase와 Hive의 통합 활용

3-2. Hadoop 클러스터 구축 및 관리

  • 멀티 노드 클러스터 설정
    • 다중 노드를 통한 Hadoop 클러스터 구축
    • NameNode 고가용성(HA) 설정
    • Secondary NameNode의 역할과 설정 방법
  • Hadoop 클러스터 모니터링 및 관리
    • Ganglia, Nagios를 이용한 클러스터 모니터링
    • Ambari를 통한 Hadoop 클러스터 관리

3-3. Hadoop 성능 최적화

  • Job 최적화
    • Shuffle and Sort 최적화
    • 데이터 로컬리티(Locality) 개선
    • 자원 효율적인 YARN 설정
  • 클러스터 성능 최적화
    • NameNode 메모리 튜닝
    • MapReduce 잡의 병렬 처리 최적화
    • 실습: 다양한 MapReduce 잡을 통한 성능 테스트 및 최적화 방법 분석

4. 고급 과정

4-1. Spark와 Hadoop 통합

  • Apache Spark: Hadoop과의 차이점 및 장점
    • RDD(Resilient Distributed Datasets)의 이해
    • Spark와 Hadoop YARN 통합
    • 실습: Spark를 활용한 데이터 분석 및 최적화

4-2. Hadoop 보안

  • Kerberos를 통한 인증 설정
    • Kerberos를 이용한 NameNode와 DataNode의 인증
    • Hadoop에 TLS(SSL) 적용
    • 데이터 암호화 및 사용자 권한 관리

5. 프로젝트 및 실습

5-1. 프로젝트

  • 실제 데이터 분석 프로젝트 수행
    • 다양한 빅데이터 셋을 활용한 데이터 수집, 저장, 분석 프로젝트 수행
    • MapReduce, Hive, Pig, HBase 등을 통합하여 데이터 처리 파이프라인 구축
    • YARN과 클러스터 모니터링을 통한 성능 평가 및 최적화
반응형

댓글