【发布时间】:2018-11-05 16:41:59
【问题描述】:
我检查了 Hazelcast Jet 以满足我的项目需求,但我发现文档在以下主题方面确实含糊不清:
1) 当我对两个列表流执行数据连接时...例如:
BatchStage<Trade> trades = p.drawFrom(list("trades"));
BatchStage<Entry<Integer, Broker>> brokers =
p.drawFrom(list("brokers"));
BatchStage<Tuple2<Trade, Broker>> joined = trades.hashJoin(brokers,
joinMapEntries(Trade::brokerId),
Tuple2::tuple2);
joined.drainTo(Sinks.logger());
那么我可以告诉 Jet 下面实际会发生什么连接吗? 地图侧连接或减少侧连接......?我的意思是想象一下“经纪人”规模很小,而交易规模很大。执行这两组连接的最佳技术是地图侧连接,也就是广播连接....当 Jet 进行连接时,哪些数据将通过网络传输?是否有任何基于尺寸的优化?
2) 我正在测试以下场景:
简单的管道:
private Pipeline createPipeLine() {
Pipeline p = Pipeline.create();
BatchStage stage = p.drawFrom(Sources.<Date>list("master"));
stage.drainTo(Sinks.logger());
return p;
}
list("master") 不断被集群中的另一个节点填充。现在,当我将此管道提交到集群时,只有列表(“master”)的子集被排入记录器。我可以以某种方式将 Jet 作业设置为不断地将list("master") 排出到标准输出吗?
提前致谢
【问题讨论】:
-
你有没有看reference manual?