[인프런] 빅데이터 파일럿 프로젝트4

타키탸키·2022년 5월 24일
0

데이터 사이언스

목록 보기
20/26

빅데이터 적재

내/외부 원천 데이터

  • 정형 데이터
    • 데이터베이스
  • 반정형 데이터
    • HTML, XML, JSON, 서버로그
  • 비정형 데이터
    • 소셜미디어, 문서, 이미지, IoT, ...

적재 저장소 유형

  • 배치 처리
    • 분산 파일 시스템
      • Hadoop
      • 대용량 파일 전체를 영구 저장
  • 실시간 처리
    • No-SQL
      • MongoDB, Cassandra, ...
      • 대규모 메시지 전체를 영구 저장
    • MoM
      • Kafka
      • 대규모 메시지 전체를 버퍼링 처리
    • Cached
      • Redis
      • 대규모 데이터 일부만 임시 저장

Hadoop

hadoop 개요

  • 기능
    • 대용량 데이터 분산 저장
    • 분산 저장된 데이터 가공/분석 처리

주요 구성 요소

  • DataNode
    • 서버
    • 블록(64MB/128MB) 단위로 분할된 대용량 파일들이 디스크에 저장 및 관리
  • NameNode
    • DataNode에 저장된 파일들의 메타 정보를 메모리상에서 로드하여 관리
  • EditsLog / FsImage
    • 파일들의 변경 이력 정보 저장
    • NameNode의 메타 정보의 스냅샷 이미지
  • Ver. 1x
    • MapReduce v1
    • Job Tracker
    • Task Tracker
  • Ver. 2x
    • Active/Stand-by NameNode
      • NameNode 이중화
      • 실패 처리를 대비한 Stand-by
    • MapReduce v2 + YARN
      • 자원 중앙 관리
      • 클러스터 위에 다양한 앱 실행 및 관리
      • 확장성과 호환성 향상
    • Resource Manager / Node Manager
    • Container(단위)
    • Application Master
    • JournalNode
  • 라이선스
    • Apache

MapReduce

  • Map
    • 분산 저장되어 있는 데이터로부터 효율적으로 작업 분리하여 실행
  • Reduce
    • 여러 컴퓨터가 나눠서 실행한 결과들을 하나로 모음
  • 사례
    • 요청 사항
      • 전체 고객 정보에서 VIP 고객의 평균 연봉 구하기
    • 고객 정보(1TB) >> server(100GB/10GB/500GB...) >> VIP 고객 정보(50MB) >> VIP 평균 연봉(1KB)

Zookeeper

Zookeeper 개요

  • 하둡, HBase, 카프카, 스톰 내부에서 주키퍼에 의존해 클러스터 멤버쉽 기능 및 환경 설정의 동기화 등을 사용

주요 구성 요소

  • client
    • ZNode에 담긴 데이터에 대한 쓰기, 읽기, 삭제 등의 작업을 요청
  • ZNode
    • 주키퍼 서버에 생성되는 파일 시스템의 디렉토리
    • 클라이언트의 요청 정보(환경 설정)를 계층적으로 관리
      • 버전, 접근 구너한, 상태, 모니터링 객체 관리...
  • Ensemble
    • 3대 이상의 주키퍼 서버를 하나의 클러스터로 구성한 HA 아키텍처
  • Leader Server
    • Ensemble 내부에는 유일한 리더 서버가 선출되어 존재
    • 클라이언트의 요청을 받은 서버는 해당 요청을 리더 서버에 전달
    • 리더 서버는 모든 팔로워 서버에게 클라이언트 요청이 전달되도록 보장
  • Follower Server
    • Ensemble 안에서 한 대의 리더 서버를 제외한 나머지 서버
    • 리더 서버와 메세지를 주고 받으면서 ZNode의 데이터 동기화
    • 리더 서버에 문제가 발생할 경우, 내부적으로 새로운 리더를 선출하는 역할 수행
  • 라이선스
    • Apache

적재 환경 구성

cluster 웹 관리자

  • 9870
  • HDFS 상세 >> DataNode >> DataNode 웹 UI

resource manager

  • 8088
  • YARN 상세 >> 웹 UI >> ResourceManager 웹 UI

job history

  • 19888
  • YARN 상세 >> 웹 UI >> HistoryServer 웹 UI

적재 기능 테스트

flume event 작동

  • spool dir이 바라보고 있는 car batch log에 상태 정보 파일이 이동한 순간 발동
mv SmartCarStatusInfo_20160101.txt /home/.../car-batch-log/

flume 수집 확인

tail -f flume-cmf-flume-AGENT-server02.hadoop.com.log

hdfs.BucketWriter: Creating / ...
  • log 파일이 tmp 파일로 생성됨
  • 최종 생성된 파일 이름이 등장하면 완료

hadoop 적재 확인

hdfs dfs -ls -R /pilot-pjt/collect/car-batch-log

  • 64MB가 넘는 용량이므로 파일이 두 개로 나누어짐
  • 내용 확인
hdfs dfs -cat /pilot-pjt/.../car-batch-log...

cat 명령은 용량이 클 때, 오버헤드를 발생시킬 수 있으므로 잠깐 파일 내용을 확인하고 싶을 때에는 tail 명령 사용 권장

profile
There's Only One Thing To Do: Learn All We Can

0개의 댓글