1

我可以使用 Flume ng 1.3.0 将任何类型的压缩文件(例如 zip、bzip、lz4 等)摄取到 hdfs 吗?我打算使用 spoolDir。请有任何建议。

4

3 回答 3

3

您可以摄取任何类型的文件。您需要选择合适的解串器。

以下路线适用于压缩文件。您可以根据需要选择选项:

agent.sources = src-1
agent.channels = c1
agent.sinks = k1

agent.sources.src-1.type = spooldir
agent.sources.src-1.channels = c1
agent.sources.src-1.spoolDir = /tmp/myspooldir
agent.sources.src-1.deserializer=org.apache.flume.sink.solr.morphline.BlobDeserializer$Builder

agent.channels.c1.type = file

agent.sinks.k1.type = hdfs
agent.sinks.k1.channel = c1
agent.sinks.k1.hdfs.path = /user/myevents/
agent.sinks.k1.hdfs.filePrefix = events-
agent.sinks.k1.hdfs.fileType = CompressedStream
agent.sinks.k1.hdfs.round = true
agent.sinks.k1.hdfs.roundValue = 10
agent.sinks.k1.hdfs.roundUnit = minute
agent.sinks.k1.hdfs.codeC = snappyCodec
于 2013-09-12T04:25:35.627 回答
0

我编写了自定义源组件并解决了。自定义源可用于摄取任何类型的文件。

于 2013-11-14T08:50:39.460 回答
0

您可以在源处保持文件未压缩,并在将数据摄取到 HDFS 时使用 Flume 提供的压缩算法来压缩数据。Avro 源和接收器还支持压缩,以防您计划使用它们。

于 2013-10-31T06:07:10.637 回答