Commit 146ba524 authored by HooYoungAhn's avatar HooYoungAhn
Browse files

Update 2.5.8.RealtimeIngestToServingInTwoEngines.md

parent 55fa18c3
Pipeline #834 canceled with stages
......@@ -7,6 +7,7 @@ export_on_save:
---
# 스트림 방식으로 예측하여 REST 방식으로 서빙하기 (RealtimeIngestToServingInTwoEngines)
---
온도센서 데이터를 수집한 후 전처리를 수행하고, 기계학습 모델에 의해 예측된 온도값을 클라이언트로 전달하는 예제를 설명합니다.
## 입력 데이터 준비하기
......@@ -17,13 +18,13 @@ export_on_save:
### 온도 스트림데이터 생성하기
워크플로우 실행 결과를 확인하기 위해서는 온도데이터를 스트림 형태로 발생시켜야합니다. Jmeter를 활용한 온도 스트림데이터 생성하는 방법은 메뉴얼 하단의 "결과 확인하기" 를 확인해 주시기 바랍니다.
##워크플로우 생성하기
## 워크플로우 생성하기
워크플로우 편집화면에서 워크플로우를 작성합니다. 본 예제에서는 두 개의 엔진을 생성합니다.
### 첫 번째 엔진 생성하기
####엔진 선택
#### 엔진 선택
본 예제에서는 스트림형태로 입력되는 온도 데이터를 입력받아 실시간 온도 예측을 하는 서빙 엔진으로 전달하기 위해 Streamtostream 엔진을 선택합니다.
#####Reader
HTTP 서버로부터 전달되어 오는 센서데이터를 입력 받기 위해 HttpServerReader를 선택하고 아래표와 같은 속성을 지정합니다.
......@@ -34,7 +35,7 @@ path | / | HTTP 서버의 URL
port | 53002 | HTTP 서버의 포트 번호
#####Writer
##### Writer
StreamToStream엔진에서 처리된 결과를 다음 엔진에게 Stream 형태로 전달할 것이므로, KafkaWriter를 선택합니다.
field |value | 설명
--|---|--
......@@ -44,7 +45,7 @@ groupId | group3 | Kafka writer topic 그룹 아이디
bootStrapServer | csle1:9092 | Kafka 접속 주소(IP, 포트번호)
#####Controller
##### Controller
Controller 로는 WindowedSparkSessionOrStreamController 를 선택합니다. WindowedSparkSessionOrStreamController 는 스트림으로 입력되는 데이터를 큐에 저장하고, 일정 주기 마다 정해진 윈도우 크기로 잘라서 operator 에게 전달합니다.
field |value | 설명
--|---|--
......@@ -53,7 +54,7 @@ inputQueSize | 1 | 입력 큐의 크기 | |
selectedColumnName | temperature | Spark dataframe에서 추출할 컬럼의 이름 | |
windowSize | 10 | 큐에서 사용할 윈도우의 크기 | |
#####Runner
##### Runner
SimpleSparkRunner 를 선택합니다.
field |value | 설명
--|---|--
......@@ -71,7 +72,7 @@ driverMemory | 1g | Spark 드라이버 메모리
#####Operator
##### Operator
첫번째 엔진에서는 센서로부터 입력되는 온도 데이터를 여섯가지 전처리 기법을 적용하여 정제합니다. 본 예제에서 사용한 전처리 기법은 ColumnSelectOperator, MinMaxScalingOperator, TransposeOperator, SparkMLPredictOperator, MinMaxScalingOperator, ColumnSelectOperator 입니다.
- ColumnSelectOperator
......@@ -125,11 +126,13 @@ field |value | 설명
selectedColumnId | 13 | 선택할 칼럼 ID
### 두 번째 엔진 생성하기
####엔진 선택
#### 엔진 선택
스트림 형태로 전달되는 온도 예측값의 온디맨드 서빙을 하기 위해 OnDemandStreamServing 엔진을 선택합니다. (KSB프레임워크에서는 도커 컨테이너 내부의 지식베이스(KB)가 실행되고 있습니다.)
#####Reader
##### Reader
첫번째 엔진에서 입력되는 실시간 온도 예측값을 입력 받기 위해 KafkaOnDemandReader 를 선택합니다.
field |value | 설명
--|---|--
topic | test3 | 실시간 온도 예측값을 받아올때 사용할 Kafka 큐의 이름
......@@ -138,19 +141,20 @@ groupId | group3 | Kafka writer topic 그룹 아이디
bootStrapServer | csle1:9092 | Kafka 접속 주소(IP, 포트번호)
#####Writer
##### Writer
이 엔진에서는 별도의 Writer를 사용하지 않습니다.
#####Controller
##### Controller
Controller 로는 servingWithkbController를 선택합니다. ServingWithkbController는 추가적인 속성을 설정하지 않습니다.
field |value | 설명
--|---|--
restfulActorName | ksb.csle.component.pipe.controller.actor.CompositiveServingActor |
url | postQuery |
#####Runner
##### Runner
REST 방식으로 엔진을 실행 하기위해서 ServingRunner를 선택합니다.
field |value | 설명
--|---|-- |
......@@ -159,7 +163,7 @@ host | 0.0.0.0 | 최적의 제어값을 서빙할 IP |
#####Operator
##### Operator
이 엔진에서는 별도의 Operator를 설정하지 않습니다.
......@@ -170,7 +174,7 @@ host | 0.0.0.0 | 최적의 제어값을 서빙할 IP |
ksbuser@etri.re.kr 계정으로 접속하면 예제 워크플로우가 만들어져있습니다. 불러오기해서도 돌려볼 수 있습니다.
##워크플로우 실행 및 모니터링하기
## 워크플로우 실행 및 모니터링하기
### 워크플로우 실행하기
위에서 작성한 워크플로우를 실행하기 위해서는 워크플로우 편집기 상단의 실행 버튼을 누릅니다. 이 때, StreamToStream 엔진과 OnDemandStreamServing 엔진은 배치형태로 실행되지 않는 엔진들이므로 Batch 체크 박스는 해제하고 워크플로우를 제출해야합니다.
......@@ -197,7 +201,7 @@ WorkFlow History 탭을 선택하면, KSB프레임워크에서 워크플로우
![워크플로우 동작 로그](./images/2.5.8_06.png)
##결과 확인하기
## 결과 확인하기
#### 온도 스트림데이터 생성하기
워크플로우 실행 결과를 확인하기 위해서는 온도데이터를 스트림 형태로 발생시켜야 합니다. 이를 위해 위에서 설명한 Jmeter 도구를 활용합니다.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment