NDAP Sandbox 설치

-
1. NDAP Sandbox 설치
NDAP Sandbox 실습을 위해서는 NDAP Sandbox 설치를 필요로 합니다. NDAP Sandbox의 설치 방법에 대해 설명합니다.
1.1. NDAP Sandbox 설치 준비
• Download the NDAP Sandbox Image(홈페이지에서 다운로드)
• Install Oracle VirtualBox Virtualbox Ofiicial Site1
• 시스템 요구사항을 충족하는 컴퓨터
1.2. Sandbox 설치
NDAP Sandbox 가상 이미지를 VirtualBox에서 불러 옵니다. 아래와 같은 방법으로 불러 올 수 있습니다.
• 다운로드 받은 NDAP Sandbox 이미지를 더블클릭합니다.
• VirtualBox 메인 메뉴에서 파일 -> 가상시스템 가져오기를 선택합니다. 다운로드 받은 NDAP Sandbox 이미지를 선택하고 다음으로 진행합니다.
아래와 같은 화면을 확인 하실수 있습니다.
https://www.virtualbox.org/
"가져오기" 버튼을 클릭하고, 해당 프로세스가 완료 될때 까지 기다립니다.
1.3. VirtualBox 네트워크 설정
NDAP Sandbox는 Virtualbox 네트워크를 이용하여 접속 합니다. 이를 위해 초기 네트워크 설정을 진행합니다
• Virtualbox 메뉴에서 "파일 - 환경설정 "을 클릭합니다.
• 환경설정에서 " 네트워크 - 호스트 전용 네트워크 "를 클릭합니다.
• 리스트에서 "vboxnet0"을 클릭 후 편집(드라이버 아이콘)을 클릭합니다.
• 편집 메뉴에서 "IPv4" 항목의 값을 "10.10.10.1"로 변경합니다
• "OK"를 눌러 변경사항을 저장합니다. 이 후 Virtualbox 메인으로 돌아갑니다.
1.4. NDAP Sandbox 실행하기
이미지 가져오기가 완료되면 NDAP Sandbox를 선택하고 VirtualBox메뉴에서 "시작"을 클릭하여 샌드 박스를 시작 할 수 있습니다.
콘솔 창이 열리면, 부팅 프로세스가 표시됩니다. 가상 시스템이 완전히 부팅되면 Sandbox 사용을 시작할 수 있습니다
1.5. 초기 설정
NDAP Sandbox 초기 설정은, 최초 설치 후 한번만 진행 하시면 됩니다.
1. NDAP Sandbox 가상 시스템에 로그인합니다.
NDAP Sandbox Guest OS 계정 정보는 다음과 같습니다.
• username : root
• password : vagrant

2. NDAP Sandbox를 사용하기 위해서는 패키지 설치를 필요로 합니다. 필요한 패키지는 아래와 같습니다.
• MariaDB-server
• ansible
NDAP Sandbox 가상 시스템에서 다음 명령어를 입력합니다.
/root/run-first.sh
Install 확인 메시지가 보이면 y를 입력하십시오.

3. NDAP 실행
NDAP Sandbox 가상 시스템에서 다음 명령어를 입력합니다.
/root/startup-ndap.sh
Install 확인 메시지가 보이면 y를 입력하십시오.

다음과 같이 failed가 없으면 NDAP이 실행 되었습니다.

4. NDAP 실행 라이센스 적용
로컬머신의 브라우저에서 아래와 같은 주소로 접속할 수 있습니다.
http://10.10.10.11:8080/ndap

5. NDAP 로그인
라이센스 입력 후 NDAP UI에 접속하게 되면 로그인 화면을 보실 수 있습니다. 아래 정보를 이용해 NDAP에 로그인 하십시오.
• ID : admin
PASSWORD : admin

2. 실습 시나리오
NDAP에서 Data Transfer를 이용해 Apache access log를 수집하고, Apache Hive에서 SQL 쿼리를 이용해 데이터를 분석합니다. 분석된 데이터를 Data Transfer을 이용해 외부 RDB로 내보낼 것입니다. 이러한 일련의 과정을 Workflow로 작성하여 실행해 보도록 하겠습니다.
1. 어떤 서버의 access_log가 “/data1/collect/access_log" 이 경로에 쌓이고있다. (일별 파일 생성: access_log.yyyy-MM-dd)
2. NDAP이 매일 2:00 AM 에 -1일의 로그를 수집한다. (File to Hive)
3. 수집이 완료되면 해당 일자의 user별 access 수를 count하여 저장한다. 이 집계데이터를 "DW(Data Warehouse) 데이터"라 칭한다.
4. DW 데이터 집계가 완료되면 외부 RDB의 Table에 해당 데이터를 export 한다.

