Data

[1028 from 실무로 배우는 빅데이터 기술 By 김강원 02] 소프트웨어/하드웨어

<소프트웨어>

 

1. 데이터 셋

- 스마트카 상태 정보 데이터셋  : 일단위

- 스마트카 운전자 운행 데이터셋 : 실시간

- 스마트카 마스터 데이터셋 : 운전자 프로파일(이름, 거주지,나이,성별)

- 스마트카 물품구매 이력 데이터셋: 쇼핑몰 구입한 차량 물품 구매목록. 데이터셋. 

 

수집레이어

원천데이터: 스마트카 운영, 상태, 마스터

수집영역 : 플럼 -> 카프카-> 스톰/에스퍼 

적재영역 :        -> 하둡                   └> HBase, 레디스

 

적재레이어

수집영역    적재영역           처리/탐색영역

플럼       -> 하둡                 휴(하이브, 스파크, 우지, 스쿰)

스톰      -> HBase, 레디스                                      :이벤트 프로세싱

 

처리/탐색영역

적재영역      처리/탐색영역                           분석/응용 영역

하둡               휴

HBase            (하이브, 스파크, 우지 +스쿰)         임팔라, 제플릿, 머하웃. 

레디스

 

R/텐서플로 : 데이터 엑세스 해서 분석

머하웃/스파크  : 직접 워크로드만듬

임팔라/제플린 : 인메모리 빠른 탐색적 분석. 

 

빅데이터 기술 접근법

플랫폼 전문가 : 하둡 에코시스템 설치 및 구성

수집/적재 전문가 : 대규모 데이터 연동 및 통합

처리/탐색 전문가 : 데이터 모델 설계 및 처리. 

분석/응용 전문가 : 도메인 분석 및 인사이트 도출. 

 

2. 아키텍처 이해

소프트웨어/하드웨어 이해

3. PC 환경구성

자바, 이클립스, 오라클 버추얼박스

버추얼박스는 호환성문제때문에 가능하면 old 버전으로 5.0 사용. window host x86

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

3개 가상머신 생성, 분산 클러스터 환경 구성하기 위한 3대리눅스 서버 설치및 구성. 

5. CM : 클라우데라 메니저. : 빅데이타 소프트웨어 설치/관리 :: 하둡, 주키퍼. 

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

7. 파이럿 환경 관리. 

 

 

<하드웨어>

3V : Volume, Velocity, Variety : 크기, 속도, 다양성 : 얼마나 많은, 자주, 다양한 데이터가 발생하는가?

 

SSD.. 아니면... 병목현상

CPU 가상화. 가능한

고사향 1번, 2번, 3번 서버....

저사향 1번, 2번 ........................

Server1 Hadoop Management Nodes, Hadoop DataNodes, HBase Management, HBase Region Server, PostgresSql

Server2 Hadoop DataNode, HBase Region, 우지, 플럼, 레디스, 하이브/스파크, 스톰, 휴, 제플린, 키프카, 주키퍼

Server3 Hadoop DataNode, HBase Region, Cloudera Management, 임팔라, 스쿱 

CM 클라우데라 메니저. 

개발도구에서 각각 서버에 접속해서 빅데이터 AI작업진행. 

오라클 버추얼박스

OS Windows, mac OS/Linux

x86 데스크톱 PC

 

 

버추얼박스- 네트워크설정 파일> 환경설정> 네트워크 > NAT 네트워크 추가. 
네트워크 이름 : NatNetwork
네트워크 CIDR(C) :10.0.2.0/24
네트워크 옵션: DHCP지원
NATNetwork Address Translation Natwork Address Translation :  네트워크 주소 변환. 
IP 패킷에 있는 출발지 및 목적지의 IP 주소와 TCP/UDP 포트 숫자등을 바꿔 재기록하면서 네트워크 트래픽 주고받음

장점 :
1) 주소절약 : 하나의 공인 IP 주소 여러대 호스트가 인터넷접속 가능. 
인터넷공유기로 여러 PC 사용하는데 이게 NAT 기능, 부족한 공인IP 절약
2) 보안 : NAT 동작의 특성상 IP를 숨길수 있는 기능,
라우터 외부로 트래픽 나갈때 사설 IP 가 공인 IP 주소로 바뀌므로 공격자가 라우터 안쪽에 있는 사설 IP 몰라서 최종목적지 공격이 어려워 내부 네트워크 및 호스트 보호. 

프로세스:
1) 패킷해더에 출발지 목적지 주소 기록, 출발지는 자신의 사설 IP주소.
PC 출발
-출발지 10.0.0.1
-목적지 200.100.10.1

2) 기본 게이트 웨이에서 외부로 나가는 패킷을 인식하게되면
출발지IP 주소를 게이트웨이 자신의 공인IP 주소로 변경, 별도의 NAT 테이블 보관
- 출발지  10.0.0.1 -> 150.150.0.1 (재기록,변경)
- 목적지 200.100.10.1
NAT 테이블
프로토콜 | 사설IP   |  출발지IP    |   목적지 IP 
TCP        | 10.0.0.1 | 150.150.0.1 |   200.100.10.1

3) 웹서버에서 수신한 데이터 처리후 , 응답하여 보내는 패킷에 출발지와 목적지의 IP 주소를 아래와 같이 기록
호스트 설정 http://server01.hadoop.com:7180/

192.168.56.101 server01.hadoop.com 
192.168.56.102 server02.hadoop.com 
192.168.56.103 server03.hadoop.com 


