hadoop与hdfs的并行提示

u3r8eeie  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(344)

我正在开发apachestorm并使用hdfs。如果我对bolt1使用parallelism提示,它正在创建一个文件,将数据写入该文件并正常工作。但当我将parallelism hint for bolt增加到3时,它将创建3个文件,并将数据只写入一个文件。
我的应用程序有一个喷口和两个螺栓(xbolt和yblot)平行提示如下:喷口1、xbolt 1、ybolt 3
应用程序流喷口-->xbolt-->ybolt-->文件

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());
bprjcwpo

bprjcwpo1#

如果使用fieldgrouping,所有数据都可能散列到螺栓(即使这不太可能)。shuffle()将以循环方式将数据发送到螺栓。

相关问题