# 계정 생성
root@host> useradd chamomile -d /home/chamomile
# 패스워드 입력
root@host> passwd chamomile
# switch user
chamomile@host> su - chamomile
ulimit 설정 변경
ulimit는 프로세스의 자원 한도를 설정하는 것으로 soft한도와 hard한도 두가지가 있습니다.
soft : 새로운 프로그램을 생성하면 기본으로 적용되는 한도
hard : 소프트한도에서 최대로 늘릴 수 있는 한도
어플리케이션 계정은 최적화를 위하여 해당 설정을 조정한다.
# 현재 chamomile계정의 설정 확인
chamomile@host> ulimit –a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 31147
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 4096
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
위의 경우 리소스 사용이 제약적이므로 배치 실행 시 오류 발생할 가능성이 크므로 아래와 같이 설정을 추가한다. (unlimited 또는 직접 건수 지정)
root@host> vim /etc/security/limits.conf
…
chamomile soft nproc unlimited
chamomile hard nproc unlimited
chamomile soft nofile unlimited
chamomile hard nofile unlimited
…
어플리케이션 설치
배치실행어플리케이션 바이너리 설치 (JDK등은 이미 설치되어있다고 가정하고 설명은 생략한다.)
# 압축파일 해제
chamomile@host> tar -zxvf chamomile-batch-0.0.1-dist.tar.gz
# Symbolic Link 생성
chamomile@host> ln -s ./chamomile-batch-0.0.1 ./chamomile-batch
# 어플리케이션 HOME 이동
chamomile@host> cd ./chamomile-batch
# 기동스크립트 권한 변경
chamomile@host> chmod +x ./application.sh
라이선스 적용
라이선스 파일을 chamomile-batch-0.0.1/conf 폴더에 위치시킨다.
배치실행 데이터베이스 생성 (Mysql/MariaDB)
데이터베이스 별 DDL 스크립트는 배포 binary에 포함되어 있다.
2가지 주제영역의 테이블을 생성해야 한다.
캐모마일 배치실행 어플리케이션 관련 테이블
스프링배치 JobReposiory 관련 테이블
데이터베이스 및 계정 생성
Mysql(MariaDB)는 설치 되어있다고 가정한다.
# 데이터베이스 서버로 sql 디렉터리 파일 전송(DDL스크립트 및 SQL)
chamomile@host> scp -rp ./sql root@[MYSQL서버]:./
# Mysql 데이터베이스 서버 접속(mysql 계정이 nologin상태인 경우 root로 접속)
chamomile@host> ssh mysql@${mysql 설치서버}
# Mysql 데이터베이스 및 사용자 생성
mysql@host> mysql -u root -p mysql
Mysql>
-- Creating Database
CREATE DATABASE CHAMOMILE;
-- Creating User
INSERT INTO USER
(HOST,USER,PASSWORD, SELECT_PRIV, INSERT_PRIV, UPDATE_PRIV, DELETE_PRIV, CREATE_PRIV, DROP_PRIV, INDEX_PRIV, ALTER_PRIV, SSL_CIPHER,X509_ISSUER,X509_SUBJECT,AUTHENTICATION_STRING)
VALUES
('%', 'chamomile', PASSWORD('[패스워드]'),'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y','','','','');
INSERT INTO DB
(HOST, DB, USER, SELECT_PRIV, INSERT_PRIV, UPDATE_PRIV, DELETE_PRIV, CREATE_PRIV, DROP_PRIV, INDEX_PRIV, ALTER_PRIV)
VALUES
('%', 'chamomile', 'chamomile', 'Y', 'Y', 'Y', 'Y','Y','Y','Y','Y');
flush privileges;
테이블 생성
# 신규 생성 데이터베이스 접속
mysql@host> mysql -u chamomile -p chamomile
# 배치실행 어플리케이션 스키마 생성
Mysql> source ./sql/ddl/chamomile-batch.mysql.sql
# 스프링 배치 스키마 생성
Mysql> source ./sql/spring-batch/spring-batch.mysql.sql
# 초기 테스트 데이터 적재
Mysql> source ./sql/data/chamomile-batch.data.sql
Mysql> source ./sql/test/emp.mysq.sql
배치실행 어플리케이션 설정
데이터베이스 접속정보 설정
chamomile@host> vim ./conf/application.properties
…
# 기본 언어셋 설정 (한국어:ko, 영어:en 디폴드값은 ko)
defaultLocale=ko
# 데이터베이스 아이디 설정(오라클:ORACLE, MariaDB/MySQL: MYSQL, SQLServer: MSSQL, 티베로: TIBERO)
databaseId=MYSQL
# OLTP connection pool
dataSource.oltp.driver=com.mysql.jdbc.Driver
dataSource.oltp.url=jdbc:mysql://[데이터베이스서버]:3306/chamomile
dataSource.oltp.username=[사용자]
dataSource.oltp.password=ENC([패스워드PBE])
dataSource.oltp.initialSize=5
dataSource.oltp.maxActive=10
dataSource.oltp.validationQuery=select 1 from dual
# OLAP connection pool
dataSource.olap.driver=com.mysql.jdbc.Driver
dataSource.olap.url=jdbc:mysql://10.131.7.140:3306/chamomile
dataSource.olap.username=[사용자]
dataSource.olap.password=ENC(([패스워드PBE])
dataSource.olap.initialSize=5
dataSource.olap.maxActive=10
dataSource.olap.validationQuery=select 1 from dual
# BATCH connection pool
dataSource.batch.driver=com.mysql.jdbc.Driver
dataSource.batch.url=jdbc:mysql://[데이터베이스서버]:3306/chamomile
dataSource.batch.username=[사용자]
dataSource.batch.password=ENC([패스워드PBE])
dataSource.batch.initialSize=2
dataSource.batch.maxActive=5
dataSource.batch.validationQuery=select 1 from dual
…
관리자 웹콘솔 포트정보 변경
관리자 웹콘솔의 접속 포트 변경시 아래의 설정파일 변경 후 재기동한다.(기본 6100번 포트로 설정)