3. 권한 및 사용자 설정
실습의 편의를 위해 모든 실습은 admin으로 진행합니다.
데이터 수집하기(File to Hive)

-
1. 학습목표
외부 서버에서 소스 파일을 NDAP으로 import 하여 hive에 적재하는 방법을 학습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. Source에 대한 Connection 생성
2. Target Hive Table 생성
3. Import Job 생성
4. Import Job 실행 및 결과 확인
2. Source에 대한 Connection 생성
NDAP이 다른 서버 또는 Database에 연결하기 위해서는 Connection 정보 설정을 필요로 합니다.
NDAP Sandbox의 샘플데이터는 가상시스템 내에 있으므로, NDAP Sandbox 서버로의 연결을 다음의 순서에 따라 생성합니다.
1. 상단메뉴의 Data Transfer에 마우스를 올린 후 나타나는 하단 메뉴 중 Connections를 클릭합니다.
2. 우측 상단의 Create Connection 버튼을 클릭합니다.
3. 다음의 정보를 입력하여 SSH로 대상 서버에 연결하는 Connection을 생성합니다.
• Connection Type : SSH
• Name : accessLog
• Host : 10.10.10.11
• Port : 22
• Authentication : by Password
• User Name : root
• Password : vagrant
4. 테스트가 성공하면 Connection이 생성됩니다.
3. Target Hive Table 생성
수집한 데이터를 적재할 테이블을 생성합니다.
3.1 Target Hive Table 생성
1. 상단메뉴의 Workbench를 클릭합니다
2. 화면 좌측 하위 메뉴 중 SCHEMAS아래 드롭박스 우측의
버튼을 클릭하여 메뉴를 표시합니다.
3. 나타난 메뉴 중 "Create Database"를 선택합니다. 버튼을 클릭하여 메뉴를 표시합니다.
4. 메인 화면에서 데이터베이스의 이름을 입력하고 Create 버튼을 클릭합니다.
이 실습에서는 데이터베이스의 이름으로 practice 를 사용합니다.
CREATE DATABASE practice;
3.2. Target Table 생성
HQL(Hive Query)를 이용하거나 NDAP UI를 이용해 생성할 수 있습이다. 아래 2가지 방법중 하나만 실행하십시오.
• HQL(Hive Query)로 Table 생성하기
source data의 schema를 확인하여 target table을 생성합니다. (schema : practice) Workbench 메뉴의 Worksheet에서 다음의 HQL을 입력하고
버튼을 클릭합니다.
CREATE TABLE `practice`.`access_log` (
remote_addr STRING
,ident_key STRING
,users STRING
,access_time STRING
,url STRING
,status STRING
,size INT
,reference STRING
,user_agent STRING
)
Query를 작성한 화면은 아래와 같습니다.
좌측 SCHEMAS 메뉴에서 Refresh를 선택하여 새로 갱신한 후, 하단의 Tables에 새로 생성한 테이블이 나타나는지 확인합니다.
• NDAP UI로 Table 생성하기
1. 좌측 Workbench 하위 메뉴 중 SCHEMAS아래 드롭박스 우측의
버튼을 클릭하여 메뉴
를 표시합니다.
2. 나타난 메뉴에서 Create Table 항목을 클릭합니다.
3. 각 항목을 입력하고 Create 버튼을 클릭합니다.
• Database : practice
• Table Name : access_log
• Type/Storage : Managed/HDFS
• Columns
• NAME : TYPE
• remote_addr : STRING
• ident_key : STRING
• users : STRING
• access_time : STRING
• url : STRING
• status : STRING
• size : INT
• reference : STRING
• user_agent : STRING

