0

我试图在我的项目中重新分配分区,并且出现此错误。Kafka ReassignPartitionsCommand:IllegalArgumentException:long不是值类型

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}

+0

打印您的json文件内容pls – GuangshengZuo

+0

@GuangshengZuo添加了json内容 –

回答

0

这是一个版本不匹配。其中与不同版本的工作的陷阱。 卡夫卡0.10.2.0使用jopt-simple-4.9.jar和卡夫卡0.11.0.0使用jopt-simple-5.0.4.jar

相关问题