정의
pentaho 는 모든 작업은 기본적으로 spoon.sh 이라는 client tool 에서 시작된다. 사용자가 execution 서버를 추가하는 경우
해당 작업을 넘길 수 있다.
이러한 서버를 carte 서버라고 한다. 서버의 구분은 다음과 같이 된다.
- master server
- slave server
- carte cluster
작업이 많지 않다면 master 만 사용하여 구축을 진행 한다.
spoon 에서 구분할때는 모든 서버를 '슬레이브 서버' 로 통칭한다.
설치
jdk 8
pdi 9.1 기준 jdk 11 에서 정상동작하지 않음
설정
모든 메뉴얼에는 pentsho server repository 에 대한 기준으로 설명되어 있어 현재 설정인 database repository 와 조금 다르게 느껴지고
확인해할 사항이 많이 있다.
slave-config.xml
모든 설정은 아래의 <slave_config> 태그 안에 정의 해야 한다.
<slave_config>
... ...
</slave_config>
master 설정
<slaveserver>
<name>Master</name>
<hostname>10.1.5.19</hostname>
<port>8080</port>
<username>admin</username>
<password>password</password>
<master>Y</master>
</slaveserver>
slave 설정
slave 설정시에는 master의 설정을 같이 기술해 준다.
<slaveserver>
<name>Slave01</name>
<hostname>localhost</hostname>
<port>9081</port>
</slaveserver>
<masters>
<slaveserver>
<name>master1</name>
<hostname>localhost</hostname>
<port>9080</port>
<!--<webAppName>pentaho-di</webAppName>-->
<username>admin</username>
<password>password</password>
<master>Y</master>
</slaveserver>
</masters>
repository 설정
<!-- 아래 내용을 $HOME/.kettle/repository.xml 에 기술해도 된다. -->
<repositories>
<connection>
<name>postgres19</name>
<server>10.1.5.19</server>
<type>POSTGRESQL</type>
<access>Native</access>
<database>postgres</database>
<port>5432</port>
<username>bos</username>
<password>Encrypted 2be98afc86aa7f2e4cb79ce10be90a0c9</password>
<servername/>
<data_tablespace/>
<index_tablespace/>
<attributes>
<attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
<attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
<attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
<attribute><code>PORT_NUMBER</code><attribute>5432</attribute></attribute>
<attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute>
<attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
<attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
<repository>
<id>KettleDatabaseRepository</id>
<name>postgres</name>
<description>Database repository</description>
<is_default>true</is_default>
<connection>postgres19</connection>
</repository>
</repositories>
options
<max_log_lines>10000</max_log_lines>
<max_log_timeout_minutes>1440</max_log_timeout_minutes>
<object_timeout_minutes>1440</object_timeout_minutes>
master 전체 설정
<slave_config>
<repositories>
<connection>
<name>postgres19</name>
<server>10.1.5.19</server>
<type>POSTGRESQL</type>
<access>Native</access>
<database>postgres</database>
<port>5432</port>
<username>bos</username>
<password>Encrypted 2be98afc86aa7f2e4cb79ce10be90a0c9</password>
<servername/>
<data_tablespace/>
<index_tablespace/>
<attributes>
<attribute><code>FORCE_IDENTIFIERS_TO_LOWERCASE</code><attribute>N</attribute></attribute>
<attribute><code>FORCE_IDENTIFIERS_TO_UPPERCASE</code><attribute>N</attribute></attribute>
<attribute><code>IS_CLUSTERED</code><attribute>N</attribute></attribute>
<attribute><code>PORT_NUMBER</code><attribute>5432</attribute></attribute>
<attribute><code>PRESERVE_RESERVED_WORD_CASE</code><attribute>Y</attribute></attribute>
<attribute><code>QUOTE_ALL_FIELDS</code><attribute>N</attribute></attribute>
<attribute><code>SUPPORTS_BOOLEAN_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>SUPPORTS_TIMESTAMP_DATA_TYPE</code><attribute>Y</attribute></attribute>
<attribute><code>USE_POOLING</code><attribute>N</attribute></attribute>
</attributes>
</connection>
<repository>
<id>KettleDatabaseRepository</id>
<name>postgres</name>
<description>Database repository</description>
<is_default>true</is_default>
<connection>postgres19</connection>
</repository>
</repositories>
<slaveserver>
<name>Master</name>
<hostname>10.1.5.19</hostname>
<port>8080</port>
<username>admin</username>
<password>password</password>
<master>Y</master>
</slaveserver>
<max_log_lines>10000</max_log_lines>
<max_log_timeout_minutes>1440</max_log_timeout_minutes>
<object_timeout_minutes>1440</object_timeout_minutes>
</slave_config>
실행하기
# default
# $HOME/.kettle/repository.xml 에 설정을 잘하더라도
# 사용자 및 암호 설정등이 있어서 어떤 경우에 쓰이는지 잘모르겠음
carte.sh 192.168.0.1 8080
# config 파일 사용
carte.sh master-config.xml
webgtk
# 실행을 하면 webkitgtk-1.0 warning 이 나오지만
# 설치할 수 없으며, 없어도 문제가 없다고 판단됨
# spoon.sh 에 export SKIP_WEBKITGTK_CHECK=1 설정시 skip 가능
#######################################################################
WARNING: no libwebkitgtk-1.0 detected, some features will be unavailable
Consider installing the package with apt-get or yum.
e.g. 'sudo apt-get install libwebkitgtk-1.0-0'
#######################################################################
reference
- https://help.pentaho.com/Documentation/9.1/Products/Use_Carte_Clusters
- https://wiki.pentaho.com/display/EAI/Carte+Configuration
- https://help.pentaho.com/Documentation/5.3/0P0/0U0/050/060/010
todo
error
실행시 carte 서버에서 다음과 같이 postgres repository를 찾지 못하는 오류가 발생한다. postgres 는 database repository 의 이름이다.
그 이후 repository에서 데이터를 가져와 실행을 했고 spoon 에서도 그렇게 반응을 보인다.
2020/11/23 05:25:05 - Carte - Installing timer to purge stale objects after 1440 minutes.
2020/11/23 05:25:05 - Carte - Created listener for webserver @ address : 10.1.5.19:8080
2020/11/23 05:25:11 - I couldn't find the repository with name 'postgres'
2020/11/23 05:25:11 - Transformation 1 - Dispatching started for transformation [Transformation 1]
날짜
시작 시간이 client, server 도 아닌 ... 제3의 시간? |
server 의 timezone 을 변경해서 해결
이전에는 왜 server 시간과도 달랐는지는 잘 모르겠음
'ETL > Pentaho' 카테고리의 다른 글
Pentaho 구조 및 특징 (0) | 2021.10.01 |
---|---|
Pentaho server (0) | 2021.10.01 |
Pentaho pan (0) | 2021.10.01 |
Pentaho kitchen (0) | 2021.10.01 |