【问题标题】:Confluent Control Centre not starting for Confluent version 7.0.1Confluent 版本 7.0.1 未启动 Confluent 控制中心
【发布时间】:2022-01-10 23:56:33
【问题描述】:

我已尽力按照website 教程在我的 MacBook Pro M1 Max 上本地安装 Kafka,然后使用以下命令运行它:
arch -x86_64 confluent local services start. 每次我启动它时,即使在 control-center-production.properties 文件中修改了以下行后,我也会在控制中心出现随机有趣的错误:

confluent.controlcenter.internal.topics.replication=1
confluent.controlcenter.command.topic.replication=1
confluent.monitoring.interceptor.topic.replication=1
confluent.metrics.topic.replication=1

这些已更新,因为我目前仅在本地计算机上运行一个 Kafka 代理。 我现在遇到的错误如下图:

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/Users/samuelifere/Documents/Tutorials/Udemy/Kafka/confluent-7.0.1/share/java/acl/acl-7.0.1.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[2022-01-07 12:05:21,790] INFO [main] Capturing metrics for topic names _confluent-monitoring _confluent-metrics (io.confluent.controlcenter.streams.WindowExtractor)
[2022-01-07 12:05:21,792] INFO [main] transformerStore=MonitoringVerifierStore (io.confluent.controlcenter.streams.StreamsModule)
[2022-01-07 12:05:21,793] INFO [main] transformerStore=MonitoringTriggerStore (io.confluent.controlcenter.streams.StreamsModule)
[2022-01-07 12:05:21,793] INFO [main] transformerStore=TriggerActionsStore (io.confluent.controlcenter.streams.StreamsModule)
[2022-01-07 12:05:21,793] INFO [main] transformerStore=TriggerEventsStore (io.confluent.controlcenter.streams.StreamsModule)
[2022-01-07 12:05:21,793] INFO [main] transformerStore=AlertHistoryStore (io.confluent.controlcenter.streams.StreamsModule)
Exception in thread "main" com.google.inject.CreationException: Unable to create injector, see the following errors:

1) Error in custom provider, java.io.IOException: Unable to create parent directories of /var/lib/confluent/control-center/1/kafka-streams
  at io.confluent.controlcenter.streams.StreamsConfigModule.getStreamsStateDir(StreamsConfigModule.java:142) (via modules: com.google.inject.util.Modules$OverrideModule -> io.confluent.controlcenter.streams.StreamsConfigModule)
  while locating java.nio.file.Path annotated with @io.confluent.controlcenter.streams.StreamsConfigModule$StreamsStateDir()
    for the 4th parameter of io.confluent.controlcenter.streams.StreamsConfigModule.provideMonitoringStreamsConfig(StreamsConfigModule.java:56)
  at io.confluent.controlcenter.streams.StreamsConfigModule.provideMonitoringStreamsConfig(StreamsConfigModule.java:56) (via modules: com.google.inject.util.Modules$OverrideModule -> io.confluent.controlcenter.streams.StreamsConfigModule)
  while locating org.apache.kafka.streams.StreamsConfig
    for the 2nd parameter of io.confluent.controlcenter.streams.StreamsModule.provideMonitoringHeartbeatSender(StreamsModule.java:406)
  at io.confluent.controlcenter.streams.StreamsModule.provideMonitoringHeartbeatSender(StreamsModule.java:406) (via modules: com.google.inject.util.Modules$OverrideModule -> io.confluent.controlcenter.streams.StreamsModule)
  while locating io.confluent.controlcenter.streams.verify.MonitoringHeartbeatSender
    for the 5th parameter of io.confluent.controlcenter.streams.StreamsModule.provideVerifyTransformerSupplier(StreamsModule.java:290)
  at io.confluent.controlcenter.streams.StreamsModule.provideVerifyTransformerSupplier(StreamsModule.java:290) (via modules: com.google.inject.util.Modules$OverrideModule -> io.confluent.controlcenter.streams.StreamsModule)
  while locating io.confluent.controlcenter.streams.verify.VerifyTransformerSupplier
    for the 5th parameter of io.confluent.controlcenter.streams.StreamBuilderProvider.<init>(StreamBuilderProvider.java:219)
  while locating io.confluent.controlcenter.streams.StreamBuilderProvider
  at io.confluent.controlcenter.streams.StreamsModule.configure(StreamsModule.java:109) (via modules: com.google.inject.util.Modules$OverrideModule -> io.confluent.controlcenter.streams.StreamsModule)
  while locating io.confluent.controlcenter.streams.C3Streams$Builder

