Hadoop 我应该如何将我的事件流持久化到冷库?

Hadoop 我应该如何将我的事件流持久化到冷库?,hadoop,bigdata,apache-kafka,amazon-kinesis,azure-eventhub,Hadoop,Bigdata,Apache Kafka,Amazon Kinesis,Azure Eventhub,我有一个事件流(我们可以将它们称为“消息”,甚至只是“数据”),这些事件源于具有基于时间的扩展的事件代理。事件代理可以是或,尽管我们可以说它是卡夫卡 我的目标是将这个事件流放入冷库;也就是说,通过Hadoop/Spark存储数据以供将来分析。这意味着我想将这个“闲聊”的事件流转换成HDFS中的“大块”文件。在云环境中,我可能会使用S3或Azure存储而不是HDFS 我还希望我的解决方案具有成本效益;例如,使用Avro/ORC等序列化格式以降低磁盘空间成本。我也像一个至少一次的担保人,保证某个特定

我有一个事件流(我们可以将它们称为“消息”,甚至只是“数据”),这些事件源于具有基于时间的扩展的事件代理。事件代理可以是或,尽管我们可以说它是卡夫卡

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

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

我的核心问题是:

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

我们使用kafka with将数据从kafka提取到HDFS中。加缪支持avro序列化。您可以找到有关加缪和avro的更多信息。

另一种选择是将水槽与卡夫卡震源(或卡夫卡通道)和HDFS接收器一起使用。HDFS接收器可以配置为按特定的大小或时间滚动