普元数据开发平台 普元数据开发平台
产品介绍
安装部署
快速入门
操作指南
SDK开发指南
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.0.2/diclient}

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

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

  1. 解压介质包。
mkdir Primeton_DI_7.0.2
tar -xvf Primeton_DI_7.0.2.tar -C Primeton_DI_7.0.2
  1. 编辑 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:
          - localhost
    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 一致,请不要填写 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.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:
      - localhost: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:
      - 127.0.0.1:6000
      - 127.0.0.1:6001
      - 127.0.0.1:6002
  1. 修改拥有者。

    chown -R dws:dws Primeton_DI_7.0.2/

  2. 启动 DI Server。

    sh startDIServer.sh 或者 ./startDIServer.sh

    Primeton-DI-Server-1-1

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

  1. 运行日志中出现如下信息DI Server started successfully则表示DI Server启动成功。

    Primeton-DI-Server-1-2

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

    image-20241114180441768

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

如果用户需要使用大数据环境,则需进行此配置。

Hadoop 集群支持的类型主要分为cdh631、cdh515、tdh。请在使用前先查看 Hadoop 集群的版本再进行下一步。

  1. 修改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目录。

active.hadoop.configuration

  1. 需要将 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文件中配置大数据环境的域名

  1. 若大数据环境需要kerberos认证,则还需要在 Primeton_DI_7.0.2/diserver/kerberos目录下放置以下文件

    ├── krb5.conf
    ├── krb5.keytab
    ├── config.properties
    
  2. 修改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信息请联系对应的服务提供商获取,此处仅供参考

  1. 在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 运维操作(可选操作)

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

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

  2. 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

  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安装指南 →