3

我有一个事件流(我们也可以称它们为“消息”,甚至只是“数据”)来自一个基于时间的事件代理。事件代理可以是KafkaAmazon KinesisMicrosoft Event Hubs,尽管假设它是 Kafka。

我的目标是把这个事件流放入冷库;也就是说,通过 Hadoop/Spark 存储数据以供将来分析。这意味着我想采用这种“闲聊”的事件流并将其转换为 HDFS 中的“大块”文件。在云环境中,我可能会使用 S3 或 Azure 存储而不是 HDFS。

我还希望我的解决方案具有成本效益;例如,使用 Avro/ORC 等序列化格式来降低我的磁盘空间成本。我也像一个至少一次保证给定事件被保存到冷库(一次且仅一次的奖励积分)。

我的核心问题是:

  • 人们是如何解决这个问题的?
  • 是否有组件已经处理这种情况?
  • 我需要自己开发解决方案吗?
  • 至少,它们有什么推荐的模式吗?
4

2 回答 2

3

好吧,我们正在使用带有camus的 kafka 将数据从 kafka 获取到 HDFS。Camus 支持 avro 序列化。您可以在此处找到有关 camus 和 avro的更多信息。

于 2014-10-31T01:54:24.300 回答
1

另一种选择是将 Flume 与 Kafka 源(或 Kafka 通道)和 HDFS 接收器一起使用。HDFS sink 可以配置为以特定大小或时间滚动。

于 2014-11-01T02:15:27.640 回答