아키텍쳐
메모리할당.  서버 메모리 할당.
시스템 > 마더보드 기본메모리 
Server01 3584
Server02 3072
크라우데라 에이전트 기본 패키지 설치 .   http://server01.hadoop.com:7180/
admin/admin
계속버튼 > 하단 Cloudera Express 선택
>계속버튼 > 클러스터이름 :Cluster1
>계속버튼 > 현재관리되고 있는 호스트 탭.  서버 세개 선택 계속

welcome> cluster  Basics > Specify Hosts > Select Repository > Install Parcels > Inspect Cluster
Oracle JDK 설치 선택
java 암호화 정책파일 선택안함. 
ssh 로그인 정보 제공. root adminuser
사용자 지정서비스 선택
I understand the risks, let me continue with cluster setup. 체크. 컨티뉴. 
1차 설치 
HDFS, YARN, Zookeeper
select Services> Assign Roles>  Setup Database> Review Changes> Command Details Summary

HDFS : 
NN : NameNode : Server01 선택
SNN : SecondaryNameNode: Server01선택
B : Balancer : Server01 선택
HttpFS : 미설치
NFS Gateway : 미설치
DataNode: Server02

YARN
RM : ResourceManger : Server01
JHS : JobHistory: Server01
NodeManager : DataNode로 저장. 선택.   Same As DataNode

ZooKeeper
Server : Server02

기본설정으로 저장 진행. 
완료 후 >> 색 임계치값  빨강 : 정지... 그외는 크게 문제 없음... ex)디스크 여유공간 10% 이하. 
자원이 부족할때 클라우데라메니저 중지. 해도 됨. 서비스기능에는 영향없음. 모니터링안됨. 

DataNode 추가. 
CM 홈 HDFS 메뉴 우측 콤보박스 클릭 역할인스턴스 추가. 
DataNode  데이터를 저장하면 01,02,저장. . 
DataNode 추가된거 확인하고선택, 선택된작업 콤보박스 시작 .



-- 환경변수. 
1. 
메인 > HDFS > Configuration> Replication Factor dfs.replication   3-> 1 저장

cf)
/user/hadoop

hadoop fs -setrep 10 -R /user/hadoop/

Check HDFS Permissions  _ dfs.permissions 해제

HDFS 블록크기 변경 128 => 64
HDFS Block Size _ dfs.blocksize
2. 
YARN 스케줄러 메모리 변경 1-> 1.5
Container Memory Maximum  _ yarn.scheduler.maximum-allocation-mb

리소스매니저 메모리 변경 1-> 5
Container Memory _ yarn.nodemanager.resource.memory-mb

Scheduler Class _ yarn.resourcemanager.scheduler.class
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler
   :: 동시다발적으로 일을시키다... 경합...오버헤드 행걸리는현상..때문에...
->org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler
동시처리는 못함. 순차처리.. 됌. 

-- 동작확인. 
$cd /home/bigdata
$hdfs dfs -ls /tmp
$zookeeper-client > 2번서버

시뮬레이터 설치 mkdir -p /home/pilot-pjt/working/car-batch-log
mkdir -p /home/pilot-pjt/working/driver-realtime-log


1,2번서버
$java -version
$cd /usr/bin
$ ls -l java
lrwxrwxrwx. 1 root root 22 Jun 30  2018 java -> /etc/alternatives/java
$ pwd
/usr/bin
$ rm java
rm: remove symbolic link `java'? y
$ rm javac
rm: cannot remove `javac': No such file or directory
$ ln -s /usr/java/jdk1.8.0_181-cloudera/bin/javac /usr/bin/javac
$ ls -l javac
lrwxrwxrwx 1 root root 41 May 23 00:12 javac -> /usr/java/jdk1.8.0_181-cloudera/bin/javac
$ ln -s /usr/java/jdk1.8.0_181-cloudera/bin/java java
$ ls -l java
lrwxrwxrwx 1 root root 40 May 23 00:13 java -> /usr/java/jdk1.8.0_181-cloudera/bin/java
$ java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)


/home/pilot-pjt/working
bigdata.smartcar.loggen-1.0.jar 옮김

java -cp bigdata.smartcar.loggen-1.0.jar com.wikibook.bigdata.smartcar.loggen.DriverLogMain 20190101 3

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

새창

# cd /home/pilot-pjt/working/driver-realtime-log/
# ls -ltr
total 148
-rw-r--r-- 1 root root 147980 May 23 00:20 SmartCarDriverInfo.log
# tail -f SmartCarDriverInfo.log

ps -ef |grep smartcar.loggen
kill -9 PID
2차 설치 
플럼, 카프카
1. CM의 홈에서 Cluster1 콤보박스 [서비스 추가: add Service] > 추가할 서비스 유형 Flume 선택, 우측하단 계속버튼
> Agent > 설치 서버 호스트 server02.hadoop.com.. 확인> 계속.> 완료. 
2. 힙메모리 올리기
CM홈 > Flume >구성 > java heap  : 50 -> 100
3. Flume 재시작 

플럼> 구성
시스템 그룹 Flume(서비스전체 : Service-Wide) : flume
Agent 이름 Agent Default Group : SmartCar_Agent
구성파일  Agent Default Group
:


1. CM Cluster1 콤보박스 > 서비스 추가. > kafka > 계속 > kafka Broker  _  Server02설치.  나머지 설치안함.  > 완료. 
2. 환경구성
kafka> 구성  Data Retention Time : 7일 >> 15분
3. 재시작. 

$kafka-topics --create --zookeeper server02.hadoop.com:2181 --replication-factor 1 --partitions 1 --topic SmartCar-Topic

$kafka-console-producer --broker-list server02.hadoop.com:9092 -topic SmartCar-Topic

$kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0 --from-beginning

$kafka-console-consumer --bootstrap-server server02.hadoop.com:9092 --topic SmartCar-Topic --partition 0 --from-beginning