4. Import Job 생성
Import job을 통해 외부 데이터를 NDAP내의 특정위치로 적재할 수 있습니다. 이번 예제에서는 외부 서버에 있는 log파일을 NDAP 내의 hive table로 적재합니다.
1. Data Transfer 메뉴에 마우스를 올립니다.
2. 나타나는 하단 메뉴 중 Import Jobs를 클릭합니다.
3. 우측 상단의 Create Import Job 버튼을 클릭합니다.
4. 다음의 항목을 입력합니다.
• Name : Import-access_log
• Job Type : Files to Hive
• Target Database : practice
• Target Table : access_log
• Truncate the table before import : unchecked
Target Table에 결과를 계속 누적 저장 할 것이므로 unchecked를 선택합니다.
• Connection : SSH-accessLog
• Source type : Files
• Path : /data1/collect/access_log
• Common - Exclude files : unchecked
• Common - Allow duplicated files : unchecked
• 이미 import한 파일은 제외하고 추가된 파일만 import할 것이므로 unchecked 합니다.
• File Format : Regular Expression
• Regular Expression : Access Log
새로운 정규표현식을 추가하려면, Administration > Regular Expressions 에 신규로 등록하여 사용할 수 있습니다.
5. 우측 하단의 "Get Preview Data"를 클릭하여 미리보기를 합니다.
6. 하단의 Create 버튼을 클릭하여 Import Job을 생성합니다.
생성된 Import Job
5. Target Hive Table 생성
5.1. Import Job 실행
Data Transfer - Import Jobs를 선택한 후 목록에서 생성한 Job(NAME: access_log)의 Run버튼을 클릭합니다.

5.2. Import Job 실행
1. Running: 정상 수행 중이라면 실행 중 아이콘이 노출되며 실행이 끝날 때까지 지속됩니다.
2. Succeeded: Job 상태가 Succeeded로 종료되면 정상 수행되었습니다.
Reponse에 있는 Rows를 확인합니다. Rows는 Source에서 Target Table(access_log 테이블)에 적재한 데이터의 건수를 의미합니다.

5.3. Import Job 결과 확인
Worbench 좌측 메뉴에서 Target Table(access_log) 테이블을 클릭한 후 'Preview'를 선택하여 데이터가 적재 되었는지 확인합니다.
데이터 수집하기 (Database to Hive)

-
1. 학습목표
외부 RDB에서 데이터를 NDAP으로 import 하여 hive에 적재하는 과정을 학습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. DB Connection 생성
2. 원본 데이터 준비
3. Target Hive Table 생성
4. Import Job 생성
5. Import Job 실행 및 결과 확인
2. DB Connection 생성
데이터가 있는 DB로의 연결을 다음의 순서에 따라 생성합니다. 본 실습에서는 MySQL을 대상으로 실습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. 상단메뉴의 Data Transfer에 마우스를 올린 후 Connections를 선택합니다.
2. 우측 상단의 Create Connection 버튼을 클릭합니다.
3. 다음의 정보를 입력하여 대상 서버로 Database Connection을 생성합니다.
• Connection Type : Database
• Name : DBCon_Tutorial
• JDBC URL : jdbc:mysql://10.10.10.11/NDAPTutorial
• User Name : ndap
• Password : ndap
• Regular Expression : Access Log
4. Connection 테스트가 성공하면 Connection이 생성됩니다.
3. 원본 데이터 준비(External table로 source table 생성)
NDAP Sandbox에는 외부 DB에 원본 데이터가 준비되어 있습니다. 대상 테이블을 external table로 NDAP내에 생성해두면, 스키마 및 데이터 확인이 용이합니다. 또한, 생성된 external table은 Preview 메뉴에서 데이터 미리보기가 가능합니다.
1. 상단메뉴의 Workbench를 클릭합니다.
2. 좌측 Workbench 하위 메뉴 중 SCHEMAS아래 드롭박스 우측의
버튼을 클릭하여 메뉴를 표시합니다
3. 나타난 메뉴에서 Create Table 항목을 클릭합니다.
4. 다음의 정보를 사용하여 external table을 생성합니다.
• Database : practice
• Table Name : tutorial_externalJDBC
• Type/storage : External / JDBC
• Connection : DBCon_Tutorial
• Source Table : cdr_tutorial
• Get Columns 를 클릭하여 컬럼 매핑을 확인합니다.
5. 좌측 하단의 Create 버튼을 클릭하여 External table을 생성합니다.
4. Target Hive Table 생성
수집한 데이터를 적재할 테이블을 생성합니다.
상단 메뉴의 Workbench 클릭 한 후 Worksheet에서 아래 HQL 쿼리를 실행하여 테이블을 생성합니다.
CREATE TABLE practice.cdr_hive (
out_ctn BIGINT
,in_ctn BIGINT
,out_cell INT
,in_cell INT
,start_time TIMESTAMP
,call_time DOUBLE
,end_time TIMESTAMP
,close_type SMALLINT
,ref_ctn STRING
,ref_key STRING
,ref_code STRING
,ref_temp STRING
,num_check BOOLEAN
,char_check STRING
,str_check STRING
)
STORED AS SEQUENCEFILE
TBLPROPERTIES (
"ndap.table.storageType"="HDFS"
)
5. 좌측 하단의 Create 버튼을 클릭하여 External table을 생성합니다.
5. Import Job 생성
1. Data Transfer 메뉴에 마우스를 올립니다.
2. 나타나는 하단 메뉴 중 Import Jobs를 클릭합니다.
3. 우측 상단의 Create Import Job 버튼을 클릭합니다.
4. 다음의 정보를 사용합니다.
• Name : Import-Database-TO-Hive-CDR
• Job Type : Database to Hive(JDBC)
• Target Database : practice
• Target Table : cdr_hive
• truncate the table before import : checked
• Connection : DATABASE - DBCon_Tutorial
• Select SQL :
Select * from cdr_Tutorial where str_check='true';
5. Get Preview Data를 클릭하고 column 매핑을 확인합니다.
6. 하단의 Create 버튼을 클릭하여 Import Job을 생성합니다.
6. Import Job 실행 및 결과 확인
DataTransfer > Import Jobs 선택한 후 우측의 목록에서 앞서 생성한 Import-Database-TO-Hive-CDR 작업을 실행합니다.
간단한 확인 방법으로 전체 건수를 비교해본다.
데이터 분석

