普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
应用集成
FAQ
  • Primeton DI 安装指南
  • 解压 Primeton DI 介质包,配置 di-server-config.yaml、di-client-config.yaml文件。
  • 配置 Hadoop 集群环境()
  • DI 运维操作

# 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.1.0/diclient}

Dolphinscheduler 的安装配置参见:DolphinScheduler安装指南

# 解压 Primeton DI 介质包,配置 di-server-config.yaml、di-client-config.yaml文件。

  1. 解压介质包。
mkdir Primeton_DI_7.1.0
tar -xvf Primeton_DI_7.1.0.tar -C Primeton_DI_7.1.0
  1. 编辑 Primeton_DI_7.1.0/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:不限制
  1. 编辑 Primeton_DI_7.1.0/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
    client.task.dispatch.strategy: RETRY  #         WAITING,REJECT,RETRY
    client.task.dispatch.strategy.waiting.timeout:  30 # second
    client.task.dispatch.strategy.retry.times: 3
    client.task.dispatch.strategy.retry.interval: 3 # second
  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。
client.task.dispatch.strategy 客户端下发任务失败时的策略:WAITING、REJECT、RETRY。
client.task.dispatch.strategy.waiting.timeout client.task.dispatch.strategy设置WAITING时的等待时长,默认30s。
client.task.dispatch.strategy.retry.times client.task.dispatch.strategy设置RETRY时的重试次数,默认3次。
client.task.dispatch.strategy.retry.interval client.task.dispatch.strategy设置RETRY时的重试间隔,默认3s。
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
    client.task.dispatch.strategy: RETRY  #         WAITING,REJECT,RETRY
    client.task.dispatch.strategy.waiting.timeout:  30 # second
    client.task.dispatch.strategy.retry.times: 3
    client.task.dispatch.strategy.retry.interval: 3 # second
  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
  1. 修改拥有者。

    chown -R dws:dws Primeton_DI_7.1.0/

  2. 启动 DI Server。

    sh startDIServer.sh 或者 ./startDIServer.sh

[dws@node5 diserver]# ./startDIServer.sh
start project directory:/home/dws/diserver
diserver start detail log see /home/dws/diserver/logs/di_server.log

执行 startDIServer.sh 提示中将标注DI Server运行日志路径:${Primeton DI安装目录}/diserver/logs/di_server.log

  1. 运行日志中出现如下信息DI Server started successfully则表示DI Server启动成功。
[INFO][LifecycleService:57][Line:57]  [192.168.16.80]:6001 [DI] [5.1.7] [192.168.16.80]:6001 is STARTED
[INFO][DIServer:119][Line:119]  DI Server started successfully.

若运行日志停在欢迎使用企业版。并未出现DI Server started successfully信息,则需要检查 license 是否过期或被篡改。license 文件路径:${Primeton DI安装目录}/diserver/config/primetonlicense.xml

[INFO][DIServer:119][Line:119]  *******************************
[INFO][DIServer:119][Line:119]  *  Start The DI Server  *
[INFO][DIServer:119][Line:119]  *******************************
[INFO][ImprimaturStartUpListener:75][Line:75]  欢迎使用企业版。

# 配置 Hadoop 集群环境(可选配置)

如果用户需要使用大数据环境,则需进行此配置,请详细阅读该章节并按照步骤进行配置。

Hadoop 集群支持的类型主要分为cdh631、cdh515、tdh。请在使用前先查看 Hadoop 集群的版本再进行下一步。
如果使用星环tdh大数据组件,请联系售后申请tdh资源包并解压放置在 diserver/plugins/pentaho-big-data-plugin/hadoop-configurations目录下。

  1. 修改 Primeton_DI_7.1.0/diserver/plugins/pentaho-big-data-plugin/plugin.properties 配置文件。

修改 active.hadoop.configuration 参数值所使用的的集群版本,如 cdh631。

这里修改的 cdh631 即代表的 Primeton_DI_7.1.0/diserver/plugins/pentaho-big-data-plugin/hadoop-configurations/cdh631 目录。

active.hadoop.configuration

  1. 需要将 Hadoop 服务器环境中的core-site.xml、hbase-site.xml、hdfs-site.xml等文件放到 Primeton_DI_7.1.0/diserver/plugins/pentaho-big-data-plugin/${选择的集群版本} 目录下。(如Primeton_DI_7.1.0/diserver/plugins/pentaho-big-data-plugin/cdh631目录下)

通常情况下,core-site.xml、hbase-site.xml文件中都是使用的域名,故需要在服务器 /etc/hosts文件中配置大数据环境的域名。

  1. 若大数据环境需要 kerberos 认证,则还需要做以下操作
  • 在 Primeton_DI_7.1.0/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.1.0 服务所在服务器上执行 kinit 命令初始化票据信息:

    #kinit -kt /export/kerberos/1/a.keytab  a/a@A.COM
    kinit -kt krb5.keytab  hive/cdh01@DWS.COM
    

# DI 运维操作(可选操作)

  1. 使用 tail 命令动态查看 DI Server 运行日志。

    tail -200f ${Primeton DI安装目录}/diserver/logs/di_server.log

  2. DI Server 运行日志配置

    如需修改运行日志相关配置,可编辑 Primeton_DI_7.1.0/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

  1. 查询运行中任务列表

用户可进入${Primeton DI安装目录}/diclient 目录,执行 showtasks.sh 脚本查询 DI 集群中各个 Server 节点正在运行中的任务列表(获取任务执行 JobId 列表)。

sh showtasks.sh 或者 ./showtasks.sh

Primeton-DI-Server-4-1

执行 showtasks.sh 命令获取的JobId组成逻辑:
jobId = system.workflow.definition.code_system.workflow.instance.id_system.task.definition.code_system.task.instance.id

  1. 停止运行中任务

用户可进入${Primeton DI安装目录}/diclient 目录,执行 stoptask.sh 脚本停止 DI 集群中正在运行的任务(参数为上一步骤查询获得的任务 JobId)。

sh stoptask.sh jobId 或者 ./stoptask.sh jobId

Primeton-DI-Server-4-2

若 DI 集群中未运行 JobId 为传入参数的任务,则提示‘Server集群节点不存在任务[jobId]运行中信息’

Primeton-DI-Server-4-3

← SeaTunnel安装指南 DolphinScheduler安装指南 →