1 error
    at com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:543)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
    at com.google.inject.Guice.createInjector(Guice.java:87)
    at com.google.inject.Guice.createInjector(Guice.java:69)
    at com.google.inject.Guice.createInjector(Guice.java:59)
    at io.confluent.controlcenter.util.InjectorFactory.createInjectorHelper(InjectorFactory.java:109)
    at io.confluent.controlcenter.util.InjectorFactory.createInjectorForApplication(InjectorFactory.java:65)
    at io.confluent.controlcenter.application.ControlCenter.setInjector(ControlCenter.java:156)
    at io.confluent.controlcenter.application.ControlCenter.run(ControlCenter.java:69)
    at io.confluent.controlcenter.ControlCenter.main(ControlCenter.java:46)
Caused by: java.io.IOException: Unable to create parent directories of /var/lib/confluent/control-center/1/kafka-streams
    at com.google.common.io.Files.createParentDirs(Files.java:485)
    at io.confluent.controlcenter.streams.StreamsConfigModule.getStreamsStateDir(StreamsConfigModule.java:147)
    at io.confluent.controlcenter.streams.StreamsConfigModule$$FastClassByGuice$$35c672b2.invoke(<generated>)
    at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:264)
    at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
    at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:148)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
    at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:148)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
    at com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185)
    at com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:148)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
    at com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42)
    at com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65)
    at com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113)
    at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91)
    at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306)
    at com.google.inject.internal.BoundProviderFactory.get(BoundProviderFactory.java:60)
    at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
    at com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:148)
    at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39)
    at com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:211)
    at com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:182)
    ... 9 more

请,任何帮助将不胜感激!提前致谢。

【问题讨论】:

  • 1) 我不认为 Confluent 通过二进制仿真或其他方式支持 M1;模拟 x86 Docker 环境可能会更好 2) 听起来像 /var/lib/confluent/control-center 周围的文件权限问题
  • @OneCricketeer,我遵循了一个 YouTube 教程,该教程显示它有效,但该人并未在教程中展示他们如何配置控制中心。 youtube.com/watch?v=_u_aWbm-ZJ0

标签: apache-kafka confluent-platform confluent-control-center


【解决方案1】:

根据您在 cmets 中显示的视频,您需要启用 Rosetta 终端;这将正确模拟所有二进制文件的 x64 环境,而不仅仅是 confluent 命令。启用 Rosetta 功能后,就不需要使用arch -x86_64

另外,请注意视频使用的是 Confluent Platform 6.0.1,可能与 7.0.1 存在差异

【讨论】:

  • 我刚刚测试了与视频相同的 6.0.1 版本,但仍然无法正常工作。尽管 7.0.1 的所有其他服务都相同。我想我只能勉强应付那些,除非有人能帮忙。谢谢!
  • 我认为版本不是问题。例如,手动运行zookeeper-server-startkafka-server-start。如果不需要,请不要运行控制中心。如果需要,它总是可以在 Docker 中模拟运行
  • 谢谢@OneCricketeer!我选择使用brew来安装它,它同时支持jdk 17和arm,所以不需要长时间的仿真等过程。
  • brew install apache-kafka 会下载与 Confluent Platform 相同的二进制文件(至少对于 Kafka/Zookeeper 而言),但很高兴听到
猜你喜欢
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-06
  • 2018-08-10
相关资源
最近更新 更多