-
1. 학습목표
적재한 데이터를 NDAP을 활용하여 가공하는 방법을 학습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. Source 테이블 생성 및 데이터 Import
2. Target 테이블 생성
3. 분석 질의 만들기
4. 결과를 집계 테이블에 저장하기
소스 데이터를 분석하여 그 결과를 저장하는 과정을 실습하며, 본 실습 시나리오에서는 간단한 예제로 apache access log를 사용하여 사용자별, 일별 접속 횟수를 분석합니다.
2. Target 테이블 생성
결과를 담을 테이블을 생성합니다. 상단 메뉴의 Workbench 클릭한 후 Worksheet에서 다음의 HQL을 입력하고
버튼을 클릭합니다.
CREATE TABLE practice.dw_access_log_ndap_daily (
users string,
access_date string,
access_count int
)
3. 분석 질의 만들기
3.1. Workbench 에서 분석 쿼리 만들기
쿼리를 작성하고 실행하여 결과를 확인해보면서, 원하는 결과가 나오도록 쿼리를 보완합니다.

3.2. Sample 1: 특정 날짜에 이전 집계 쿼리
SELECT users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') AS
access_date, count(*) AS access_count
FROM practice.access_log
WHERE from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') <='20140717'
GROUP BY users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd')
오늘 것부터 schedule로 실행할 계획이므로 어제 데이터까지 가져온다.

3.3. Sample 2: 특정 날짜 대한 쿼리
SELECT users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') AS
access_date, count(*) AS access_count
FROM practice.access_log
WHERE from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') = '20140717'
GROUP BY users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd')
3.4. 수행 결과 예
3.5. 검증된 쿼리 저장 해두기
• Query Editor 하단 ★(Save the queries to a snippet.) 아이콘 클릭.
• “일별 사용자별 접속수 집계 select” 라는 이름으로 저장.

4. 결과를 집계테이블에 저장하기
예상하지 못한 장애 발생 시 동일 쿼리를 중복 수행해야 될 수도 있으므로, INSERT OVERWRITE TABLE 구문을 이용하여 쿼리 결과를 insert 합니다.
INSERT OVERWRITE TABLE dw_access_log_ndap_daily
SELECT `users`, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') AS
access_date, count(*) AS count
FROM practice.access_log
WHERE from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') = '20140717'
GROUP BY users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd')
2014년 7월 17일 데이터만 가져옵니다.
insert 구문도 재사용할 수 있으니 snippets에 저장해둡니다
• Query Editor 하단 ★(Save the queries to a snippet.) 아이콘 클릭합니다.
• "일별 사용자별 접속수 집계 insert" 라는 이름으로 저장합니다.
외부 RDB로 데이터 내보내기

-
1. 학습목표
가공된 데이터를 외부 RDB로 export 하는 방법을 학습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. 외부 DB의 Target 테이블 생성
2. Target 테이블에 대한 Connection 생성
3. Export Job 생성
4. Export Job 실행
2. 외부 DB의 Target 테이블 생성
보고서 생성을 위해 외부 서버로 해당 데이터를 전송한다고 가정합니다.

