Data

[1028 from 실무로 배우는 빅데이터 기술 By 김강원 12]적재-실시간 로그/분석

수업진행.  1. 빅데이터 실시간 적재 개요
2. 빅데이터 실시간 적재에 활용하는 기술
3. 실시간 적재 파일럿 실행 1단계 -실시간 적재 아키텍쳐
4. 실시간 적재 파일럿 실행 2단계 -실시간 적재 환경구성
5. 실시간 적재 파일럿 실행 3단계 -실시간 적재기능구현  >Hbase , 레디스
6. 신시간 적재 파일럿 실행 4단계 -실시간 적재 기능 테스트.  >카프카 스톰
실시간 적재 개요 수집 -> 적재-대용량(배치성처리)    -> (처리/탐색 -> 분석/응용)  
       -> 전재-메시지(실시간성 처리) 

1. 실시간데이터
데이터 실시간== 빠르고, 오랜시간, 대규모
==> 실시간 적재 실시간 분석... 수억건 데이터이기 때문. 
2. 안정적으로
==> 장애... 시 유실. 
적재 저장소 유형 1. 내/외부 원천데이터
정형 데이터 : 데이터베이스
                 (관계/계층/객체/네트워크)
반정형 데이터 : HTML, XML, JSON, 서버로그
비정형 데이터 : 소셜미디어, 문서, 이미지, 오디어 , 비디오 , IOT

-------------->           
배치수집
실시간 수집
--------------> 
2, 적재 저장소 유형. 
- 배치처리 : 큰파일
대용량 파일 전체를 영구 저장 - 분산파일 시스템
- 실시간처리 : 작은메시지
대규모 메시지 전체를 영구저장 -No-SQL  :Hbase, 카산드라, 몽고DB
대규모 메시지 전체를 버퍼링처리 - MoM : 카프카 
대규모 데이터 일부만 임시저장 - Cached : 인메모리 캐시시스템 : 레디스.
실시간 적재 요구사항 요구사항1. 차량의 다양한 장치로부터 발생하는 로그 파일을 수집해서 기능별 상태점검
요구사항2. 운전자의 운행정보가 담긴로그를 실시간으로 수집해서 주행패턴을 분석한다. 
실시간적재 요구사항
구체화
1. 1초간격으로 발생하는 100명의 운행정보(운행정보1건:약 4kb)손실없이 적재해야한다. 
>>카프카와 스톰을 이용해 수집한 데이터에 대해 분산 처리 및 무결성을 보장하며, 분산처리가 완료된 데이터는 HBase에 적재
2. 적재한 운행정보를 대상으로 조건 검색이 가능해야 하며, 필요시 수정도 가능해야 한다. 
>> HBase의 테이블에 적재된 데이터는 스캔 조건으로 검색하며, 저장(Put) 기능을 이용해 기적재한 데이터에 대해 칼럼 기반으로 수정. 
3. 운전자의 운행정보 중 30초를 기준으로 평균 속도가 80km/h 초과한 정보는 분리 적재한다. 
>> 에스퍼의 EPL 에서 사용자별로 운행정보를 그루핑하고, 30초의 윈도우 타임(Window Time) 조건으로 평균 시속 집계 및 임계치별 이벤트를 정의 
4. 과속한차량을 분리 적재하기 위한 조건은 별도의 룰로 정의 하고 쉽게 수정할수 있어야 한다. 
>> 과속 기준을 80Km/h에서 100Km/h로 변경해야 할 경우 EPL의 평균 속도를 체크하는 조건값만 수정
5. 분리 적재한 데이터는 외부 애플리케이션이 빠르게 접근하고 조회할수 있게해야 한다. 
>> 실시간 이벤트로 감지된 데이터는 인메모리 기반 저장소인 레디스에 적재해서 외부 애플리케이션에서 빠르게 조회 
6. 레디스에 적재한 데이터는 저장소의 공간을 효율적으로 사용하기 위해 1주일이 경과하면 영구적으로 삭제
>> 레디스 클라이언트 라이브러리인 제디스(Jedis)클라이언트를 이용해 데이터 적재 시 만료(Expire)시간을 설정해 자동으로 영구 삭제 처리. 
실시간 적재 아키텍처 운전자 운행로그 4kb/1초
-> 플럼에이전트2: ->Exec-Tail Source-> Memory Channel-> kafka Sink
-> 카프카 :Topic 
-> 스톰: 카프카 Spout -> Bolt/에스퍼 -> 레디스 Bolt, HBase Bolt
   -> 레디스 :과속운전자 정보
   -> HBase : 모든 운전자의 운행정보. 
1. Hbase설치 https://blog.1028web.com/entry/big-hbase
   
   
   

 

Tip_ 오픈소스 컴플라이언스 이슈

빅데이터의 소프트웨어들은 대부분 오픈소스

하둡중심 대부분 아파치 .. 제약사항이 적어 다양한비즈니스 적용 크게 문제안됨. 

GPL, AGPL .. 에스퍼가 GPL2.0 소스 "라이센스 양립성" 상용시스템 에스퍼 적용시 공개의무.. 때문에 주의할필요. 

https://www.olis.or.kr/license/compareGuide.do

라이선스 주요내용

라이선스 이름 복제, 배포, 수정의 권한허용 배포시라이선스사본첨부 저작권고지사항또는Attribution고지사항 유지 배포시소스코드제공의무와범위 조합저작물작성 및타 라이선스배포허용 수정내용 고지 명시적특허라이선스의허용 라이선시가특허소송 제기시라이선스종료 이름,상표,상호에 대한사용제한 보증의 부인 책임의 제한
Apache License 1.1 O   O   조건부       O O O
Apache License 2.0 O O O   O   O O O O O
GNU General Public License 2.0 O O O 전체 코드 조건부         O O
GNU General Public License 3.0 O O O 전체 코드   O O O   O O
GNU Lesser General Public License 2.0 O O O 2차 저작물 O O       O O
GNU Lesser General Public License 3.0 O O O 2차 저작물 O O O O   O O
MIT License O O O   조건부         O O
  • ※ 참고사항
  • 기여자(contributor)의 범위에는 최초개발자도 포함
  • 배포에서의 상호주의(Reciprociy)란
  • 라이선스 적용코드를 제3자에게 배포할 때 원 라이선스와 동일한 라이선스로 배포하도록 요구하는 조항을 말하며,
  • 보통 Copyleft 조항이라고도 함.
  • 조합저작물(Larger Work)이란
  • 라이선스 적용 코드 전체나 그 일부를 본 라이선스의 적용을 받지 않는 코드와 결합한 저작물을 의미한다.
  • 빈칸은 해당 라이선스에 명시적으로 언급이 없음을 의미한다.
  • 그러나 언급이 없더라도 묵시적으로 허용하거나, 금지하는 것으로 해석할 수 있으므로, 관련 전문가와 상의하기 바랍니다.

주요 오픈 라이선스의 GPL 호환성

??? 문제가 있다는건가 있다 or 없다. 

오픈 소스 소프트웨어 라이선스 GPL 2.0 호환 GPL 3.0 호환
Academic Free License No No
Affero GNU General Public License version 3.0 No Yes
Apache License version 1.0 No No
Apache License version 1.1 No No
Apache License version 2.0 No Yes
original BSD license No No
GNU General Public License 2.0 Yes No
GNU General Public License 3.0 No Yes
GNU Lesser General Public License Yes Yes
MIT license Yes Yes
Mozilla Public License version 1.1 No No
Mozilla Public License version 2.0 Yes Yes