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