실무로 배우는 빅데이터 기술 (개정2판)

데이터 수집, 적재, 처리 분석, 머신러닝까지

전문 개발자가 아니어도 약간의 소프트웨어 지식만으로 빅데이터의 A~Z까지 기술들을 구현하고 경험해 볼 수 있는 파일럿 프로젝트 형식으로 구성했다. 빅데이터 시스템 구축에 필요한 실무 요건들을 도출하고 이를 해결하기 위한 빅데이터의 수집, 적재, 처리, 분석 아키텍처와 10여 개의 핵심 기술 요소들을 설명하는 방식으로 독자들이 빅데이터를 더욱 쉽게 이해할 수 있게 돕는다. 이어서 파일럿 프로젝트의 구축 단계를 실습을 통해 직접 따라 해 봄으로써 빅데이터 기술을 이해하는 것을 넘어 실전과 같은 활용 능력을 몸으로 직접 익힐 수 있게 했다.

★ 이 책에서 다루는 내용 ★

스마트카의 빅데이터 파일럿 프로젝트를 단계별로 진행하면서 빅데이터의 수집/적재, 처리/탐색, 분석/응용 영역의 아키텍처와 활용 기술들을 다룬다.

  • 빅데이터의 수집/적재
    • 빅데이터의 개요와 파일럿 프로젝트의 도메인을 이해하고, 파일럿 실습 환경을 구성한다
    • 플럼, 카프카를 이용해 스마트카에서 발생하는 상태 정보와 운전자의 운행정보를 수집한다.
    • 스톰, 에스퍼, 하둡, HBase, 레디스로 스마트카의 대용량 파일과 실시간 데이터를 적재한다.
  • 빅데이터의 처리/탐색
    • 하이브, 스파크SQL의 애드혹 쿼리로 데이터 선택, 변환, 통합, 축소 등의 전처리 작업을 한다.
    • 휴, 우지를 통해 데이터 가공/탐색 과정을 프로세스화해서 빅데이터 마트를 구성한다.
    • 빅데이터 분석 결과를 하둡에 저장하고 스쿱을 이용해 외부 RDMS에 Export한다.
  • 빅데이터의 분석/응용
    • 임팔라, 제플린으로 스마트카 데이터를 대상으로 고성능 인메모리 분석을 수행하여 인사이트를 발견하고 결과를 시각화한다.
    • 스파크ML과 머하웃으로 스마트카의 마트 데이터를 활용해 추천, 분류, 군집 등의 머신러닝 분석을 진행한다.
    • R을 이용해 스마트카 운전자의 연소득 회귀모델과 텐서플로/케라스로 주행중 차량의 이상 탐지 딥러닝 모델을 만들어 REST API 서비스를 구성한다.

김강원

