ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 빅데이터 파일럿 프로젝트
    빅데이터 2020. 6. 25. 18:35

    빅데이터 파일럿 프로젝트

    • 파일럿 프로젝트 도메인 이해

    • 빅데이터 파일럿 아키텍처 이해

    • 빅데이터 파일럿 프로젝트용 PC 환경 구성

    • 빅데이터 파일럿 프로젝트용 PC 서버 구성

    • CM(Cloudera Manager) 설치

    • 스마트카 로그 시뮬레이터 설치

    • 파일럿 환경 구성

    파일럿 프로젝트 도메인(관심사) 이해

    도메인 이해

    새벽 5시 스마트폰의 알람에 눈을 뜬 A씨는 스마트폰으로 오늘의 날씨를 확인한다. 영하 6도 강추위다. 애플리케이션을 통해 차량 배터리 상태를 확인한 뒤 6시에 출발 예약을 해 둔다. 출근 준비를 마치고 나면 적당한 온도로 차량이 덥혀질 것이다. A씨가 자동차로 다가가 스마트워치를 대자 스르르 문이 열린다. A씨의 생체 정보를 스마트워치가 인식해 이를 자동차로 전송해주기 때문에 A씨 외에는 아무도 자동차를 이용할 수 없다. 운전석에 앉아 음성으로 목적지를 입력하고 난 뒤 A씨는 회사를 향해 자동차를 출발시켰다. 자동차에 장착된 인포테인먼트 기기는 A씨의 음성을 분석한 뒤 그의 기분을 파악해 자동으로 음악을 선곡해 들려준다. 양쪽에는 백미러 대신 디지털카메라와 투명 디스플레이가 사각을 없애준다. 운전 중에 오전 회의에 검토할 보고서가 이메일로 도착한다. 급한 내용이다. A씨는 '자율주행'으로 전환하고 서류를 읽어본다. 자동차는 안전하게 회사 주차장에 도착한다.

    요구사항 확인

    요구사항 1

    • 차량의 다양한 장치로부터 발생하는 로그 파일을 수집해서 기능별 상태 점검

    • 데이터 발생 위치 : 100대 시범 운행 차량

    • 데이터 종류 : 대용량 로그 파일

    • 발생 주기 : 3초

    • 수집 주기 : 24시간

    • 수집 규모 : 1MB/1대 (총 : 100MB)

    • 처리 유형 : 배치

    • 데이터유형 : CSV(Text, UTF-8)

    요구사항 2

    • 운전자의 운행 정보가 담긴 로그를 실시간으로 수집해서 주행 패턴 분석

    • 데이터 발생 위치 : 100대 시범 운행 차량

    • 데이터 종류 : 실시간 로그 파일

    • 발생 주기 : 주행관련 이벤트 발생시

    • 수집 주기 : 1초

    • 수집 규모 : 4KB/1대 (초당 : 약400KB)

    • 처리 유형 : 실시간

    • 데이터유형 : CSV(Text, UTF-8)

    • P 33 ~ 34 상세 데이터 스키마 확인

    파일럿 프로젝트의 요구사항 이해

    데이터셋 살펴보기

    스마트카 상태 정보 데이터셋

    • 요구사항 1, 스마트카 각종 센서로부터 발생 --> 로그 시뮬레이터로 생성

    스마트카 운전자 운행 데이터셋

    • 요구사항 2 , 운전자의 운전 패턴 / 운행 정보 --> 로그 시뮬레이터로 생성

    스마트카 마스터 데이터셋

    • 운전자 프로파일 정보 --> 샘플 파일 사용

    스마트카 물품구매 데이터셋

    • 스마트카 차량 스마트 스크린으로 구매한 차량 물품 --> 샘플 파일 사용

    빅데이터 아키텍처의 이해

    빅데이터 구현 기술

    • 구축순서 : 수집 => 적재 => 처리/탐색 => 분석/응용

    • 처리/탐색 => 분석/응용은 필요시 반복 진행

    빅데이터 구현 기술

    빅데이터 소프트웨어 구성도(Hadoop Echo System)

    빅데이터 소프트웨어 구성

    레이어별 구성

    [전처리 : 수집/적재] => [하둡(Hodoop)] => [후처리: 탐색/분석]

    수집 레이어 => 적재 레이어

    • 로그등을 수집하기하 위해 플럼(Flume) 사용 :

      • 로우데이터 => 플럼 => 하둡

    • 실시간 처리를 위해 스톰(Strom) 사용

      • 로우데이터 => 플럼 => 카프카(버퍼링,트랜잭션 처리) => 스톰 => Hbase, 레디스

    적재 레이어 => 처리/탐색 레이어

    • 적재대상 : 하둡, HBase, 레디스

    • 대용량 데이터 : 플럼 => 하둡

    • 실시간 데이터 : 분석 결과에 따라 Hbase, 레디스

    처리/탐색 레이어 => 분석/응용 레이어

    • 하둡 데이터 => 하이브 => 정제/변형/분리/탐색 작업 수행

    • 데이터 => 정형데이터 => 데이터마트

    • 가공/분헉된 데이터 => 스쿱 => 외부(DBMS)

    • 데이터의 품질을 높이는 단계로 과정이 길고 복잡 => 우지의 워크플로우로 자동화

    분석/응용 레이어 => 데이터 마이닝

    • 임팔라, 제플린으로 데이터 마트 빠른 분석

    • 머하웃으로 하둡 머신러닝(군집, 분류/예측)

    하드웨어 아키텍처

    저사양

    • CPU 듀얼코어 이상

    • 메모리 8GB 이상(여유 7GB)

    • 디스크 60GB 이상

    고사양

    • CPU i5 이상

    • 메모리 16GB 이상(여유 15GB)

    • 디스크 100GB 이상

    권장

    • CPU i3 이상

    • 메모리 16GB 이상(여유 15GB)

    • SSD

    구축환경

    • PC OS : Windows 7 or 10

    • 가상머신환경 : 오라클 버추얼박스 3대 가상 머신

    • CentOS 6.7 + CM

    • 이클립스 + FTP Client(FileZilla) + SSH Client(Putto or Poderosa)

    • 크롬 브라우저

    PC 환경 구성

    JAVA 설치

    • JDK 1.8 설치

    • 환경 변수 자바 설치 디렉토리 JAVA_HOME 설정

    • Path 환경 변수에 %JAVA_HOME%\bin; 추가

    이클립스 설치

    • Eclipse IDE for Java EE Developers

    오라클 버추얼 박스

    • 5.2 사용

    기타

    • SSH: Poderosa

    • FTP: FileZilla

    • Chrome

    실습예제 - https://github.com/wikibook/bigdata/archive/master.zip

    가상머신 환경 구성(v5.2)

    • 파일 > 환경설정 > 네트워크 > NatNetwork 있는 지 확인

    파일 > 호스트 네트워크 관리자

    • 어댑터 : 수동으로 어댑처 설정

    • DHCP 서버 : 서버 사용함

    • 서버주소 : 192.168.56.100

    • 서버마스크 : 255.255.255.0

    • 최저 주소 한계 : 192.168.56.101

    CentOS Download : https://mirror.nsc.liu.se/centos-store/6.7/isos/x86_64/

    • 6.7

    새로만들기

    • 이름 : Server01

    • 종류: Linux

    • 버전: Other Linux(64Bit)

    • 가상메모리 : 2048MB

    • 동적할당 30GB

    설정

    • Server01 > 설정 > 네트워크 > 어댑터1 > NAT 사용하기

    • Server01 > 설정 > 네트워크 > 어댑터2 > 호스트 전용 어댑터 > 무작위 모드 > 모두 허용

    시작

    • ContOS 선택

    ContOS 설치

    • hostname : server01.hadoop.com

    • timezone : Asiz/Seoul

    • password : rootpass

    • which type of installation would you like? > Use All Space

    • boot 순서 변경 : 하드디스크, 저장소에서 광학디스크 삭제

    ContOS 실행

    • Create User : bigdata / bigdatapass

    • Data and Time : Sychronize data and time over the network > check 체크

    • Kdump : Enable kdump > uncheck 체크 해제

    ContOS 환경 구성

    • 로그인 : other > root
    • Application > System Tool > terminal

    부팅 설정 변경 : X-Windows => Terminal

    • vi /etc/inittab

    • id:5 > id:3

    • reboot

    vi

    • 명령모드 = Esc(명령모드로 변환) / i(글쓰기),a,o(한줄 내려가서 글쓰기) / dd(삭제) / yy(복사하기) / p(붙여넣기)

    • 입력모드 = abcde~

    • 마지막 행모드 = 명령모드에서 : 누르고 wq(저장 후 나가기) / q!(저장하지 않고 나가기)

    네트워크 설정

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    • DEVICE=eth0

    • HWADDR= 자신의 네트워크 어댑터2 MAC Address ex)08:00:27:C5:BC:76

    • TYPE=Ethernet

    • ONBOOT=yes

    • BOOTPROTO=static

    • IPADDR=192.168.56.101

    • NETMASK=255.255.255.0

    • GATEWAY=192.168.56.1

    • NETWORK=192.168.56.0

    vi /etc/udev/rules.d/70-persistent-net.rules

    • 내용 모두 삭제

    • reboot

    • service network restart

    • ifconfig eth0

    • inet addr : 192.168.56.101 확인

    SSH 설치 및 설정

    • yum install -y openssh*

    • service sshd restart

    • chkconfig sshd on (재시작시 서비스 자동 실행)

    • reboot

    • service network restart

    SSH 접속

    • Poderosa

    hosts 파일 수정

    • vi /etc/hosts

    • 192.168.56.101 server01.hadoop.com server01

    • 192.168.56.102 server02.hadoop.com server02

    • 192.168.56.103 server03.hadoop.com server03

    호스트네임 설정

    • vi /etc/sysconfig/network

    • HOSTNAME=server01.hadoop.com

    • service network restart

    방화벽 및 기타 커널 설정

     

    vi /etc/selinux/config

    • SELINUX=disabled

    service iptables stop

    • iptables 중지

    chkconfig iptables off

    chkconfig ip6tables off

    sysctl -w vm.swappiness=100

    vi /etc/sysctl.conf

    • vm.swappiness=100

    vi /etc/rc.local

    • echo never > /sys/kernel/mm/transparent_hugepage/enabled
    • echo never > /sys/kernel/mm/transparent_hugepage/defrag

    vi /etc/security/limits.conf

    • root soft nofile 65536
    • root hard nofile 65536
      • soft nofile 65536
      • hard nofile 65536
    • root soft nproc 32768
    • root hard nproc 32768
      • soft nproc 32768
      • hard nproc 32768

    JDK 1.7 설치 -> 1.8 설치 (OPENJDK or ORACLE JDK)

    - 오라클로 받은 경우 아래 설정 진행 -

    OPENJDK 설치 : server01, server01, server03 에 설치

    • yum list java*jdk-devel

    • yum install java-1.8.0-openjdk-devel.x86_64

    • FileZilla SFT로 접속 : 다운받은 jdk 업로드

    • jdk-8u231-linux-64.rpm

    • 설치 확인 rpm -qa | grep jdk

    • 설치 삭제 yum remove jkd_name

    • 설치 yum localinstall jdk-8u231-linux-64.rpm

    • java -version

    • path 확인 : echo $PATH

    • JAVA_HOME 추가 (필요시): export JAVA_HOME=/usr/local/default 을 추가

    • which javac => vi /etc/profile

    • 여러버전 설치시 alternatives --config java 실행 후 원하는 버전 선택

    전원 완료 / halt

     

    가상머신 복제

    • Server01 전원 끄고 복제 시작

    • 새 머신 이름 : Server02 08:00:27:2B:99:27

    vi /etc/sysconfig/network-scripts/ifcfg-eth0

    • HWADDR - 어댑터 2, IPADDR 수정 192.168.56.102

    vi /etc/udev/rules.d/70-persistent-net.rules

    • 모두 삭제

    • 전원끄기 재 시작

    • Poderosa 접속

    vi /etc/hosts 수정

    vi /etc/sysconfig/network 수정

    • service network restart

    • reboot

    • ifconfig eth0

    • hostname

    가상머신 복제2

    • Server01 전원 끄고 복제 시작

    • 새 머신 이름 : Server03 08:00:27:99:80:38

    복제완료 후 메모리 재설정

    빅데이터 클러스터 구성

    클라우데라 매니저(CM) 설치

    • 프로비저닝 : 하둡 에코시스템을 편리하게 설치, 수정, 삭제 관리

    • 매니지먼트 : 설치한 에코시스템 설정 변경 및 최적화 지원

    • 모니터링 : 하드웨어 리소스 및 설치 컴포넌트 상태 모니터링/대시보드

    빅데이터 소프트웨어 구성도(Hadoop Echo System)

    Server01 SSH 접속

    CM 5.9.x 파일 다운로드 :

    설정변경

    • vi /root/cloudera-manager.repo

    • baseurl /5 > /5.9.0

    yum 레포지토리로 복사

    • mv /root/cloudera-manager.repo /etc/yum.repos.d/

    CM 설치

    • yum install -y cloudera-manager-daemons

    • yum install -y cloudera-manager-server

    PostgreSQL 설치 및 서비스 start

    • yum install -y cloudera-manager-server-db-2

    • service cloudera-scm-server-db start

    CM Start

    • service cloudera-scm-server start

    • service cloudera-scm-server status

    Hosts 파일에 가상머신 정보 추가

    • 메모장 관리자 권한으로 실행

    • C:\Windows\System32\drivers\etc\hosts

    • 192.168.56.101 server01.hadoop.com

    • 192.168.56.102 server02.hadoop.com

    • 192.168.56.103 server03.hadoop.com

    CM 접속

    빅데이터 기본 소프트웨어 설치

    • 하둡, 주키퍼 등 기본 구성

    CDH 클러스터 설치에 대한 호스트를 지정합니다.

    • server01.hadoop.com

    • server02.hadoop.com

    • server03.hadoop.com (저사양 생략)

    클러스터 설치

    • 클러스터란 특정 도메인 안에서 하나로 묶여 있는 하둡 세트를 의미

    • KAFKA-4.1.0-1.4.1.0.p0.4 선택

    • JKD 설치 안함

    • 단일사용자 모드 사용 안함

    • 설치 진행중 오류 나면 서버 재시작

    클러스터에 설치할 CDH 5 서비스

    • 사용자 지정 서비스

    • HDFS, YARN, ZooKeeper 선택

    • 설치 오류시 로그 확인

      /var/log/cloudera-scm-server/cloudera-scm-server.log

    HDFS

    • 기본 or 저사양 시 DataNond : Server02만 설치

    Cloudera Management Service

    • 기본 환경 Server01 => Server03

    • 저사양 Server01 => Server02

    YARN

    • 3개 모두 Server01

    ZooKeeper

    • Server02

    데이터베이스 설정

    • 테스트 연결 => 계속

    클러스트 설정 => 계속

     

    완료

     

    저사양 시 Cloudera Management Service 는 중지 시킨다

     

    DataNode 추가 및 환경 설정(저사양은 생략)

    • 상단 메뉴 > 호스트 > 역할등 확인

    • CM HOME > HDFS > 역할 인스턴스 추가

    • DataNode > 사용자 지정 > Server01 추가

    • 완료 후 DataNode > 선택한 작업 시작(HDFS > 인스턴스)

    파일럿 환경 최적화

    HDFS 복제 계수 설정

    • 하둡 원본 파일의 복제본 갯수

    • HDFS > 구성 > 검색 > 복제 계수 > 2 (저사양 1)

    HDFS 블록 크기 변경

    • HDFS > 구성 > 검색 > HDFS 블록 크기

    • 128 => 64 (블록수를 늘려 분산율을 높임)

    YARN 스케줄러와 리소스매니저 메모리 설정

    • YARN > 구성 > 검색 > yarn.scheduler.maximum-allocation-mb > 1 => 1.5GB

    • YARN > 구성 > 검색 > yarn.nodemanager.resource.memory-mb > 1 => 5GB

    YARN 스케줄러 변경

    • YARN > 구성 > 검색 > scheduler class > FairScheduler => FifoScheduler

    • FifoScheduler 보완한 것이 FairScheduler(고사양시 사용)

    클러스트 재시작

     

    HDFS, YARN 이전 서비스 재시작(클라이언트 구성배포)

    HDFS 명령어를 이용한 설치 확인

    sample file upload : Server02에 업로드

    HDFS put

    • cd /home/bigdata/

    • hdfs dfs -put Sample.txt /tmp

    HDFS ls

    • hdfs dfs -ls /tmp/

    HDFS cat

    • hdfs dfs -cat /tmp/Sample.txt

    HDFS stat

    • hdfs dfs -stat '%b %o %r %u %n' /tmp/Sample.txt

    • b:파일크기, o:블럭크기, r:복제수, u:소유자명, n:파일명

    HDFS mv : 파일명 변경

    • hdfs dfs -mv /tmp/Sample.txt /tmp/Sample2.txt

    HDFS 시스템 상태 검사

    • hdfs dfsadmin -report

    • 문제발생시 CORRUPT FILES, MISSING BLOCKS, MISSING SIZE 등 숫자 발생

    • 비정상적인 파일 블럭 발견할 경우 다른 노드에 복구 하려고 시도

    안전모드로 상태 전환시 강제 안전모두 해제

    • hdfs dfsadmin -safemode leave

    손상된 파일 각제로 삭제

    • hdsf fsck -delete

    손상된 파일 /lost + found 로 이동

    • hdfs fsck / -move

    HDFS get : Server01 에서 가져와 본다

    • HDFS 저장 파일 로컬시스템으로 가져오기

    • hdfs dfs -get /tmp/Sample2.txt

    주키퍼 클라이언트 설치 확인 : Server02

    • $zookeeper-client

    • create /pilot-pjt bigdata

    • ls /

    • get /pilot-pjt

    • delete /pilot-pjt

    • quit

    스마트카 로그 시뮬레이터

    • 가상 시뮬레이터

    설치 : Server02

    • $ cd /home

    • mkdir /home/pilot-pjt

    • mkdir /home/pilot-pjt/working

    • mkdir /home/pilot-pjt/working/car-batch-log

    • mkdir /home/pilot-pjt/working/driver-realtime-log

    • chmod 777 -R /home/pilot-pjt/

    File Upload

    • location : /home/pilot-pjt/working

    • bigdata.smartcar.loggen-1.0.jar

    운전정보 시뮬레이터 File 실행 DriverLogMain 날짜 차량수

    • cd /home/pilot-pjt/working

    • java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.DriverLogMain 20160101 10

    로그 확인

    • cd /home/pilot-pjt/working/driver-realtime-log

    • tail -f SmartCarDriverInfo.log

    실행 종료

    • ps -ef | grep smartcar.log

    • kill -9 [PID] 참고: root 14628[PID] 4504

    Car정보 시뮬레이터 File 실행 CarLogMain 날짜 차량수

    • java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.CarLogMain 20160101 10

    로그 확인

    • cd /home/pilot-pjt/working/SmartCar

    • tail -f SmartCarStatusInfo_20160101.txt

    실행 종료

    • ps -ef | grep smartcar.log

    • kill -9 [PID] 참고: root 14628[PID] 4504

    파일럿 환경관리

    파일럿 시작

    • Server01, Server02, Server03 시작

    • SSH로 CM 구동 확인

      • service cloudera-scm-server status

    • CM 관리자 접속

    파일럿 종료

    '빅데이터' 카테고리의 다른 글

    빅데이터 분석  (0) 2020.07.01
    빅데이터 탐색  (0) 2020.07.01
    빅데이터 적재 - 실시간 로그 파일 적재  (0) 2020.06.26
    빅데이터 적재 - 대용량 로그 파일 적재  (0) 2020.06.25
    빅데이터 수집  (0) 2020.06.25
Designed by Tistory.