3. Target 테이블에 대한 Connection 생성
1. 상단메뉴의 Data Transfer에 마우스를 올린 후 나타나는 하단 메뉴 중 Connections를 클릭합니다.
2. 우측 상단의 Create Connection 버튼을 클릭합니다.
3. 다음의 정보를 사용하여 Export에 사용할 Connection을 생성합니다.
• Connection Type : Database
• Name : dw_mysql_db
• JDBC URL : jdbc:mysql://10.10.10.11/NDAPTutorial
• User Name : ndap
• Password : ndap
• Driver class : org.mariadb.jdbc.Driver

4. Export Job 생성
1. 상단메뉴의 Data Transfer에 마우스를 올린 후 나타나는 하단 메뉴 중 Export Job 클릭합니다.
2. 우측 상단의 Create Export Job 버튼을 클릭합니다.
3. 다음의 정보를 입력합니다.
• Name : export_daily_log
• Database : practice
• Select HQL :
SELECT users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss
Z",'en'),'yyyyMMdd') AS access_date, count(*) AS access_count FROM practice.access_log WHERE
from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd')
<='20140717' GROUP BY users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss
Z",'en'),'yyyyMMdd')
• Connection : DATABASE - dw_mysql_db
• Target Table : dw_access_log_daily
• Truncate the table before export : unchecked
이 시나리오에서는 매일 추가 분에 대해서만 export 하므로 체크하지 않습니다.
4. Get Preview Data 버튼을 클릭하여 데이터를 확인합니다.
5. "Create" 버튼을 눌러 Export Job을 생성합니다.
5. Export Job 실행
1. 상단메뉴의 Data Transfer에 마우스를 올린 후 나타나는 하단 메뉴 중 Export Job 클릭합니다.
2. 목록에서 앞서 생성한 export_daily_log 작업의 Run 버튼을 클릭하여 작업을 실행합니다.
3. 성공적으로 수행되면 다음과 같이 Export된 행의 개수를 알려줍니다.
Workflow 작성

-
1. 학습 목표
지금까지 NDAP을 이용하여 data 수집 - 처리 - 저장을 단독으로 실행 하였습니다. Workflow는 동작 순서를 지정하여 작업의 묶을 수 있습니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. Workflow Project 및 Worflow 생성
2. Workflow Node 생성
3. workflow 실행 및 검증
2. Workflow Project 및 Worflow 생성
일련의 작업 묶음인 Workflow는 Project 단위로 관리 할 수 있습니다. Workflow Project다와 Workflow를 생성합니다.
1. 상단 메뉴의 Workflow에 마우스를 올린 후, Workflows를 클릭합니다.
2. 좌측 Projects의 옆에 "+"버튼을 클릭합니다.
3. Project Name을 입력 한 후 엔터를 누릅니다.
Project Name : NDAP-Tutorial
4. 좌측 Porject 리스트에서 생성한 NDAP-Tutorial Project를 클릭합니다.
5. 우측에 있는 "Create Workflow"를 클릭합니다.
6. Worflow name을 입력 한 후 엔터를 누릅니다.
Project Name : access_log

3. Workflow Node 생성
앞서 실습한 수집(ImportJob), 분석(HIve Query), 저장(Export Job)을 Workflow에 작성합니다. access_log Workflow에 Node를 생성합니다.
3.1. Import Job Node 생성
1. Start Node에 마우스를 올린 후 나타난 메뉴에서 Action을 클릭합니다.
2. Node 속성을 아래와 같이 설정합니다.
• Node Type : Import Job
• Node Name : collectAccessLog
• Import Job : Import-access_log
3.2. Hive Node 생성
1. 앞서 작성한 collectAccessLog(Import Job) Node에 마우스를 올린 후 나타난 메뉴에서 Action을 클릭합니다.
2. Node 속성을 아래와 같이 설정합니다.
• Node Type : Hive Query
• Node Name : CountAccessDaily
• Hive Query :
SELECT users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd') AS
access_date, count(*) AS access_count
FROM practice.access_log
WHERE from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd')
<='20140717'
GROUP BY users, from_unixtime(unix_timestamp_lang(access_time, "dd/MMM/yyyy:HH:mm:ss Z",'en'),'yyyyMMdd')