금융과 통신 등 다양한 분야에서 빅데이터와 AI 관련 프로젝트를 수행중이다. 기술&경험의 채우기와 비우기를 반복하며 소소한 행복을 찾는 대한민국 IT인이다.

  • ▣ 01장: 빅데이터 이해하기
    • 1.1 빅데이터의 개념
    • 1.2 빅데이터의 목적
    • 1.3 빅데이터 활용
    • 1.4 빅데이터 프로젝트
    • 1.5 빅데이터 기술의 변화
    • 1.6 빅데이터 구현 기술
      • 수집 기술
      • 적재 기술
      • 처리/탐색 기술
      • 분석/응용 기술
    • 1.7 빅데이터와 보안
      • 데이터 보안
      • 접근제어 보안
    • 1.8 마치며
    •  
  • ▣ 02장: 빅데이터 - 파일럿 프로젝트
    • 2.1 파일럿 프로젝트 도메인의 이해
      • 요구사항 파악
      • 데이터셋 살펴보기
    • 2.2 빅데이터 파일럿 아키텍처 이해
      • 소프트웨어 아키텍처
      • 하드웨어 아키텍처
      • 구축 환경의 이해
    • 2.3 빅데이터 파일럿 프로젝트용 PC 환경 구성
      • 자바 설치
      • 이클립스 설치
      • 오라클 버추얼 박스 설치
      • 기타 개발환경 구성
      • 리눅스 가상 머신 환경 구성
    • 2.4 빅데이터 파일럿 서버 구성
      • CentOS 설치
      • CentOS 환경 구성
      • 가상 머신 복제
    • 2.5 빅데이터 클러스터 구성
      • 클라우데라 매니저 설치
      • 빅데이터 기본 소프트웨어 설치 – 하둡, 주키퍼 등 기본 구성
      • DataNode 추가 및 환경 설정
      • HDFS 명령을 이용한 설치 확인
      • 주키퍼 클라이언트 명령을 이용한 설치 확인
    • 2.6 스마트카 로그 시뮬레이터
      • 로그 시뮬레이터 설치
    • 2.7 파일럿 환경 관리
    • 2.8 마치며
    •  
  • ▣ 03장: 빅데이터 수집
    • 3.1 빅데이터 수집 개요
    • 3.2 빅데이터 수집에 활용할 기술
      • 플럼
      • 카프카
    • 3.3 수집 파일럿 실행 1단계 - 수집 아키텍처
      • 수집 아키텍처
    • 3.4 수집 파일럿 실행 2단계 - 수집 환경 구성
      • 플럼 설치
      • 카프카 설치
    • 3.5 수집 파일럿 실행 3단계 – 플럼 수집 기능 구현
      • SmartCar 에이전트 생성
      • SmartCar 에이전트에 Interceptor 추가
      • DriverCarInfo 에이전트 생성
    • 3.6 수집 파일럿 실행 4단계 – 카프카 기능 구현
      • 카프카 Topic 생성
      • 카프카 Producer 사용
      • 카프카 Consumer 사용
    • 3.7 수집 파일럿 실행 5단계 - 수집 기능 테스트
      • SmartCar 로그 시뮬레이터 작동
      • 플럼 에이전트 작동
      • 카프카 Consumer 작동
      • 수집 기능 점검
    • 3.8 마치며
    •  
  • ▣ 04장: 빅데이터 적재 I - 대용량 로그 파일 적재
    • 4.1 빅데이터 적재 개요
    • 4.2 빅데이터 적재에 활용하는 기술
      • 하둡
      • 하둡 아키텍처
      • 하둡 활용 방안
      • 주키퍼
      • 주키퍼 아키텍처
      • 주키퍼 활용 방안
    • 4.3 적재 파일럿 실행 1단계 - 적재 아키텍처
      • 적재 요구사항
      • 적재 아키텍처
    • 4.4 적재 파일럿 실행 2단계 - 적재 환경 구성
      • 하둡 설치
    • 4.5 적재 파일럿 실행 3단계 - 적재 기능 구현
      • SmartCar 에이전트 수정
    • 4.6 적재 파일럿 실행 4단계 - 적재 기능 테스트
      • 플럼의 사용자 정의 Interceptor 추가
      • 플럼의 Conf 파일 수정
      • SmartCar 로그 시뮬레이터 작동
      • 플럼 이벤트 작동
      • HDFS 명령어 확인
    • 4.7 마치며
    •  
  • ▣ 05장: 빅데이터 적재 II - 실시간 로그/분석 적재
    • 5.1 빅데이터 실시간 적재 개요
    • 5.2 빅데이터 실시간 적재에 활용하는 기술
      • HBase
      • 레디스
      • 스톰
      • 에스퍼
    • 5.3 실시간 적재 파일럿 실행 1단계 - 실시간 적재 아키텍처
      • 실시간 적재 요구사항
      • 실시간 적재 아키텍처
    • 5.4 실시간 적재 파일럿 실행 2단계 - 실시간 적재 환경 구성
      • HBase 설치
      • 레디스 설치
      • 스톰 설치
    • 5.5 실시간 적재 파일럿 실행 3단계 - 실시간 적재 기능 구현
      • 카프카 Spout 기능 구현
      • Split Bolt 기능 구현
      • HBase Bolt 기능 구현
      • 에스퍼 Bolt 기능 구현
      • 레디스 Bolt 기능 구현
      • 레디스 클라이언트 애플리케이션 구현
      • HBase 테이블 생성
      • 스톰 Topology 배포
    • 5.6 실시간 적재 파일럿 실행 4단계 - 실시간 적재 기능 테스트
      • 로그 시뮬레이터 작동
      • HBase에 적재 데이터 확인
      • 레디스에 적재된 데이터 확인
      • 레디스 클라이언트 애플리케이션 작동
      • 실시간 개발 환경 구성
    • 5.7 마치며
    •  
  • ▣ 06장: 빅데이터 탐색
    • 6.1 빅데이터 탐색 개요
    • 6.2 빅데이터 탐색에 활용되는 기술
      • 하이브
      • 스파크
      • 우지
    • 6.3 탐색 파일럿 실행 1단계 - 탐색 아키텍처
      • 탐색 요구사항
      • 탐색 아키텍처
    • 6.4 탐색 파일럿 실행 2단계 - 탐색 환경 구성
      • 하이브 설치
      • 우지 설치
      • 휴 설치
      • 스파크 설치
      • 탐색 환경의 구성 및 설치 완료
    • 6.5 탐색 파일럿 실행 3단계 - 휴를 이용한 데이터 탐색
      • HDFS에 적재된 데이터 확인
      • HBase에 적재된 데이터 확인
      • 하이브를 이용한 External 데이터 탐색
      • 하이브를 이용한 HBase 데이터 탐색
      • 데이터셋 추가
      • 스파크를 이용한 추가 데이터셋 탐색
    • 6.6 탐색 파일럿 실행 4단계 - 데이터 탐색 기능 구현 및 테스트
      • 주제 영역 1. 스마트카 상태 정보 모니터링 – 워크플로 작성
      • 주제 영역 2. 스마트카 운전자 운행 기록 정보 – 워크플로 작성
      • 주제 영역 3. 이상 운전 패턴 스마트카 정보 – 워크플로 작성
      • 주제 영역 4. 긴급 점검이 필요한 스마트카 정보 – 워크플로 작성
      • 주제 영역 5. 스마트카 운전자 차량용품 구매 이력 정보 – 워크플로 작성
    • 6.7 마치며
    •  
  • ▣ 07장: 빅데이터 분석
    • 7.1 빅데이터 분석 개요
    • 7.2 빅데이터 분석에 활용 기술
      • 임팔라
      • 제플린
      • 머하웃
      • 머하웃 아키텍처
      • 스쿱
    • 7.3 분석 파일럿 실행 1단계 - 분석 아키텍처
      • 분석 요구사항
      • 분석 아키텍처
    • 7.4 분석 파일럿 실행 2단계 - 분석 환경 구성
      • 임팔라 설치
      • 스쿱 설치
      • 제플린 설치
      • 머하웃 설치
    • 7.5 분석 파일럿 실행 3단계 – 임팔라를 이용한 데이터 실시간 분석
      • 하이브 QL를 임팔라에서 실행하기
      • 임팔라를 이용한 운행 지역 분석
    • 7.6 분석 파일럿 실행 4단계 – 제플린을 이용한 실시간 분석
      • 제플린을 이용한 운행 지역 분석
    • 7.7 분석 파일럿 실행 5단계 – 머하웃과 스파크ML을 이용한 머신러닝
      • 머하웃 추천 - 스마트카 차량용품 추천
      • 스파크ML 분류 - 스마트카 상태 정보 예측/분류
      • 머하웃과 스파크ML을 이용한 군집 - 스마트카 고객 정보 분석
    • 7.8 분석 파일럿 실행 6단계 – 스쿱을 이용한 분석 결과 외부 제공
      • 스쿱의 내보내기 기능 – 이상 운전 차량 정보
    • 7.9 마치며
    •  
  • ▣ 08장: 분석 환경 확장
    • 8.1 분석환경 확장 개요
    • 8.2 R을 이용한 회귀분석 – 스마트카 배기량에 따른 운전자 연소득 예측
      • R 설치 및 환경 구성
      • R 활용 방안
      • R 파일럿 실행 1단계 – 분석 데이터셋 생성
      • R 파일럿 실행 2단계 – 하이브 클라이언트 라이브러리 구성
      • R 파일럿 실행 3단계 – R에서 하이브 데이터 로드
      • R 파일럿 실행 4단계 – 데이터 탐색 및 회귀모델 생성
    • 8.3 텐서플로를 이용한 신경망 분석 – 주행 중 스마트카의 위험 징후 판별
      • 설치 및 환경 구성
      • 텐서플로 활용 방안
      • 텐서플로 파일럿 실행 1단계 – 텐서플로 개발 환경 실행
      • 텐서플로 파일럿 실행 2단계 – 텐서플로를 이용한 딥러닝 학습 및 평가
      • 텐서플로 파일럿 실행 3단계 – 텐서보드를 이용한 학습 결과 시각화
      • 텐서플로 파일럿 실행 4단계 – 플라스크를 이용한 웹 애플리케이션 구축
    •  
  • ▣ 부록: 실무로 배우는 빅데이터 기술 - 확장하기 (유튜브 강의)
  • 56쪽, 첫 번째 줄(5번 항목)

     05. Server01 가상머신을 [닫기] → [전원 끄기]를 선택해 종료한다.

    ==>

     05. 타임존을 Asia/Seoul로 선택하고, 하단의 "System clock uses UTC"를 체크한다.

  • 332쪽, 그림 7.43의 예제 소스를 다음 그림의 예제 소스로 교체

    bigdata2nd-7-43.png

  • 333쪽, 09.번 설명 내용을 다음 내용으로 교체

    • 예제 7.1의

    ==>

    • 그림 7.43 예제의
  • 350쪽, 페이지 상단 불릿 목록을 다음과 같이 교체하고 하단에 본문 내용을 추가

    • 정상을 정상으로 판단: 441,493건(정답 – True Positive)
    • 비정상을 정상으로 판단: 6,241건(1종 오류 - False Positive)
    • 정상을 비정상으로 판단: 41,056건(2종 오류 - False Negative)
    • 비정상을 비정상으로 판단: 114,514건(정답 – True Negative)

    ==>

    • 정상을 정상으로 판단: 441,493건(정답 – True Negative)
    • 정상을 비정상으로 판단: 6,241건(1종 오류 – False Positive)
    • 비정상을 정상으로 판단: 41,056건(2종 오류 – False Negative)
    • 비정상을 비정상으로 판단: 114,514건(정답 – True Positive)

    소수집단의 결과이면서 발견 시 가치가 큰 상황을 Positive로 정의하고, 일반적인 상황을 Negative로 정의한다. 스마트카 이상징후 판별 정보는 비정상(1)인 경우가 정상(0)인 경우보다 매우 적게 발생하므로 비정상(1)인 경우를 Positive로 지정했다. Positive 정의는 업무 성격에 따라 해석의 결과가 크게 달라질 수 있으니 주의해야 한다.

  • 350쪽, 그림 7.76을 다음 그림으로 교체

    bigdata2nd-7-76.png

  • 350쪽, 그림 7.76 하단의 두 단락 및 불릿 목록을 다음 내용으로 교체

    1종 오류(False Positive)보다 2종 오류(False Negative)에 대한 건수가 7배 높다. 1종/2종 오류의 중요도 또한 업무 상황에 따라 크게 달라질 수 있으나, 주행 중인 스마트카의 이상징후 예측모델은 운전자의 생명과도 직결될 수 있는 민감한 모델로서 2종 오류(False Negative)를 최소화해야 좀 더 좋은 모델로 평가될 수 있다. Confusion Matrix에 관한 모델 평가 방법은 인터넷상에 많은 자료가 있으니 참고하기 바란다.

    다음 항목들도 모델을 평가하는 데 매우 중요한 지표로 활용된다.

    • Precision(정밀도) – 모델이 비정상으로 분류한 스마트카 중에서 실제 비정상인 스마트카비율
    • Recall(재현율) – 실제 비정상인 스마트카 중에서 모델이 비정상 스마트카로 분류한 비율
    • F1-Score – Precision과 Recall의 조화 평균