【问题标题】:kafka loses all topics on rebootkafka 在重新启动时会丢失所有主题
【发布时间】:2019-12-13 14:28:41
【问题描述】:

我正在 VM 中试用 Kafka (0.8.2.1),但遇到了问题:尽管机器保持开启时一切正常(即使我重新启动 ZK/Kafka),但如果我重新启动机器(在优雅地关闭 ZK/Kafka 之后)似乎所有 Kafka 主题都丢失了。

我可能在这里遗漏了一些基本的东西,因为这可能不应该发生。可能是什么?

cd /vagrant/kafka_2.11-0.8.2.1
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 10 --topic foo
bin/kafka-topics.sh --list --zookeeper localhost:2181
# foo
# ^C then resume ZooKeeper, Kafka, or both
bin/kafka-topics.sh --list --zookeeper localhost:2181
# foo
# ^C both, reboot machine, boot ZK/Kafka again
bin/kafka-topics.sh --list --zookeeper localhost:2181
# no topics

【问题讨论】:

  • 日志存储在哪里?确保它们不在重启时可能会被擦除的 tmp 目录中。
  • 并且ZK数据目录也必须检查。 kafka-topics.sh --list 命令仅列出 zookeeper 数据。我还会检查 vagrant 配置配置:清除目录,复制文件...
  • @ChrisGerken:谢谢,日志目录仍然设置为默认的/tmp/kafka-logs/,所以看起来可能就是这样。更改日志目录实际上会在代理启动时产生致命错误,所以让我尝试修复它以确认移动日志目录允许它在重新启动时持续存在...
  • 在 Ubuntu/Debian 中显示默认的 /tmp/kafka-logs 日志目录 does get cleared on boot,在该链接中修复。如果您可以在此处添加您的评论作为答案,我会接受。

标签: apache-kafka


【解决方案1】:

看起来日志的默认位置在 /tmp 目录中,该目录在重新启动时会被擦除。将配置中的该位置更改为更永久的位置。

【讨论】:

  • 你能指出在哪里更改 kafka 和 zookeeper 日志目录的配置吗?
  • @JackDaniels 有关 log.dir 和 log.dirs 属性的信息,请参阅 Kafka Config Doc
【解决方案2】:

进入kafka安装文件夹>config> server.properties

在该文件中搜索 log.dirs,将路径从 /tmp/logs 更改为本地目录。重启 kafka 服务器,你会看到创建的主题将保存在我们在配置文件中更改的本地文件夹中。

【讨论】:

    【解决方案3】:

    这是因为 tmp 文件夹在重新启动时被清除。

    要解决此问题,请执行以下操作。

    转到你的 kafka 安装目录并搜索文件 server.properties。您应该看到如下部分

    存储日志文件的目录的逗号分隔列表
    log.dirs=/tmp/kafka-logs

    将 logs.dir 更改为更本地化的目录或像这样的自定义目录。 log.dirs=/Users/xxx/yyy/software/confluent-5.3.1/mydata

    重新启动您的 kafka 集群以使更改生效。 重新启动系统,您将看到主题仍然存在。

    【讨论】:

      猜你喜欢
      • 2019-03-27
      • 2021-02-03
      • 2016-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      相关资源
      最近更新 更多