# Primeton DI 安装指南
Primeton DI 是数据加工作业的处理引擎,后续简称:DI。
提示:确保各个服务器网络连通正常。
1、DI 内部有两个模块:DI Server 和 DI Client。DI Server 是常驻进程;DI Client 用于与Dolphinscheduler 的 worker
进行通讯,然后将任务下发到 DI Server 执行。
2、单节点部署时,DI 必须和Dolphinscheduler 的 worker 节点
部署在同一台服务器上;
3、集群部署时,可以将多套 DI 部署在多个服务器上;只需要其中一套 DI 和Dolphinscheduler 的 worker 节点
部署在同一台服务器上;
4、Dolphinscheduler 的 PDI_HOME 的配置路径,要配置成 ${Primeton DI安装目录}/diclient 所在路径,如下所示:
export PDI_HOME=${PDI_HOME:-/home/DI/Primeton_DI_7.0.2/diclient}
Dolphinscheduler 的安装配置参见:DolphinScheduler安装指南
# 解压 Primeton DI 介质包,配置 di-server-config.yaml、di-client-config.yaml文件。
- 解压介质包。
mkdir Primeton_DI_7.0.2
tar -xvf Primeton_DI_7.0.2.tar -C Primeton_DI_7.0.2
- 编辑 Primeton_DI_7.0.2/diserver/config/di-server-config.yaml 文件。
vi di-server-config.yaml
修改 cluster-name、member-list、port,如果没有端口冲突可以使用默认值 port: 6000。
hazelcast:
cluster-name: DI
network:
rest-api:
enabled: true
endpoint-groups:
CLUSTER_WRITE:
enabled: true
DATA:
enabled: true
join:
tcp-ip:
enabled: true
member-list:
- 192.168.16.80
port:
auto-increment: true
port-count: 100
port: 6000
properties:
hazelcast.invocation.max.retry.count: 20
hazelcast.tcp.join.port.try.count: 30
hazelcast.logging.type: log4j
hazelcast.operation.generic.thread.count: 50
di.get.server.resouce.frequence: 60000 # 获取Server所在服务器资源频率 单位:毫秒
di.server.job.maxcount: unlimited # 任务运行最大并行数,unlimited:不限制
配置项 | 说明 |
---|---|
cluster-name | 集群名称,默认值是 DI。该值需要和 DI Client 的 di-client-config.yaml 中配置的一样。 |
member-list | DI Server 的 IP,如果是集群,可以配置多个。必须和 DI Client 的 di-client-config.yaml 中 cluster-members中的 IP 一致,建议配置真实 IP,避免配置 127.0.0.1、localhost。 |
port | DI Server 的端口,默认值是 6000。该值需要和 DI Client 的 di-client-config.yaml 中配置的一样。 |
di.get.server.resouce.frequence | 提取 DI Server 所在服务器资源频率 单位:毫秒 |
di.server.job.maxcount | DI Server 任务运行最大并行数,unlimited:不限制 |
- 编辑 Primeton_DI_7.0.2/diserver/config/di-client-config.yaml 文件。
vi di-client-config.yaml
修改 cluster-name、cluster-members。
hazelcast-client:
cluster-name: DI
properties:
hazelcast.logging.type: log4j2
server.cpu.maxusages.threshold: 90
server.memory.maxusages.threshold: 90
server.disk.maxusages.threshold: 90
server.cpu.usage.weight: 50
server.memory.usage.weight: 50
connection-strategy:
connection-retry:
cluster-connect-timeout-millis: 3000
network:
cluster-members:
- 192.168.16.80:6000
配置项 | 说明 |
---|---|
cluster-name | 集群名称,默认值是 DI。该值需要和 DI Server 的 di-server-config.yaml 中配置的一样。 |
hazelcast.logging.type | 日志形式,默认值是 log4j2。 |
server.cpu.maxusages.threshold | DI Server节点CPU使用率阙值,DI Server所在服务器CPU使用率超过此阙值该节点不参与任务执行,取值范围 0-100。 |
server.memory.maxusages.threshold | DI Server节点内存使用率阙值,DI Server所在服务器内存使用率超过此阙值该节点不参与任务执行,取值范围 0-100。 |
server.disk.maxusages.threshold | DI Server节点磁盘使用率阙值,DI Server所在服务器磁盘使用率超过此阙值该节点不参与任务执行,取值范围 0-100。 |
server.cpu.usage.weight | 选择DI Server执行任务,计算DI Server权重时CPU使用率所占比例,数值越大,CPU使用率所占权重越高,相同CPU使用率下,DI Server被选中执行任务的概率越小,取值范围 0-100。 |
server.memory.usage.weight | 选择DI Server执行任务时,计算DI Server权重时内存使用率所占比例,数值越大,内存使用率所占权重越高,相同内存使用率下,DI Server被选中执行任务的概率越小,取值范围 0-100。 |
cluster-connect-timeout-millis | 连接超时时间,默认值是 3000 毫秒。 |
cluster-members | DI 集群中 DI Server 的 IP、Port,可以配置多个。该值需要和 DI Server 的 di-server-config.yaml 中配置的一致。 当多个DI Server组成集群时,可配置一个或多个 DI Server地址 (建议容灾配置多个DI Server地址),客户端会通过内存使用率、CPU使用率计算各个DI Server的任务权重,选择权重最高的Server执行任务。 CPU使用率、磁盘使用率、内存使用率超过阙值的DI Server节点将不参与任务执行。 |
DI 集群部署时,cluster-members 的配置格式如下:
hazelcast-client:
cluster-name: DI
properties:
hazelcast.logging.type: log4j2
server.cpu.maxusages.threshold: 90
server.memory.maxusages.threshold: 90
server.disk.maxusages.threshold: 90
server.cpu.usage.weight: 50
server.memory.usage.weight: 50
connection-strategy:
connection-retry:
cluster-connect-timeout-millis: 3000
network:
cluster-members:
- 192.168.16.80:6000
- 192.168.16.81:6001
- 192.168.16.82:6002
修改拥有者。
chown -R dws:dws Primeton_DI_7.0.2/
启动 DI Server。
sh startDIServer.sh 或者 ./startDIServer.sh
执行 startDIServer.sh 提示中将标注DI Server运行日志路径:${Primeton DI安装目录}/diserver/logs/di_server.log
运行日志中出现如下信息
DI Server started successfully
则表示DI Server启动成功。若运行日志停在
欢迎使用企业版。
并未出现DI Server started successfully
信息,则需要检查 license 是否过期或被篡改。license 文件路径:${Primeton DI安装目录}/diserver/config/primetonlicense.xml
# 配置 Hadoop 集群环境(可选配置)
如果用户需要使用大数据环境,则需进行此配置,请详细阅读该章节并按照步骤进行配置。
Hadoop 集群支持的类型主要分为cdh631、cdh515、tdh。请在使用前先查看 Hadoop 集群的版本再进行下一步。
如果使用星环tdh大数据组件,请联系售后申请tdh资源包并解压放置在 diserver/plugins/pentaho-big-data-plugin/hadoop-configurations目录下。
- 修改 Primeton_DI_7.0.2/diserver/plugins/pentaho-big-data-plugin/plugin.properties 配置文件。
修改 active.hadoop.configuration 参数值所使用的的集群版本,如 cdh631。
这里修改的 cdh631 即代表的 Primeton_DI_7.0.2/diserver/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh631 目录。
- 需要将 Hadoop 服务器环境中的core-site.xml、hbase-site.xml、hdfs-site.xml等文件放到 Primeton_DI_7.0.2/diserver/plugins/pentaho-big-data-plugin/${选择的集群版本} 目录下。(如Primeton_DI_7.0.2/diserver/plugins/pentaho-big-data-plugin/cdh631目录下)
通常情况下,core-site.xml、hbase-site.xml文件中都是使用的域名,故需要在服务器 /etc/hosts
文件中配置大数据环境的域名。
- 若大数据环境需要 kerberos 认证,则还需要做以下操作
在 Primeton_DI_7.0.2/diserver/kerberos 目录下放置以下文件:
├── krb5.conf ├── krb5.keytab ├── config.properties
修改 diserver/kerberos/config.properties 中的 principal 信息为要使用的大数据环境票据信息。
zookeeper.server.principal=zookeeper/cdh01@DWS.COM username.client.kerberos.principal=hive/cdh01@DWS.COM hbase.master.kerberos.principal=hbase/cdh01@DWS.COM hbase.regionserver.kerberos.principal=hbase/cdh01@DWS.COM
krb5.conf、krb5.keytab以及principal信息请联系对应的服务提供商获取,此处仅供参考。
在 Primeton_DI_7.0.2 服务所在服务器上执行 kinit 命令初始化票据信息:
#kinit -kt /export/kerberos/1/a.keytab a/a@A.COM kinit -kt krb5.keytab hive/cdh01@DWS.COM
# DI 运维操作(可选操作)
使用 tail 命令动态查看 DI Server 运行日志。
tail -200f ${Primeton DI安装目录}/diserver/logs/di_server.log
DI Server 运行日志配置
如需修改运行日志相关配置,可编辑 Primeton_DI_7.0.2/diserver/config/di-server-log4j.properties 文件。
vi di-server-log4j.properties
可修改日志输出格式、日志文件路径及文件名称
log4j.rootLogger=INFO, ERROR, FILE
log4j.appender.INFO=org.apache.log4j.ConsoleAppender
log4j.appender.INFO.layout=org.apache.log4j.PatternLayout
log4j.appender.INFO.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-5p][%c{1}:%L] %m%n
log4j.appender.ERROR=org.apache.log4j.ConsoleAppender
log4j.appender.ERROR.layout=org.apache.log4j.PatternLayout
log4j.appender.ERROR.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%-5p][%c{1}:%L] %m%n
log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
log4j.appender.FILE.File=./logs/di_server.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss,SSS}][%p][%c{1}:%L][Line:%L] %m%n
DI Server 运行日志默认路径: ${Primeton DI安装目录}/diserver/logs/di_server.log
- 查询运行中任务列表
用户可进入${Primeton DI安装目录}/diclient 目录,执行 showtasks.sh 脚本查询 DI 集群中各个 Server 节点正在运行中的任务列表(获取任务执行 JobId 列表)。
sh showtasks.sh 或者 ./showtasks.sh
执行 showtasks.sh 命令获取的JobId组成逻辑:
jobId = system.workflow.definition.code_system.workflow.instance.id_system.task.definition.code_system.task.instance.id
- 停止运行中任务
用户可进入${Primeton DI安装目录}/diclient 目录,执行 stoptask.sh 脚本停止 DI 集群中正在运行的任务(参数为上一步骤查询获得的任务 JobId)。
sh stoptask.sh jobId 或者 ./stoptask.sh jobId
若 DI 集群中未运行 JobId 为传入参数的任务,则提示‘Server集群节点不存在任务[jobId]运行中信息’