据我所理解;
只在reducer中排序
按订单排序全球,但将所有东西都推到一个减速器中
通过密钥散列智能地将东西分配到reducers中并进行排序
所以我的问题是集群保证全球秩序?分配通过将相同的密钥放入相同的减速器但是相邻的密钥呢?
我正在尝试通过Apache Kafka加载数据并不断收到此错误:
kafka.common.OffsetOutOfRangeException:偏移量1003786超出了kafka.log.Log $ .findRange(Log.scala:46)的范围,位于kafka.log.Log.read(读取:264),位于kafka.server.KafkaRequestHandlers. kafka $ server $ KafkaRequestHandlers $$ readMessageSet(KafkaRequestHandlers.scala:112)at kafka.server.KafkaRequestHandlers $$ anonfun $ 2.apply(KafkaRequestHandlers.scala:101)at kafka.server.KafkaRequestHandlers $$ anonfun $ 2.apply(KafkaRequestHandlers.scala :100)scala.collection.TraversableLike $$ anonfun $ map $ 1.apply(TraversableLike.scala:206)at scala.collection.TraversableLike $$ anonfun $ map $ 1.apply(TraversableLike.scala:206)at scala.collection.在scala.collection.mutable.ArrayOps.foreach(ArrayOps.scala:34)在scala.collection.TraversableLike $ class.map(TraversableLike.scala:206)在scala.collection:IndexedSeqOptimized $ class.foreach(34 IndexedSeqOptimized.scala) .mutable.ArrayOps.map(ArrayOps.scala:34)位于kafka.server.K的kafka.server.KafkaRequestHandlers.handleMultiFetchRequest(KafkaRequestHandlers.scala:100)afkaRequestHandlers $$ anonfun $ handlerFor $ 3.apply(KafkaRequestHandlers.scala:40)在kafka.server.KafkaRequestHandlers $$ anonfun $ handlerFor $ 3.apply(KafkaRequestHandlers.scala:40)在kafka.network.Processor.handle(SocketServer.scala: 296)at kafka.network.Processor.read(SocketServer.scala:319)at kafka.network.Processor.run(SocketServer.scala:214)at java.lang.Thread.run(Thread.java:724)
这个例外意味着什么以及如何解决它?
下面是我的函数,它给出了给定数组中的元素总和达到特定目标的所有可能性。我可以打印列表,但是结果列表没有更新。
public List<List<Integer>> helper(List<List<Integer>> res, int[] c, int l, int h, int target, List<Integer> temp){
if(target == 0){
res.add(temp);
System.out.println(temp);
return res;
}
if(target < c[l]){
return res;
}
for(int i = l; i <=h; i++){
temp.add(c[i]);
res = helper(res, c,i,h,target-c[i], temp);
temp.remove(temp.size()-1);
}
return res;
}
Run Code Online (Sandbox Code Playgroud)
res 最后是空数组列表的数组列表,但第 5 行正确打印临时数组列表。
该函数的调用如下。
List<List<Integer>> res = new ArrayList<List<Integer>>();
List<Integer> temp = new ArrayList<Integer>();
res = helper(res,candidates, 0, candidates.length-1, target, temp);
Run Code Online (Sandbox Code Playgroud)
示例:给定数组 = [1,2,3],目标 = 6
标准输出:
[1, 1, 1, 1, 1, …Run Code Online (Sandbox Code Playgroud)