我有一个使用camel hdfs组件的路由从HDFS读取文件。 camel HDFS组件以块的形式读取文件。那么,如何聚合所有块并写入文件或任何其他输出源。因此,它可以稍后通过分割器读取\ n来读取记录提取记录并执行进一步处理。
这里的HDFS文件很大。
答案 0 :(得分:0)
使用
从HDFS读取<from uri="hdfs://server:port/path?owner=xxxxxx&chunkSize=xxxxx&pattern=xxxxx&delay=xxxx&initialDelay=xxxx&readSuffix=xxxx&connectOnStartup=xxxxx" />
这将根据块大小读取块,然后使用
聚合它们<aggregate strategyRef="aggregationStrategyRef">
<correlationExpression>
<simple>header.CamelFileName</simple>
</correlationExpression>
<completionPredicate>
***Specify the predicate***
</completionPredicate>
<to uri="direct:routeNext"/>
</aggregate>
下一步是为aggregationStrategyRef实现bean并在camel JNDI注册表中注册。