我创建了一个地图缩减作业来获取某个地点的员工数量。 我使用的是hazelcast 3.6.3。每位员工都有姓名和地址。
我已将我的代码添加到以下git存储库中。 https://github.com/adasari/hazelcast-demo
例外:
你能指出我的问题吗?java.util.concurrent.ExecutionException:java.lang.ClassCastException:com.hazelcast.mapreduce.aggregation.impl.DistinctValuesAggregation $ SimpleEntry无法强制转换为com.hazelcast.query.impl.Extractable 在com.hazelcast.mapreduce.impl.task.TrackableJobFuture.setResult(TrackableJobFuture.java:68) 在com.hazelcast.mapreduce.impl.task.JobSupervisor.notifyRemoteException(JobSupervisor.java:156) at com.hazelcast.mapreduce.impl.operation.NotifyRemoteExceptionOperation.run(NotifyRemoteExceptionOperation.java:54) 在com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:172) 在com.hazelcast.spi.impl.operationservice.impl.OperationRunnerImpl.run(OperationRunnerImpl.java:393) 在com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.processPacket(OperationThread.java:184) 在com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.process(OperationThread.java:137) 在com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.doRun(OperationThread.java:124) 在com.hazelcast.spi.impl.operationexecutor.classic.OperationThread.run(OperationThread.java:99) 引起:java.lang.ClassCastException:com.hazelcast.mapreduce.aggregation.impl.DistinctValuesAggregation $ SimpleEntry无法强制转换为com.hazelcast.query.impl.Extractable 在com.hazelcast.query.impl.predicates.AbstractPredicate.readAttributeValue(AbstractPredicate.java:129) 在com.hazelcast.query.impl.predicates.AbstractPredicate.apply(AbstractPredicate.java:55)
感谢。
答案 0 :(得分:0)
不完全确定您要查找的内容或您要执行的操作(查看代码),但问题出在此处:
引起:java.lang.ClassCastException:com.hazelcast.mapreduce.aggregation.impl.DistinctValuesAggregation $ SimpleEntry无法强制转换为com.hazelcast.query.impl.Extractable
因此,您必须使用SimpleEntry类实现Extractable接口。
答案 1 :(得分:0)
我还没有在MapReduce上工作,但在查看/执行代码时,我的观察结果如下。
SimpleEntry
类,DistinctValuesAggregation
的内部类,它不会实现Extractable
。我发现只运行单个节点运行群集时代码运行良好。所以我怀疑上述缺陷会影响多个节点的聚合。
HazelcastInstance hazelcastInstance = buildCluster(1);
答案 2 :(得分:0)
以下行动解决了问题 - 1. DistinctMapper实现DataSerializable 2. SimpleEntry扩展了QueryableEntry