145.4. 分割策略
在目前的 Hadoop 版本中,在附加模式下打开文件是禁用的,因为它不可靠。因此,目前只能创建新文件。Camel HDFS 端点以这种方式尝试解决这个问题:
- 如果定义了 split 策略选项,hdfs 路径将用作目录和文件,并使用配置的 UuidGenerator 创建文件
-
每次满足分割条件时,都会创建一个新文件。
splitStrategy 选项作为一个字符串定义,语法如下: splitStrategy=<ST>:<value>,<ST>:<value>,*
其中 <ST> 可以是:
- BYTES 创建了一个新文件,当写入字节数超过 <value> 时,旧文件将被关闭
- MESSAGES 创建了新文件,当写入消息的数量超过 <value> 时,旧的文件会被关闭
- IDLE 创建了一个新文件,在最后的 <value> 毫秒中没有写入时,旧文件将被关闭
请注意,此策略目前需要设置 IDLE 值,或者将 HdfsConstants.HDFS_CLOSE 标头设置为 false 以使用 BYTES/MESSAGES 配置…otherwise,该文件将与每个消息一起关闭
例如:
hdfs2://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5
这意味着:当新文件闲置超过 1 秒或写入超过 5 字节时,将创建一个新文件。因此,运行 hadoop fs -ls /tmp/simple-file
您将看到已创建了多个文件。