fields grouping
风暴。tuple
在机器之间移动,我怀疑这会大大降低我的性能。account1
要粘贴machine1
account2
machine3
account3
machine1
所有螺栓都要粘account
每个bolt
使{1}}等所有螺栓都在特定的机器上运行?accountid
处理该事件,它就会在其输出元组中发出bolts
所有accountid
从该点开始,并且field grouping
意味着我想要从accountid
开始bolts
topology
select G.Name , count(*) from enduser EU, prescription P,prescriptiongame PG ,
games G ,session S ,entries E where P.EndUserRefID = 889 and E.action='correctAnswer' and (EU.UserRefID = P.EndUserRefID) and (PG.PrescriptionRefID = P.PrescriptionID) and (G.GameID = PG.GameRefID) and (S.PrescriptionRefID = P.PrescriptionID) and (E.SessionGameRefID = S.Session)
GROUP BY G.Name
ORDER BY G.Name
#!/usr/bin/env perl
my $number1 = 2.198696207;
my $number2 = 2.134326286;
my $diff = $number1 - $number2;
print STDOUT "\n 2.198696207 - 2.134326286: $diff\n";
$number1 = 0.449262271;
$number2 = 0.401361096;
$diff = $number1 - $number2;
print STDOUT "\n 2.198696207 - 2.134326286: $diff\n";
。 (在看到第一个答案后加入澄清)答案 0 :(得分:1)
假设你有3个生产商P1,P2,P3和三个消费者C1,C2,C3和3台机器,每台机器都有一个生产者 - 消费者对,即P1-C1。此外,假设您有3个不同的键值a,b,c
。此外,假设C1使用键a
处理所有元组。
通常,具有键a
的元组可以由所有三个生成器发出。此外,P1还可以使用键b
或c
发出元组。因此,您无法使用字段分组将数据传输限制到本地计算机,只需对所有数据进行重新分区即可。
<强>扩展强>
如果你有额外的螺栓B1到B3消耗从C1到C3的数据,那些使用相同的字段分组键作为C1到C3(即Bx可以利用已经给定的Cx分区),你需要确保B1到B3共同位于与C1到C3相同的机器上,避免重新分区。可以通过为Storm提供自定义调度程序来实现协同定位。请参阅此处以获取示例:WebDriver click() vs JavaScript click()
但是,您无法使用字段分组来连接B1-&gt; C1等,因为字段分组与运营商协同定位和已经给定的分区数据无关(它只会重新再次分区数据)。相反,您需要使用直接或自定义分组来确保B1中的所有数据都被发送到C1等。
答案 1 :(得分:1)