我应该如何将我的事件流保存到冷存储?

时间:2014-10-31 00:50:33

标签: hadoop bigdata apache-kafka amazon-kinesis azure-eventhub

我有来自事件经纪人的事件流(我们可以称之为“消息”,甚至只是“数据”),并且基于时间的延长。事件经纪人可以是KafkaAmazon KinesisMicrosoft Event Hubs,但我们可以说是Kafka。

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

我也希望我的解决方案具有成本效益;例如,使用Avro / ORC等序列化格式以减少磁盘空间成本。我也像一个至少一次保证,一个特定的事件被持有到冷藏(一次性和一次性的奖励积分)。

我的核心问题是:

  • 人们如何解决这个问题?
  • 那里的组件是否已处理此方案?
  • 我是否需要自己开发解决方案?
  • 至少,他们是否有推荐的模式?

2 个答案:

答案 0 :(得分:3)

好吧,我们正在使用kafka和camus将数据从kafka提取到HDFS中。 Camus支持avro序列化。你可以找到更多关于camus和avro here的信息。

答案 1 :(得分:1)

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