2017-02-28 1 views
0

Je travaille sur la tempête apache et utilise HDFS. Si j'utilise un indice de parallélisme pour le verrou 1, il crée un fichier, écrit des données dans un fichier et fonctionne correctement. Mais quand j'augmente l'indice de parallélisme pour le boulon à 3, il crée 3 fichiers et écrit des données dans un seul fichier.Indice de parallélisme avec HDFS

Mon application possède une goulotte et deux boulons (Xbolt et Yblot) indice Parallélisme sont les suivantes Spout 1, Xbolt 1, Ybolt 3

demande écoulement Spout -> Xbolt -> Ybolt - > fichier (s)

TopologyBuilder builder = new TopologyBuilder(); 
BoltDeclarer boltDeclarer; 

int parallelismHint = 0; 
parallelismHint = SpoutLogic.determineParallelismHint(config); 

builder.setSpout("TOPIC_ID", new Spout(), parallelismHint); 
parallelismHint = XBoltLogic.determineParallelismHint(config); 
boltDeclarer = builder.setBolt("XBOLT_ID", new XBolt(), parallelismHint);  
boltDeclarer.shuffleGrouping("TOPIC_ID","XBoltMessage"); 
parallelismHint = HDFSBoltLogic.determineParallelismHint(config); 
boltDeclarer = builder.setBolt("HDFSBOLT_ID",new HDFSBolt(), parallelismHint); 
boltDeclarer.fieldsGrouping("XBOLT_ID","XBoltMessage",new Fields("Table")); StormSubmitter.submitTopology("MyTopologyName", config, builder.createTopology()); 
+0

Quel est votre modèle de connexion? peut-il être, que toutes les données sont acheminées à un seul boulon seulement? –

+0

@gudivinay fournir votre code de pilote s'il vous plaît – Alex

+0

@ MatthiasJ.Sax, Oui toutes les données sont routées vers un bot unique.i.e boulon HDFS et j'utilise boulon HDFS abstraite pour l'écriture des données dans un fichier. –

Répondre

0

Si vous utilisez fieldGrouping, il peut arriver que toutes les données hachurées au boulon (même si cela est peu probable) .shuffle() aurait envoyé les données de la mode ronde aux boulons .