Commit 2d619d0a authored by HooYoungAhn's avatar HooYoungAhn
Browse files

upload manual 1903

parent 79e12f98
Pipeline #809 canceled with stages
---
html:
toc: true
offline: true
export_on_save:
html: true
---
# KSB 웹툴킷 개요
---
**KSB 웹툴킷** 은 사용자가 프레임워크를 효과적으로 사용할 수 있도록 지원하는 웹기반의 저작 도구입니다. **KSB 웹툴킷** 은 워크플로우를 정의하고 실행하는 기능과 실행 과정을 모니터링하는 기능, 그리고 관련 데이터를 업로드하고 결과를 시각화하는 기능 등을 지원합니다. **KSB 웹툴킷** 은 회원가입을 통해 로그인을 하여 사용하며 사용자별로 워크플로우를 관리합니다.
## 웹을 통한 접속 및 로그인
먼저 <a href="./1.5.HowToRunFirst.html">KSB 인공지능 프레임워크 실행하기</a> 매뉴얼을 참고하여 KSB 프레임워크를 구동합니다.
Chrome 브라우저(또는 HTML5 표준 호환 브라우저)를 열고 <a href="http://localhost:8080/">http://localhost:8080</a> 에 접속합니다. 로그인 페이지를 볼 수 있으며, 다음과 같이 기본적으로 제공하는 사용자 정보(수퍼관리자)가 저장되어 있습니다.
- User ID : `ksbuser@etri.re.kr`
- User Password : `ksbuser@etri.re.kr`
사용자 ID 와 암호를 입력한 후 로그인 합니다. 위 아이디로 로그인할 경우 워크플로우 예제가 저장되어 있습니다.
![Figure](images/2.1_signin.png)
## 기능 및 메뉴 구성
KSB 웹툴킷에 로그인을 하면 대시보드 화면이 보이고, 화면 상단에 다음과 같은 메뉴가 있습니다.
### Dashboard
대시보드에서는 KSB 웹툴킷에 로그인 한 사용자가 작성하여 저장하거나 실행한 워크플로우 정보 및 현재 서비스 되고 있는 정보를 한 눈에 파악할 수 있습니다. (다른 사용자가 작성하여 저장하거나 실행한 워크플로우는 나타나지 않습니다.) *Workflow TOP 10* 에서는 수행된 워크플로우의 통계 정보(수행 횟수, 수행 결과, 수행 경과시간)를 보여줍니다. *Workflow* 에서는 사용자가 작성하여 저장한 워크플로우의 리스트를 보여줍니다. 삭제(<span style="color:red">&#9747;</span>) 버튼을 눌러 해당 워크플로우를 삭제할 수 있습니다. 또한 특정 기간에 작성된 워크플로우를 검색하여 볼 수 있습니다. *Services* 에서는 현재 서비스 되고 있는 서빙 엔진들(온디맨드방식 처리 엔진들)의 세부 정보를 보여줍니다.
![dashboard Figure](images/2.1_dashboard.png)
### Workflow Editor
워크플로우 편집기에서는 그래픽 기반의 워크플로우 편집 기능을 사용하여 워크플로우를 작성하고 실행할 수 있습니다. 또한 워크플로우를 저장하고 로딩할 수 있으며 별도의 Json 파일로 Import/Export 할 수 있습니다. 워크플로우 편집기는 별도의 창으로 생성되며, 여러 개의 창을 동시에 띄워서 워크플로우를 각각 편집하고 실행할 수 있습니다. 구체적인 사용 방법은 <a href="./2.2.WebToolkit_Workflow.html">워크플로우 편집기 소개</a> 를 참조합니다.
![workflow Figure](images/2.1_workflow.png)
### Repository
KSB 인공지능 프레임워크는 **하둡파일시스템(HDFS)** 을 기본적으로 사용합니다. 데이터 저장소 관리에서는 사용자가 HDFS에 파일을 업로드 하거나 다운로드 하기 위한 인터페이스를 제공합니다. 워크플로우에서 사용하는 데이터 파일, 모델 파일, 결과 파일 등을 관리할 수 있습니다. 사용자가 원하는 파일 내용을 확인하거나 신규 디렉토리를 생성하고 파일을 업로드할 수 있는 기능을 제공합니다. 구체적인 사용 방법은 <a href="./2.3.1.WebToolkit_Repository.html">데이터 저장소 관리</a> 를 참조합니다.
![repository Figure](images/2.1_repository.png)
### Monitoring
진행내역/상태 모니터링에서는 KSB 프레임워크에 제출된 워크플로우(워크플로우에 속한 엔진 포함)의 목록 및 상태를 확인할 수 있습니다. 또한 워크플로우 및 엔진의 Status에 따라 실행 중인 워크플로우 및 엔진을 종료(<span style="color:red">&#9724;</span>)하거나, 재실행(<span style="color:#6698FF">&#9654;</span>)할 수 있습니다. 또한 *Workflow Histroy* 탭에서 엔진이 실행 되어 생성된 결과파일을 확인하고 그래프로 시각화 하거나 로그 기록을 볼 수 있습니다. 구체적인 사용 방법은 <a href="./2.3.2.WebToolkit_Monitoring.html"> 모니터링 소개</a> 를 참조합니다.
![monitoring Figure](images/2.1_monitoring.png)
### Component (관리자 메뉴)
컴퍼넌트 관리는 관리자 권한을 가진 사용자만 접근할 수 있습니다. 컴퍼넌트 관리에서는 SW 개발자가 만든 신규 컴퍼넌트를 **KSB 웹툴킷** 에서 사용할 수 있도록 등록하거나, 기존의 컴퍼넌트 동작이 변경되어었을 경우 수정하는 기능을 제공합니다. 또한 웹툴킷 컴퍼넌트들의 버전을 관리할 수 있습니다. 자세한 설명은 <a href="./3.4.HowToUseComponent.html">KSB 웹툴킷에 컴퍼넌트 등록하기</a> 를 참조합니다.
![component Figure](images/2.1_component.png)
### Management (관리자 메뉴)
시스템 설정 관리는 관리자 권한을 가진 사용자만 접근할 수 있습니다. 시스템 설정 관리에서는 웹툴킷 관리자가 쉽게 웹툴킷 정보(게이트웨이 Ip, Port, 버전 정보 등)를 확인하고 수정할 수 있습니다. *User Configuration* 탭에서는 회원 목록을 확인하고 회원 가입 승인, 관리자 권한 부여, 회원 삭제 등을 수행할 수 있습니다.
![management Figure](images/2.1_management.png)
## 회원 가입
KSB 웹툴킷은 회원가입을 통해 로그인을 하여 사용하며 사용자별로 워크플로우를 관리합니다. 자신의 계정을 생성하려면 로그인 화면에서 "신규 회원가입" 버튼을 클릭하여 이메일 인증을 통해 회원가입을 수행 합니다.
![Figure](images/2.1_joinin.png)
회원 가입 절차를 위해서는 이메일 인증을 할 메일 계정이 요구되며, **Management** 메뉴의 *System Configuration* 탭에서 설정할 수 있습니다. `javax.mail.session.prop.id``javax.mail.session.prop.password` 를 통해 각각 메일 계정과 메일 암호를 설정하여 이용할 수 있습니다. 메일은 Gmail 등을 사용하면 됩니다.
또한, 회원 가입을 위해서는 이메일 인증절차를 수행하는 PC에서 KSB 웹툴킷이 운용중인 서버에 접근할 수 있어야 합니다.
## 회원 관리
KSB 웹툴킷은 회원을 **일반사용자/관리자/수퍼관리자** 로 권한을 나누어 관리합니다. 일반사용자 계정은 Component 메뉴와 Management 메뉴에 접근할 수 없습니다. 관리자 및 수퍼관리자 계정은 Component 메뉴와 Management 메뉴에 접근 가능하고 기능을 사용할 수 있습니다. 다만, 관리자 계정은 **Management** 메뉴의 *User Configuration* 탭에서 일반사용자의 회원 가입 승인, 관리자 권한 부여, 회원 삭제 등을 수행할 수 있습니다. 관리자의 권한을 일반사용자로 바꾸거나 관리자 회원을 삭제하는 것은 수퍼관리자 계정만 가능합니다.
---
html:
toc: true
offline: true
export_on_save:
html: true
---
# 워크플로우 편집기 소개
---
워크플로우 편집기는 사용자가 워크플로우를 쉽게 정의할 수 있도록 그래픽 기반의 워크플로우 편집 기능과 실행 기능을 제공합니다. 워크플로우 편집 화면은 다음 그림과 같이 7가지 영역으로 구성되어 있습니다.
![워크플로우 편집 화면 (Workflow editor)](./images/2.2_workflow.png)
## 메뉴바
워크플로우의 생성/로딩/저장/실행/불러오기/내보내기/마법사 기능을 선택할 수 있는 화면입니다. 구체적인 메뉴 설명은 아래와 같습니다.
### New Workflow
새로운 워크플로우를 생성합니다. 하나의 워크플로우를 생성할 때는 버전을 선택하여 생성하며, 생성된 워크플로우의 버전은 변경할 수 없습니다. 해당 워크플로우가 생성될 때 선택한 버전으로 항상 로딩 되고 실행됩니다.
![워크플로우 편집 화면 (New)](./images/2.2_WorkflowVersion.png)
### Load Workflow
DB에 저장된 워크플로우를 불러옵니다. 삭제(<span style="color:red">&#9747;</span>) 버튼을 눌러 해당 워크플로우를 삭제할 수 있습니다. 이전에 실행한 이력이 있는 워크플로우를 삭제 하는 경우, 해당 워크플로우의 실행 이력 및 로그파일도 모두 삭제 됩니다. 또한 표의 헤더 부분을 클릭하여 정렬할 수 있습니다.
![워크플로우 편집 화면 (Load)](./images/2.2_WorkflowLoad.png)
### Save Workflow
작성 중인 워크플로우를 DB에 저장합니다. 워크플로우를 처음 저장할 경우 워크플로우의 이름과 설명을 입력한 후 저장합니다. 기존에 저장한 워크플로우를 수정했을 때는 저장 버튼을 누른 후 *Update* 를 통해 워크플로우를 갱신하거나 *Save As* 를 통해 새로운 워크를로우로 저장할 수 있습니다.
저장한 워크플로우의 이름은 왼쪽 메뉴 상단에 나타납니다.
워크플로우 편집 창의 빈 공간에서 마우스 오른쪽 버튼을 눌렀을 때도 워크플로우 이름 및 설명 정보를 확인 및 수정할 수 있습니다.
![워크플로우 편집 화면 (Save)](./images/2.2_WorkflowSave.png)
### Run Workflow
작성한 워크플로우 Spec 을 KSB 프레임워크로 제출합니다. 워크플로우의 이름과 설명을 입력하지 않았을 경우 이를 입력해야 합니다. 또한 Batch 여부 (배치처리일 경우 Batch 를 체크함) 와 Verbose (디버깅을 위해 상세 로그 정보를 확인 할 경우 체크함. 로그 정보가 상세하게 기록 됨.) 를 선택한 후 제출합니다. KSB 프레임워크는 Json 형태의 워크플로우 Spec 을 해석하여 엔진을 동적으로 구성하여 실행합니다.
![워크플로우 편집 화면 (Run)](./images/2.2_WorkflowRun.png)
### Import from file
Export 된 Json 포맷의 워크플로우 파일을 불러옵니다. "파일선택" 버튼을 클릭하여 워크플로우 파일을 선택한 후 "Import" 버튼을 클릭하여 워크플로우를 불러옵니다.
![워크플로우 편집 화면 (Import)](./images/2.2_WorkflowImport.png)
### Export to file
작성한 워크플로우 Spec 을 Json 포맷의 파일로 내보냅니다. Json 파일에 작성한 워크플로우의 spec이 저장되므로 Import 기능을 통해 워크플로우를 불러올 수 있습니다. 다른 사용자에게 내가 작성한 워크플로우를 공유하고자 할 때 사용합니다.
### Wizard
사용자가 작성하고자 하는 워크플로우와 가장 적합한 워크플로우 템플릿을 찾아주는 기능입니다.
다음과 같이 질문에 답변을 함으로써 사용자의 목적에 가장 부합하는 워크플로우를 찾아서 불러옵니다.
현재는, 개발자가 사전에 지식베이스에 저장한 예제 워크플로우에 대해서만 검색 됩니다.
![Wizard](./images/2.2_wizard1.png)
![Wizard](./images/2.2_wizard2.png)
![Wizard](./images/2.2_wizard3.png)
## 엔진 선택 창
사용자가 다양한 서비스를 만들 수 있도록 여러가지 엔진 타입을 제공합니다. 사용자가 원하는 엔진 타입을 선택한 후 **워크플로우 편집 창** 으로 drag & drop 하면 엔진 선택이 쉽게 완료됩니다. 각 엔진 타입에 대한 자세한 내용은 <a href="./2.4.1.EngineTypeList.html">엔진 유형 목록</a> 을 참조 하시기 바랍니다.
![워크플로우 편집 화면 (Engine)](./images/2.2_container.png)
## 컴퍼넌트 선택 창
엔진을 구성하는데 필요한 컴퍼넌트를 5종으로 구분하여 관련 컴퍼넌트 리스트를 제공하는 화면입니다. 사용자는 원하는 컴퍼넌트를 선택하여 **엔진 컨테이너** 으로 drag & drop 하면 자동으로 엔진 컨테이너에 탑재되어 손쉽게 엔진을 구성할 수 있습니다. 5종의 컴퍼넌트는 아래와 같으며 구체적인 컴퍼넌트 리스트는 <a href="./2.4.2.ComponentList.html">컴퍼넌트 목록</a> 을 참조하시기 바랍니다.
- **Reader**: 데이터를 읽어오기 위한 입력 컴퍼넌트들을 보여줍니다.
- **Writer**: 데이터를 보내기 위한 출력 컴퍼넌트들을 보여줍니다.
- **Operator**: 데이터 처리를 위한 처리 컴퍼넌트들을 보여줍니다.
- **Runner**: 실행을 지원하기 위한 실행 컴퍼넌트들을 보여줍니다.
- **Controller**: 선택된 컴퍼넌트들을 제어하기 위한 제어 컴퍼넌트들을 보여줍니다.
각 엔진마다 사용할 수 있는 컴퍼넌트들이 매핑되어 있으며, 각 컴퍼넌트에 마우스를 오버하면 간단한 툴팁 설명을 볼 수 있습니다.
![워크플로우 편집 화면 (Component)](./images/2.2_component.png)
## 속성 창
탑재된 컴퍼넌트의 속성을 설정하는 화면을 제공합니다. 사용자가 **탑재된 컴퍼넌트** 를 클릭하면, 컴퍼넌트 속성 창에 해당 컴퍼넌트의 속성이 표시됩니다.
![워크플로우 편집 화면 (Property)](./images/2.2_property.png)
속성 창에서 별표(<span style="color:red">&#10033;</span>) 표시는 반드시 입력해야 하는 필드를 나타냅니다. 해당 필드의 속성을 입력하지 않으면 워크플로우가 실행되지 않습니다.
반복적으로 입력하는 필드일 경우, <span style="color:#777777">&#10010;</span> 버튼을 반복적으로 클릭하여 입력합니다.
하위에 여러 필드를 가지는 속성일 경우, `세부 설정 내용 ...` 으로 표시되며 클릭하면 별도의 팝업창이 나타나서 입력할 수 있습니다.
### Help 참조
속성 창에서는 별도의 Help를 제공하여 사용자가 이를 참조하여 속성 값을 입력할 수 있도록 지원합니다. Help 버튼(<span style="color:#777777">?</span>)을 클릭하면 팝업창이 나타납니다. 구체적인 속성 입력 방법은 <a href="./2.5.2.KMeansExample.html">워크플로우 예제 만들기</a>를 참조합니다.
![워크플로우 편집 화면 (Property)](./images/2.2_property_help.png)
### 파일 경로 선택
입력파일, 출력파일, 학습모델 등의 경로에 관한 속성 설정은 **하둡파일시스템(HDFS)** 을 사용할 것인지 **로컬파일시스템** 을 사용할 것이지에 따라 주의해서 입력해야 합니다. 파일 시스템에 대한 설정은 KSB 프레임워크 설정파일인 ksb.conf에 설정된 **hdfs.Activated** 값이 *true* 인지 *false* 인지에 따라 하둡파일시스템(HDFS)의 상대경로인지 로컬파일 시스템의 상대경로인지가 결정되며, **기본 값은 하둡파일시스템** 으로 설정이 되어 있습니다.
또한 상대경로를 사용할 경우 다음과 같이 **사용자 기본 파일경로** 가 상대경로 앞에 적용됩니다.
- 하둡파일시스템 기본경로: hdfs://{host}:{port}/user/{user_id}/
- Writer 일 경우: hdfs://{host}:{port}/user/{user_id}/applications/{workflow_instance_id}_{engine_id}/output/
- 로컬파일시스템 상의 기본경로: file://{KSB_HOME}/
하둡파일시스템으로 설정된 경우, 하둡파일시스템에 대한 상대경로로 설정이 되며, **Repository**`File` 버튼을 클릭 했을 때 보이는 파일시스템은 하둡파일시스템 입니다.
파일 경로 속성을 입력하는 방법은 두 가지를 제공합니다.
#### 1) 파일탐색기 버튼을 이용하는 방법
filePath, pyEntryPath 등과 같이 Path로 끝나는 필드 이름을 가지는 속성은 입력창 옆에 `File` 버튼이 있습니다. 이 버튼을 클릭하여 탐색기 창을 통해 하둡파일시스템(HDFS)의 파일 또는 경로를 선택하는 것이 가능합니다.
![워크플로우 편집 화면 (Property)](./images/2.2_property_file.png)
`File` 버튼을 통해서 선택한 경로는 **하둡파일시스템의 상대경로** 이며, KSB 프레임워크로 제출 되면, 시스템에서 자동으로 **사용자 기본 파일경로** 를 추가하여 처리합니다.
#### 2) 직접 입력하는 방법
- `File` 버튼 옆의 입력란에, 사용자가 파일시스템 정보(*hdfs://* 또는 *file://*)를 포함한 전체경로를 직접 설정한 경우, KSB 프레임워크는 해당 경로에 대해 기본 파일경로 추가 등의 처리를 하지 않으며, 입력한 파일시스템 상의 경로가 그대로 KSB 프레임워크 내부에서 사용됩니다.
- */home/csle/...* 와 같이 최상위 경로정보 *'/'* 로 시작하는 경우, 해당파일시스템의 최상위로 시작하는 경로로 인식합니다.
- *'dataset/...'* 와 같이 상대경로를 지정한 경우, 상기에 설명한 **사용자 기본 파일경로** 가 상대경로 앞에 적용됩니다. 예를 들면, *'dataset/...'* 을 입력한 경우, *'hdfs://{host}:{port}/user/{user_id}/dataset/...'* 로 변경되어 KSB 프레임워크 상에서 처리됩니다.
## 워크플로우 편집 창
사용자가 직관적으로 엔진이나 컴퍼넌트를 편집할 수 있도록 워크플로우 편집 화면을 제공합니다. 사용자는 편집하고자 하는 엔진을 선택하거나 위치를 조정할 수 있습니다. 또한 필요한 컴퍼넌트들을 탑재하거나 삭제할 수 있습니다.
또한 엔진을 선택하고 마우스 오른쪽 버튼을 클릭하면 다음과 같은 메뉴를 사용할 수 있습니다.
- Engine 순서 설정
- Engine 순서 수정
- Engine 순서 보기
- Engine 복제
- Engine 삭제
워크플로우 편집창의 빈 공간에서 마우스 오른쪽 버튼을 클릭하여 다음과 같은 메뉴를 사용할 수도 있습니다.
- Engine 순서 설정
- Engine 순서 수정
- Engine 순서 보기
두 개 이상의 엔진을 구성하였을 경우, **선 연결****선 삭제** 기능을 이용할 수 있습니다.
### 엔진 복제
선택한 엔진과 동일한 엔진을 하나 만듭니다.
### 엔진 삭제
선택한 엔진을 삭제합니다.
### 엔진 순서 설정
엔진들 간의 순서를 설정합니다. "Engine 순서 설정" 을 클릭하면 워크플로우 편집 창이 비활성화 됩니다. 이 때 엔진을 차례대로 클릭하여 순서를 지정하고, Apply 버튼을 누릅니다.
![워크플로우 편집 화면 (Ordering)](./images/2.2_EngineOrdering.png)
### 엔진 순서 수정
엔진들 간의 순서를 수정합니다. "Engine 순서 수정" 을 클릭하면 워크플로우 편집창이 비활성화 되고, 현재 엔진들의 순서가 표시됩니다. 엔진 위의 숫자를 drag 하여 순서를 수정하고 Apply 버튼을 누릅니다.
![워크플로우 편집 화면 (Ordering)](./images/2.2_EngineOrdering2.png)
### 엔진 순서 보기
엔진 순서를 확인합니다.
"Engine 순서 보기" 를 클릭하면 워크플로우 편집창이 비활성화 되고, 현재 엔진들의 순서가 표시됩니다. 확인이 끝났으면 마우스 오른쪽 버튼을 클릭하여 "Engine 순서 보기 닫기" 를 클릭합니다.
![워크플로우 편집 화면 (Ordering)](./images/2.2_EngineOrdering3.png)
### 선 연결
워크플로우 편집 화면에서 선은 데이터 패스를 의미하며, 두 엔진을 선으로 연결하는 것이 가능합니다. 앞 엔진의 Writer 부분의 반달 모양에서 마우스를 클릭한 후 뒤에 있는 엔진의 Reader 부분의 반달 모양으로 drag & drop 하여 선을 연결합니다. Writer 와 Reader 의 이름이 다를 경우 다음과 같은 안내문이 나오며, 그래도 연결하고자 할 경우 연결하면 됩니다.
![워크플로우 편집 화면 (Link)](./images/2.2_WorkflowLink.png)
Writer 와 Reader 의 이름이 같을 경우에는 다음과 같이 Writer 의 속성값을 Reader 의 속성값으로 덮어쓸지를 선택하는 안내창이 나옵니다. "확인"을 클릭할 경우 Writer 의 속성값을 Reader 의 속성값으로 덮어쓰고, "취소"를 클릭할 경우 덮어쓰지 않습니다. 동일한 속성을 가지지 않았을 경우 (Writer 와 Reader 가 동일한 Component Property 를 가지지 않을 경우) 덮어쓰지 않을 것을 권장합니다.
![워크플로우 편집 화면 (Link)](./images/2.2_WorkflowLink2.png)
### 선 삭제
두 엔진을 연결한 선을 삭제하고자 할 경우 선이 있는 곳에서 마우스 오른쪽 버튼을 클릭하여 "Link 삭제"를 선택합니다.
![워크플로우 편집 화면 (Link)](./images/2.2_WorkflowLink3.png)
## 엔진 상세보기 창
엔진의 이름을 클릭하면 편집창 하단에 엔진 상세보기 창이 나타나며 엔진이 가진 Reader, Operator, Writer 들을 보여줍니다. 하나의 엔진에서 Reader, Operator, Writer는 여러 개를 가질 수 있습니다 (엔진 타입에 따라 하나만 가지거나 없는 경우도 있을 수 있음). 반면 Controller, Runner 는 반드시 하나만 가질 수 있습니다. 엔진 상세보기 창에서 각 컴퍼넌트를 drag & drop 하여 순서를 변경할 수 있습니다.
## 워크플로우 선택 창
KSB 웹툴킷에서 워크플로우 Spec 을 작성하여 KSB 프레임워크로 제출된 워크플로우의 목록 (워크플로우에 속한 엔진 목록 포함) 을 보여줍니다.
워크플로우 또는 엔진 이름을 선택한 후 **워크플로우 편집창** 으로 Drag & Drop 하면, 해당 워크플로우 또는 엔진을 불러옵니다. 따라서 이미 작성한 워크플로우 또는 엔진을 재사용하여 새로운 워크플로우를 작성할 수 있습니다.
![워크플로우 재사용하기](./images/2.2_WorkflowInstances.png)
---
html:
toc: true
offline: true
export_on_save:
html: true
---
# 데이터 저장소 관리
---
KSB 인공지능 프레임워크는 **하둡파일시스템(HDFS)** 을 기본적으로 사용합니다. KSB 웹툴킷에서는 **Repository** 메뉴를 통해 HDFS에 파일을 업로드 하거나 다운로드 하기 위한 인터페이스를 제공합니다.
## 사용자 기본 파일경로
파일 시스템에 대한 설정은 ksb.conf (KSB 인공지능 프레임워크 설정파일) 에 설정된 **hdfs.Activated** 값에 따라 결정됩니다. **hdfs.Activated***true* 일 경우 HDFS의 상대경로로 설정합니다. **hdfs.Activated***false* 일 경우 로컬파일 시스템의 상대경로로 설정합니다. 기본 값은 HDFS의 상대경로로 설정이 되어 있습니다 (**hdfs.Activated***true*).
- 하둡파일시스템 기본경로: hdfs://{host}:{port}/user/{user_id}/선택한 경로
- Writer 일 경우: hdfs://{host}:{port}/user/{user_id}/applications/{workflow_instance_id}_{engine_id}/output/선택한 경로
- 로컬파일시스템 상의 기본경로: file://{KSB_HOME}/선택한 경로
KSB 웹툴킷의 Repository에서 사용하는 경로는 **사용자 기본 파일경로** 를 생략하여 보여줍니다. 따라서 *'dataset/...'* 을 입력한 경우, *'hdfs://{host}:{port}/user/{user_id}/dataset/...'* 로 변경되어 KSB 인공지능 프레임워크 상에서 처리됩니다.
## 데이터 업로드
KSB 인공지능 프레임워크는 HDFS에 업로드 할 데이터 타입을 크게 세 가지로 분류하도록 권장합니다.
- dataset : 입력 데이터 파일 및 사용자 파이썬 코드 파일
- model : 학습된 기계학습 모델의 파라미터가 저장된 파일
- applications : 엔진의 Writer 가 생성한 결과 파일
따라서 KSB 인공지능 프레임워크를 설치하면 HDFS에 기본적으로 "dataset" 폴더와 "model" 폴더가 생성되어 있습니다. "applications" 폴더는 엔진 실행 시 생성됩니다. 업로드할 파일의 타입에 따라 상위 디렉토리를 먼저 선택한 후 하위 디렉토리를 선택하고 해당 위치에 파일을 업로드 합니다. "Filename", "FileSize", "Last Modified" 을 클릭하면 해당 속성을 기준으로 오름차순 또는 내림차순으로 정렬할 수 있습니다.
![Repository](./images/2.3.1_repository.png)
상위 디렉토리를 선택하면, 하위 디렉토리 구조가 왼쪽 창에 나타납니다. 파일을 업로드 하고자 하는 위치로 마우스를 클릭하여 이동한 후, <span style="color:#6698FF">File Upload</span> 버튼을 클릭하여 파일을 업로드 합니다.
이 때 입력파일의 이름(Name)과 설명(Description)을 함께 입력할 수 있습니다 (입력을 생략해도 됨). 이 정보는 입력 파일의 메타정보로 DB에 저장됩니다.
또한 파일 단위로 업로드 하거나 폴더 단위로 업로드 할 수 있습니다. 모델의 경우 주로 폴더 단위로 업로드 합니다.
구조가 복잡한 파일 및 디렉토리는 ZIP 파일로 압축한 다음, 파일 입력에서 폴더(압축파일)을 선택하여 업로드 할 수도 있습니다.
![파일 등록](./images/2.3.1_FileUpload.png)
새로운 폴더를 생성하고자 할 경우 <span style="color:#6698FF">New Directory</span> 버튼을 클릭하여 폴더명, *메타정보 [(이름(Name), 설명(Description)]* 를 입력한 후 생성 버튼을 클릭합니다.
![폴더 생성](./images/2.3.1_NewDirectory.png)
*메타정보 [이름(Name), 설명(Description)]***워크플로우 편집기****속성창** 에서 파일 경로를 선택할 경우 이용됩니다. 즉 파일탐색기 버튼 (filePath, pyEntryPath 등과 같이 Path로 끝나는 필드 이름을 가지는 속성의 입력창 옆에 있는 `File` 버튼) 을 클릭했을 때 사용할 파일을 검색하기 위해 이용되며, 입력이 필수 사항은 아닙니다.
## 파일 삭제 및 다운로드
파일 또는 폴더를 클릭한 후 마우스 오른쪽 버튼을 클릭하면 다음과 같은 메뉴가 나타납니다. 메타정보는 dataset, model 의 하위 경로에 포함된 파일에 대해서만 설정 및 이용할 수 있습니다.
- 삭제
- 복사
- 잘라내기
- 붙여넣기 (복사 또는 잘라내기 한 경우에만 활성화 됨)
- 이름 변경
- 다운로드
- 메타정보
![Repository](./images/2.3.1_FileSelect.png)
폴더를 선택하고 다운로드 메뉴를 클릭할 경우, 폴더를 압축하여 다운로드 합니다.
메타정보 메뉴를 클릭할 경우, 이름, 설명 등의 메타정보를 입력할 수 있는 팝업창이 나타납니다.
![Repository](./images/2.3.1_meta.png)
## 결과 파일 확인
사용자가 작성한 워크플로우에 상대경로로 파일을 저장하는 **FileWriter** 를 사용한 엔진이 있을 경우, 워크플로우 실행이 종료된 후 Repository 메뉴에서 결과 파일을 확인할 수 있습니다. 결과 파일은 기본적으로 아래 위치에 저장이 됩니다.
- hdfs://{host}:{port}/user/{user_id}/applications/{workflow_instance_id}_{engine_id}/ouput/
![Repository](./images/2.3.1_Output.png)
워크플로우 생성 및 실행은 <a href="./2.5.2.KMeansExample.html">배치방식으로 데이터 처리하기 (KMeansExample)</a> 를 참조합니다.
### CSV 결과 파일 보기 (차트)
CSV 파일 형식일 경우, 파일이름 옆에 나타나는 차트 보기 버튼을 클릭하면 다음과 같은 팝업창이 나타납니다. 오른쪽 "File list" 창에서 파일명을 클릭한 후 구분자 등을 입력하고 "OK" 버튼을 클릭하면 데이터를 확인할 수 있습니다.
![Repository](./images/2.3.1_chart.png)
"Statistics" 버튼을 클릭하여 통계 정보를 볼 수 있습니다.
![Repository](./images/2.3.1_chart2.png)
"Charts" 버튼을 클릭하여 그래프를 그려볼 수 있습니다.
![Repository](./images/2.3.1_chart3.png)
### TEXT 결과 파일 보기
파일이름 옆에 나타나는 텍스트 보기 버튼을 클릭하면 파일의 내용을 보여주는 창이 팝업됩니다. 화면 우측에서 파일명을 선택하고 최대로 보고자 하는 사이즈 (Max Length) 를 바이트 단위로 입력합니다. 디폴트로 1000 바이트가 설정되어 있습니다.
![Repository](images/2.3.1_text.png)
### 파일 비교
두 개의 파일을 동시에 띄워서 비교할 때 사용합니다.
파일이름 옆에 나타나는 파일 비교 버튼을 클릭합니다. 화면 아래쪽에 선택된 파일명이 나타납니다. 잘못 선택한 경우 x 버튼을 클릭하여 삭제합니다.
![Repository](./images/2.3.1_Compare1.png)
두 번째 파일이 있는 곳으로 디렉토리를 옮긴 후, 파일이름 옆에 나타나는 파일 비교 버튼을 클릭합니다. 잘못 선택한 경우 x 버튼을 클릭하여 삭제합니다. 두 개의 파일이 모두 선택된 경우 "Compare" 버튼이 나타납니다.
![Repository](./images/2.3.1_Compare2.png)
"Compare" 버튼을 클릭하면 아래와 같은 팝업창이 나타나며, **파일 보기** 와 동일하게 사용합니다.
![Repository](./images/2.3.1_Compare3.png)
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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