【问题标题】:Kafka ReassignPartitionsCommand: IllegalArgumentException: long is not a value typeKafka ReassignPartitionsCommand:IllegalArgumentException:long 不是值类型
【发布时间】:2018-01-31 20:16:28
【问题描述】:

我正在尝试在我的项目中重新分配分区,但出现此错误。

    2017-08-22 15:57:28 DEBUG ZookeeperBackedAdoptionLogicImpl:320 - Calling ReassignPartitionsCommand with args:[--reassignment-json-file=partitions-to-move.json.1503417447767, --zookeeper=172.31.14.207:2181, --execute]
    java.lang.IllegalArgumentException: long is not a value type
    at joptsimple.internal.Reflection.findConverter(Reflection.java:66)
    at joptsimple.ArgumentAcceptingOptionSpec.ofType(ArgumentAcceptingOptionSpec.java:111)
    at kafka.admin.ReassignPartitionsCommand$ReassignPartitionsCommandOptions.<init>(ReassignPartitionsCommand.scala:301)
    at kafka.admin.ReassignPartitionsCommand$.validateAndParseArgs(ReassignPartitionsCommand.scala:236)
    at kafka.admin.ReassignPartitionsCommand$.main(ReassignPartitionsCommand.scala:34)
    at kafka.admin.ReassignPartitionsCommand.main(ReassignPartitionsCommand.scala)
    at rebalancer.core.ZookeeperBackedAdoptionLogicImpl.reassignPartitionToLocalBroker(ZookeeperBackedAdoptionLogicImpl.java:321)
    at rebalancer.core.ZookeeperBackedAdoptionLogicImpl.adoptRemotePartition(ZookeeperBackedAdoptionLogicImpl.java:267)
    at rebalancer.core.ZookeeperBackedAdoptionLogicImpl.run(ZookeeperBackedAdoptionLogicImpl.java:118)

我创建 json 文件并将其用作重新分配分区的输入。我尝试将相同的文件与 kafka 的内置脚本一起使用,它正在工作。

kafka-reassign-partitions.bat --reassignment-json-file=partitions-to-move.json.1503417447767 --zookeeper=172.31.14.207:2181 --execute

我还尝试使用相同的代码编写一个简单的程序来测试相同的文件,它也能正常工作。任何 json 文件都会发生这种情况,我在测试之前重置了 kafka 环境。

public class reassignPartition {
private static CuratorFramework client;
public static void main (String[] args) {
    client = CuratorFrameworkFactory.newClient(args[0] + ":2181", new ExponentialBackoffRetry(1000, 30));
    client.start();
    String reassignmentConfigFileName = args[1];
    String[] reassignCmdArgs = { "--reassignment-json-file=" + Paths.get(reassignmentConfigFileName),
            "--zookeeper=" + client.getZookeeperClient().getCurrentConnectionString(), "--execute" };
    System.out.println("Calling ReassignPartitionsCommand with args:{}"+ Arrays.toString(reassignCmdArgs));
    ReassignPartitionsCommand.main(reassignCmdArgs);
}
}

可能是什么问题?

更新:Json 内容

{"partitions":[{"topic":"test1","partition":0,"replicas":[1]}],"version":1}

【问题讨论】:

  • 请打印您的json文件内容
  • @GuangshengZuo 添加了json内容

标签: java scala apache-kafka apache-zookeeper illegalargumentexception


【解决方案1】:

这是版本不匹配。使用不同版本的陷阱之一。 Kafka 0.10.2.0 使用 jopt-simple-4.9.jar,Kafka 0.11.0.0 使用 jopt-simple-5.0.4.jar

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 2020-06-02
    • 2021-10-19
    • 2023-03-25
    • 2013-01-19
    • 2021-09-11
    • 1970-01-01
    • 2011-12-06
    • 1970-01-01
    相关资源
    最近更新 更多