Install

설치는 기본 가이드 대로 하면 쉽습니다. 하지만, 싱글은 yaml을 쓰지 않고, 분산일때 yaml 쓰기때문에 설정을 자신의 환경에 맞게 고쳐야 합니다.

Config

Config에 대한 가이드는 아래 경로에 있습니다. https://github.com/metatron-app/metatron-discovery/blob/0dca7449f19826d13a3b2b823ac4b0dd46d5305f/discovery-server/src/main/asciidoc/application-config-guide.adoc

metatron 응용 프로그램 구성은 yaml 형식으로 구성되어 있습니다. 배포 바이너리에서 제공하는 “application-config.templete.yaml”파일이 예제로 제공되며 아래 정보를 기반으로 세부 설정을 지정할 수 있습니다.

common-properties

Metatron Discovery의 일반적인 속성은 Spring Boot 구성에 따라 다릅니다. 따라서 추가 설정이 필요한 경우 https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/html/common-application-properties.html[link]를 참조하시기 바랍니다.

source, yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 spring:
   http:
     multipart: # Used to adjust the maximum size when uploading files
       max-file-size: 300Mb
       max-request-size: 300Mb
   # The default value is set according to the setting of the METATRON_DB_TYPE value(h2 or mysql) in metatron-env.sh.
   # If you want additional configuration, it is recommended to manage only connection pool or jpa related properties.
   # If you want to set up a new data source type, you can change it from the 'platform' property.
   datasource:
     platform: mysql
     driver-class-name: com.mysql.jdbc.Driver
     url: jdbc:mysql://localhost:3306/polaris_v2?useUnicode=true&characterEncoding=utf8
     username: polaris
     password: polaris
     # Below is the connection pool related configuration.
     max-active: 50
     max-idle: 10
     min-idle: 10
     initial-size: 10
     test-on-borrow: false
     test-on-return: false
     test-while-idle: true
     max-wait: 1000
     validation-query: SELECT 1
   jpa:
     show-sql: false
     properties:
       hibernate:
         jdbc:
           batch_size: 25
         order_inserts: true
         order_updates: true
         dialect: org.hibernate.dialect.MySQL5InnoDBDialect
 server:
   port: 8180 # If you want to change the port
   tomcat:
     ajp: # You can allow ajp connection with the following settings.
       enabled: false
       protocol: AJP/1.3
       port: 8280
 logging:
   # If you want to set up a separate log, create a separate file to specify the path to the file.
   # Please refer to https://logback.qos.ch/manual/configuration.html
   config: classpath:logback-console.xml
   mail: # Mail(SMTP) server properties
     host: localhost
     port: 25
     username:
     password:

app-properties

어플리케이션 관련 속성 앞에는 “polaris”가 붙고 도메인별로 분류됩니다.

source, yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 polaris:
   format:
     # Specify a datetime format that is recommended when performing validation on a column of type timestamp.
     datetimes:
       - 'yy-MM-dd'
       - 'dd/MM/yyyy'
   storage:
     # The stagedb concept is internally used as an intermediary processing medium when processing large amounts of data
     # when ingesting or transforming data in an application. We are using hive and specify the information related to it.
     stagedb:
       hostname: localhost # for hiveserver
       port: 10000         # for hiveserver
       username: hive      # for hiveserver
       password: hive      # for hiveserver
       metastore: # specify additional information when you want to get more information such as partitions.
         uri: thrift://localhost:9083
         jdbc:
           url: jdbc:mysql://metatron-web-01:3306/hive
           username: hive
           password: hive
   engine:
     # Specify representative access url by engine node, application requires only 3 nodes
     hostname:
       broker: http://localhost:8082
       overlord: http://localhost:8090
       coordinator: http://localhost:8081
     ingestion:
       # Used when forwarding files from an application to an engine cluster when loading local files
       loader:
         remoteType: SSH # "LOCAL" is the default value, but if the engine is configured as a separate cluster, use "SSH" mode for remote communication.
         localBaseDir: ${java.io.tmpdir:-/tmp}
         remoteDir: ${java.io.tmpdir:-/tmp}
         # Specifies the host information where the middle manager node is located.
         hosts:
           middlemanager01: # It must be the hostname recognized by the engine. Refer to the worker hostname on the engine console.
             port: 22
             username: metatron
             password: pem:${METATRON_HOME}/pem/user-metatron.pem # Specify "pem" prefix and pem file location if you use pem file when connecting to remote host
           "[middlemanager.01]": # If the host name contains "." If included, display like this
             port: 22
             username: metatron
             password: metatron_password
     query:
       loader: # Unlike in "ingestion", when downloading query results, it is used to transfer download file generated by engine to application
         remoteType: LOCAL
         localBaseDir: ${java.io.tmpdir:-/tmp}
   datasource:
     ingestion:
       retries: # Retry properties used when checking the status of engine when ingestion
         delay: 3
         maxDelay: 90
         maxDuration : 3600
   mail:                            # Additional information for mail notifications
     admin: admin@metatron.com      # Specify representative manager email
     baseUrl: http://localhost:8180 # Specify connection url for linking metatron contents in mail
   workbench:
     defaultResultSize: 1000        # Row number of results to display by default on the screen
     maxResultSize: 1000000         # The maximum row number of results that a user can specify
     maxFetchSize: 1000             # Fetch size when loading sql results, only applies to supported db library
     tempCSVPath: /tmp              # Specify a directory to temporarily store query results
   dataprep:
     localBaseDir: ${user.home}/dataprep                       # Where uploaded files, local file snapshots, serialized previews are stored
     hadoopConfDir: /etc/hadoop                                # Set $HADOOP_CONF_DIR
     stagingBaseDir: hdfs://localhost:9000/user/hive/dataprep  # Where uploaded files, HDFS file snapshots, files for Hive external tables are stored
     sampling:
       timeout: 20       # Timeout for rule edit sessions
     etl:
       timeout: 36000    # Timeout for generating snapshots
   extensions:
       lnb:                          # Specify the menu to add to the LNB.
         - name: one depth menu      # Specify 1st depth menu name
           parent: ROOT              # Specify "ROOT" to be on the top menu. In the case of "ROOT", it is displayed in the LNB if a lower depth menu exists.
           permissions:
             - PERM_NAME     # Specify a list of PERM_NAME. If not specified, all users can access.
         - name: two depth menu      # Specify 2nd depth menu name
           parent: one depth menu    # Specify the parent menu name including "management" and "administration". If the menu name of the upper depth does not exist, it is not displayed.
           subContents:
             menu name: URL         # Specify the menu name as key and the URL(http://~~) to link to as value.
           permissions:
             - PERM_NAME     # Specify a list of PERM_NAME. If not specified, all users with permissions in the upper depth menu can access.
         - name: Engine Monitoring   # for Engine(Druid) Monitoring
           permissions:
             - PERM_NAME     # Specify a list of PERM_NAME. If not specified, all users with permissions in the upper depth menu can access.