【问题标题】:Storing Kafka Offsets in a File vs Hbase将 Kafka 偏移量存储在文件与 Hbase 中
【发布时间】:2018-03-04 00:14:53
【问题描述】:

我正在开发一个 Spark-Kafka Streaming 程序,我需要在其中捕获 kafka 分区偏移量,以便处理故障情况。

大多数开发人员都使用 Hbase 作为偏移量的存储,但是如果我使用 hdfs 或本地磁盘上的文件来存储简单易行的偏移量会怎样? 我试图避免使用 Nosql 来存储偏移量。

我能知道使用文件而不是 hbase 来存储偏移量的优缺点是什么吗?

【问题讨论】:

  • 嗯...如果该文件所在的硬盘发生故障怎么办? HBase 在 HDFS 上运行,所以如果你已经安装了 Hbase 并不重要。为什么不将偏移量存储在 Kafka 中?或者,动物园管理员? stackoverflow.com/questions/45686885/…

标签: apache-spark apache-kafka spark-streaming


【解决方案1】:

只需使用卡夫卡。开箱即用的 Apache Kafka stores consumer offsets within Kafka itself

【讨论】:

  • 能否请您补充一下使用 Kafka 作为偏移量存储的优点或缺点?
  • 我会把这个问题再问你。默认情况下,按照 Kafka 项目的设计,它使用 Kafka 来管理偏移量。你想偏离这个的原因是什么?
【解决方案2】:

我也有类似的用例,我更喜欢 hbase,原因如下-

  1. 易于检索,它以 rowkey 的排序顺序存储数据。当偏移量属于不同的数据组时,它很有帮助。

  2. 我必须为一组数据捕获开始和结束偏移量,其中捕获开始很容易但结束偏移量..它虽然在流模式下捕获。所以我不想只打开文件更新结束偏移并关闭它。我也想过 S3,但 S3 对象是不可变的。

Zookeeper 也是一种选择。 希望对您有所帮助。

【讨论】:

  • Cassandra 还存储已排序的行键排序
猜你喜欢
  • 2017-04-29
  • 2016-01-30
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-05
  • 2018-01-23
  • 2021-02-14
相关资源
最近更新 更多