144.2. 选项


HDFS 组件支持 2 个选项,如下所列。

名称描述默认值类型

JAASConfiguration (common)

使用给定的配置进行 JAAS 的安全性。

 

Configuration

resolveProperty Placeholders (advanced)

启动时组件是否应解析自身上的属性占位符。只有属于 String 类型的属性才能使用属性占位符。

true

布尔值

HDFS 端点使用 URI 语法进行配置:

hdfs:hostName:port/path

使用以下路径和查询参数:

144.2.1. 路径参数(3 参数):

名称描述默认值类型

hostName

所需的 HDFS 主机使用

 

字符串

端口

要使用的 HDFS 端口

8020

int

path

必需。要使用的目录路径

 

字符串

144.2.2. 查询参数(38 参数):

名称描述默认值类型

connectOnStartup (common)

是否在启动 producer/consumer 时连接到 HDFS 文件系统。如果为 false,则按需创建连接。请注意,HDFS 可能需要大约 15 分钟的时间来建立连接,因为它已硬编码了 45 x 20 sec 重新发送。通过将此选项设置为 false,允许您的应用程序启动,而不阻止启动 till 15 分钟。

true

布尔值

fileSystemType (common)

设置为 LOCAL 不使用 HDFS,而是使用本地 java.io.File。

HDFS

HdfsFileSystemType

fileType (common)

要使用的文件类型。如需了解更多详细信息,请参阅有关各种文件类型的 Hadoop HDFS 文档。

NORMAL_FILE

HdfsFileType

keyType (common)

如果序列或映射文件,键的类型。

NULL

WritableType

owner (common)

文件所有者必须与此所有者匹配,以便消费者获取该文件。否则,将跳过该文件。

 

字符串

valueType (common)

如果序列或映射文件,键的类型

BYTES

WritableType

bridgeErrorHandler (consumer)

允许将消费者桥接到 Camel 路由错误处理程序,这意味着当消费者试图选择传入消息或类似信息时发生异常,现在将作为消息处理并由路由 Error Handler 处理。默认情况下,使用者将使用 org.apache.camel.spi.ExceptionHandler 来处理例外情况,该处理程序将被记录在 WARN 或 ERROR 级别,并忽略。

false

布尔值

delay (consumer)

目录扫描之间的间隔(毫秒)。

1000

long

initialDelay (consumer)

对于消费者,开始扫描目录前要等待多少(毫秒)。

 

long

pattern (consumer)

用于扫描目录的模式

*

字符串

sendEmptyMessageWhenIdle (consumer)

如果轮询使用者没有轮询任何文件,您可以启用此选项来发送空消息(无正文)。

false

布尔值

exceptionHandler (consumer)

要让使用者使用自定义例外处理程序:请注意,如果启用了 bridgeErrorHandler 选项,则此选项不使用。默认情况下,消费者将处理异常,其记录在 WARN 或 ERROR 级别中,并忽略。

 

ExceptionHandler

exchangePattern (consumer)

在消费者创建交换时设置交换模式。

 

ExchangePattern

pollStrategy (consumer)

可插拔 org.apache.camel.PollingConsumerPollingStrategy 允许您提供自定义实施来控制在轮询操作期间通常会发生错误处理,然后再创建交换并在 Camel 中路由。

 

PollingConsumerPoll Strategy

append (producer)

将 附加到现有文件。请注意,并非所有 HDFS 文件系统都支持 append 选项。

false

布尔值

overwrite (producer)

是否使用相同的名称覆盖现有文件

true

布尔值

blockSize (advanced)

HDFS 块的大小

67108864

long

bufferSize (advanced)

HDFS 使用的缓冲大小

4096

int

checkIdleInterval (advanced)

(millis 中时间)运行空闲的检查程序后台任务的频率(时间为 millis)。只有在 splitter 策略是 IDLE 时,才会使用这个选项。

500

int

chunkSize (advanced)

在读取普通文件时,这会分成块为每个块生成消息的块。

4096

int

compressionCodec (advanced)

要使用的压缩 codec

DEFAULT

HdfsCompressionCodec

compressionType (advanced)

要使用的压缩类型(默认为不使用)

NONE

CompressionType

openedSuffix (advanced)

当为读取/写入文件打开时,该文件被重命名为这个后缀,以避免在写阶段读取该文件。

打开

字符串

readSuffix (advanced)

读取文件被重命名为这个后缀后,以避免再次读取它。

读取

字符串

replication (advanced)

HDFS 复制因素

3

short

splitStrategy (advanced)

在目前的 Hadoop 版本中,在附加模式下打开文件是禁用的,因为它不可靠。因此,目前只能创建新文件。Camel HDFS 端点会尝试以这种方式解决这个问题:如果定义了 split 策略选项,hdfs 路径将用作目录,并使用配置的 UuidGenerator 创建文件。每次满足分割条件时,都会创建一个新文件。splitStrategy 选项被定义为一个字符串,其语法如下: splitStrategy=ST:value,ST:value,…​ where ST can be: BYTES a new file is created,当写入字节数大于值 MESSAGES 时,如果写入文件的数量超过值 MESSAGES,在写入文件的数量超过值 IDLE 时,旧值将关闭,在最后的写入文件时,旧值不会被关闭。

 

字符串

同步 (advanced)

设置是否应严格使用同步处理,或者 Camel 允许使用异步处理(如果受支持)。

false

布尔值

backoffErrorThreshold (scheduler)

在 backoffMultipler 应该 kick-in 之前发生的后续错误轮询(因为某些错误)的数量。

 

int

backoffIdleThreshold (scheduler)

在 backoffMultipler 应该 kick-in 之前应该发生的后续空闲轮询数量。

 

int

backoffMultiplier (scheduler)

如果一行中有很多后续空闲/errors,则让调度的轮询消费者避退。然后,倍数是在下一次实际尝试再次发生前跳过的轮询数量。当使用这个选项时,还必须配置 backoffIdleThreshold 和/或 backoffErrorThreshold。

 

int

greedy (scheduler)

如果启用了 greedy,如果上一个运行轮询 1 或更多消息,则 ScheduledPollConsumer 将立即运行。

false

布尔值

runLoggingLevel (scheduler)

消费者在轮询时记录 start/complete log 行。这个选项允许您为其配置日志级别。

TRACE

LoggingLevel

scheduledExecutorService (scheduler)

允许配置用于消费者的自定义/共享线程池。默认情况下,每个使用者都有自己的单线程线程池。

 

ScheduledExecutor Service

scheduler (scheduler)

使用 camel-spring 或 camel-quartz2 组件的 cron 调度程序

none

ScheduledPollConsumer Scheduler

schedulerProperties (scheduler)

在使用自定义调度程序或任何基于 Spring 的调度程序时配置附加属性。

 

Map

startScheduler (scheduler)

调度程序是否应自动启动。

true

布尔值

timeUnit (scheduler)

initialDelay 和 delay 选项的时间单位。

MILLISECONDS

TimeUnit

useFixedDelay (scheduler)

控制是否使用固定延迟或固定率。详情请参阅 JDK 中的 ScheduledExecutorService。

true

布尔值

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.