当我能够从 Kafka 恢复数据时的 HBase ASYNC WAL

yto*_*ano 5 java hbase disaster-recovery apache-kafka

我想优化我对 HBase 的使用以加快写入速度。我有一个任务从 Kafka 主题中读取,然后基于该主题写入 HBase。由于 Kafka 将记录所有要写入的内容,因此很容易从中恢复。我正在阅读“HBase High Perormance Cookbook”,并有以下说明:

请注意,这带来了关于何时使用 WAL 以及何时不使用的有趣想法。默认情况下,WAL 写入处于开启状态,并且数据始终写入 WAL。但是,如果您确定可以重写数据或少量丢失不会影响处理的整体结果,则可以禁用对 WAL 的写入。WAL 提供了简单而明确的恢复。这是默认情况下始终启用它的根本原因。在无法预料数据丢失的情况下,您应该将其保留为默认设置;否则,将其更改为使用 memstore。或者,您可以计划 DR(灾难恢复)

如何将此恢复配置为自动?我看到两个选项:

  1. 我在没有 WAL 的情况下写入 HBase(仅写入 memstore),并以某种方式通知写入丢失且未提交到磁盘。然后我回到 Kafka 日志并重播。或者
  2. 我在没有 WAL 的情况下写入 HBase(仅写入 memstore),并且经常从 HBase 收到通知,可以提交什么 Kafka 偏移量。

我该怎么做?