144.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 configuration…​otherwise,该文件会在每条消息中关闭

例如:

hdfs2://localhost/tmp/simple-file?splitStrategy=IDLE:1000,BYTES:5

它表示:当新文件闲置超过 1 秒时,或写入超过 5 字节时就会创建新的文件。因此,运行 hadoop fs -ls /tmp/simple-file 您将看到已创建多个文件。