更新时间:2024-03-05 GMT+08:00

配置Plugin

DIS Flume Plugin 分为Source与Sink插件,安装包中的dis-flume-plugin.conf.template文件列出了配置方法,本节介绍各种插件的配置项具体含义。

dis-flume-plugin.conf.template只是一个dis插件的配置样例,并不是实际运行Flume时会读取的配置文件。Flume自身提供了样例配置文件,路径为{FLUME_HOME}/conf/flume-conf.properties.template,其中{FLUME_HOME}是Flume的安装路径,用户可以基于此配置文件修改。

在配置项中,需要配置用户的SK,这属于敏感信息,如需加密,可以按如下步骤:

  1. 进入dis-flume-plugin/目录

    cd /dis-flume-plugin

  2. 执行加密脚本,输入密码后回车

    bash dis-encrypt.sh

  3. 控制台打印的“Encrypt result:”后面的字符串即为加密后的结果。通过这种方式分别加密MySQL密码和用户SK,并将密文配置到配置文件中即可。

配置DIS Source

表1 DIS Source配置项说明

配置项

是否必填

说明

默认值

channels

Flume channel的名称。

请根据实际情况配置

type

Source的类型。

com.cloud.dis.adapter.flume.source.DISSource

streams

指定在DIS服务上创建的通道名称。

与DIS控制台“购买接入通道”时配置的“通道名称”取值一致。

ak

用户的Access Key。

获取方式请参见检查认证信息

请根据实际情况配置

sk

用户的Secret Key。

获取方式请参见检查认证信息

请根据实际情况配置

region

将数据上传到指定Region的DIS服务。

请根据实际情况配置

projectId

用户所属区域的项目ID。

获取方式请参见检查认证信息

请根据实际情况配置

endpoint

DIS对应Region的数据接口地址。

请根据实际情况配置

group.id

DIS App名称,用于标识一个消费组,由英文字符、数字、-、_组成。

请根据实际情况配置

配置DIS Sink

表2 DIS Sink配置项说明

配置项

是否必填

说明

默认值

channel

Flume channel的名称。

请根据实际情况配置

type

Sink的类型。

com.cloud.dis.adapter.flume.sink.DISSink

streamName

指定在DIS服务上创建的通道名称。

与DIS控制台“购买接入通道”时配置的“通道名称”取值一致。

ak

用户的Access Key。

获取方式请参见检查认证信息

请根据实际情况配置

sk

用户的Secret Key。

获取方式请参见检查认证信息

请根据实际情况配置

region

将数据上传到指定Region的DIS服务。

-

projectId

用户所属区域的项目ID。

获取方式请参见检查认证信息

请根据实际情况配置

endpoint

DIS对应Region的数据接口地址。

-

partitionNumber

通道的分区数量。

用于计算batchSize的大小。

1

batchSize

一个Flume事务内批量处理的数据集大小。

(“partitionNumber”配置的值)*250

sendingThreadSize

发送线程数。默认单线程发送。

说明:

使用多线程会出现如下情况:

  • 发送不保证顺序。
  • 当程序从异常停止恢复时重传部分数据。

1

sendingRecordSize

单次调用DIS数据发送接口时的数据集大小。

说明:

“batchSize”表示一个事务的批量值(如1000),而“sendingRecordSize”表示一个Rest请求的批量值(如250表示会发起四次请求)。当“batchSize”的数据全部发送成功之后,才会完成Flume的事务,否则事务不提交,重启时导致数据重传。当“sendingThreadSize”配置为“1”时,表示“sendingRecordSize”与“batchSize”配置相同值,避免数据重新上传。

250

retrySize

Sink程序调用DIS接口异常时尝试重新调用的次数。

建议使用默认值2147483647,表示会无限重试。

重试时会使用指数退避算法,并等待一段时间,以减轻异常时服务器压力。

2147483647

resultLogLevel

每次调用DIS接口后输出最新sequenceNumber到日志的级别。

有效值与级别由低到高为 OFF < DEBUG < INFO < WARN < ERROR。

OFF:不输出日志。

如果Flume log4j配置的日志级别高于resultLogLevel配置的的值,则日志也不会输出。

OFF

maxBufferAgeMillis

最长上传等待时间。单位:毫秒

  • 记录队列满则立即上传。
  • 记录队列未满,等待此配

置项配置的时间后上传。

5000

connectionTimeOutSeconds

连接DIS接口超时时间。

单位:秒。

30

socketTimeOutSeconds

接口响应超时时间。

单位:秒。

60

dataEncryptEnabled

数据是否使用AES加密。

  • 是:true。
  • 否:false。

false

dataPassword

数据加密或解密时使用的密码。

当“dataEncryptEnabled”配置项配置为“false”时无需配置“dataPassword”。

请根据实际情况配置

bodySerializeType

DIS数据包上传格式(非原始数据格式)。

  • json:DIS数据包封装为json格式,满足普通使用。
  • protobuf:DIS数据包封装为二进制格式,可以减少体积约1/3,在数据量较大的情况下推荐使用此格式。

json