3.3. Export node 생성
1. 앞서 작성한 CountAccessDaily(Hive Query) Node에 마우스를 올린 후 나타난 메뉴에서 Action을 클릭합니다.
2. Node 속성을 아래와 같이 설정합니다.
• Node Type : Export Job
• Node Name : exportAccessLog
• Export Job : export_daily_log
3. exportAccessLog Node의 아래 쪽 반원에서 드래그-앤-드롭 한뒤 END Node 반원에 연결 시킵니다.
3. Workflow 실행 및 검증
• 우측 상단의 "Run" 클릭합니다.
• 각 단계가 모두 정상으로 실행되는지 Workflow - Workflow History 페이지의 output을 통해 확인합니다.
• 비 정상 실행시 "Show Logs"에서 로그 확인 후 적절한 조치를 취합니다.
Workflow 실행 결과로 발생하는 집계데이터가 정상적으로 export 되었는지 대상 RDB에서 확인합니다.
1. Virtualbox의 NDAP Sandbox 가상머신에서 다음 명령을 입력합니다.
mysql -u ndap -p
2. 비밀번호를 입력합니다.
Password : ndap
3. 다음 명령어를 순차적으로 입력합니다.
use NDAPTutorial;
select * from dw_access_log_daily limit 20;
4. Workflow 실행 결과로 발생하는 집계데이터가 정상적으로 export 되었는지 확인합니다.
Schedule 생성

-
1. 학습 목표
생성한 Workflow를 원하는 주기로 반복 실행하는 방법을 학습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. Schedule 생성
2. Schedule 생성
Schedule 생성은 Workflow 메뉴의 Schedules에서 가능합니다.
1. 상단 메뉴의 Workflow에 마우스를 올린 후, Schedules를 클릭합니다.
2. 우측 상단의 Create Schedule 버튼을 클릭합니다.
3. 다음의 정보를 사용하여 Schedule을 생성하십시오.
• Name : countAccessLog
• Validity :
• from : 2015-01-28 03:00
• until : 2015-02-28 04:00
• Frequency : 1 day
• Execute : Workflow, access_log
4. Schedule은 등록 즉시 바로 적용됩니다.
Import/Export, Workflow 장애 발생시 대 처방안

-
1. 학습 목표
수집-처리-추출 과정에 문제 발생 시 원인파악 방법을 학습합니다.
이 실습은 다음과 같은 순서로 진행됩니다.
1. Import/Export Job 실행 상태 및 로그 확인
2. Query 실행 상태 및 로그 확인
3. Workflow 상태 및 로그 확인
2. Import/Export Job 실행 상태 및 로그 확인
2.1. Running이 길게 지속되는 경우.
• 관련 MR Job의 상세Task를 확인하여 정상 동작 중인지 확인한다.
MR Job을 확인하기 위해서 YARN ResourceManager WebUI에 접속합니다. 접속주소는 http://10.10.10.11:8088 입니다.
• Tracking UI를 클릭하여 상세 정보를 확인합니다.
• 각 Task는 Attempt Type의 링크를 클릭하여 목록을 볼 수 있습니다.
• Task 목록에서 Logs 열의 링크를 클릭하여 해당 태스크의 로그를 확인할 수 있습니다.
• 문제를 해결한 후 재실행합니다.
3. Query 실행 상태 및 로그 확인
• Workbench > History 에서 Query Editor에서 실행한 쿼리의 이력과 상태를 확인할 수 있습니다.
• "Failed" 인 경우, Query Result에 에러 메시지가 노출되므로, 참고하여 쿼리를 수정합니다.
• "Running"이 너무 오래 지속되는 경우, MR Job을 확인하여 Task Log를 보면 진행 상태를 상세히 확인할 수 있습니다.
4. Workflow 상태 및 로그 확인
4.1. 장시간 Running or Failed 로그 확인법
• Workflows > History에서 확인이 가능합니다.
• Failed, Running 상태에 대해서는 "Show Logs"로 로그를 확인하여 문제가 있는지 파악해야 합니다.
4.2. Hive node 의 query 오류 발생에 대한 대응
Workflow 내 hive node에서 query 오류가 발생하면 다음과 같이 해당 노드에서 실패합니다.
[Operate] > [Edit Workflow]를 클리릭하여 해당 워크플로우로 갑니다.
이 경우 hive node의 쿼리를 수정하여 해당 노드부터 재실행합니다.
컨설팅 문의