Storm은 실시간 데이터 스트림을 처리하기 위한 분산 프레임워크입니다. 해당 아키텍처는 데이터를 읽고 이를 토폴로지에 게시하는 Spout와 데이터를 처리하는 Bolt를 포함하는 게시-구독 모델을 기반으로 합니다. 실제로 Storm은 실시간 웹 사이트 트래픽을 계산하는 데 사용할 수 있습니다. // Spouts 및 Bolt를 생성하여 웹 사이트 트래픽을 처리하고 평균 요청 수를 계산합니다. // StormSubmitter를 사용하여 토폴로지를 제출합니다. Storm은 처리에 매우 적합한 강력한 프레임워크입니다. 실시간 데이터 흐름.
Java 빅 데이터 처리에서 Storm의 역할
소개
Apache Storm은 애플리케이션, 센서 또는 기타 소스에서 생성된 대량의 실시간 데이터 스트림을 처리하기 위한 분산 실시간 스트림 처리 프레임워크입니다. . 높은 처리량, 낮은 대기 시간 및 내결함성으로 잘 알려져 있습니다.
Architecture
Storm은 데이터 게시자를 Spout라고 하고 구독자를 Bolt라고 하는 게시-구독 모델을 기반으로 합니다. Spouts는 데이터 소스에서 데이터를 읽고 이를 Storm 토폴로지에 게시하는 반면 Bolts는 수신된 데이터를 처리하고 필요에 따라 출력을 생성할 수도 있습니다.
실용 사례
웹사이트 트래픽을 실시간으로 계산해야 하는 예를 생각해 보세요. 이 목표를 달성하기 위해 Storm을 사용하여 토폴로지를 생성할 수 있습니다.
// Spout类 class WebsiteTrafficSpout extends SpoutBase { private final AtomicInteger count = new AtomicInteger(); @Override public void nextTuple() { emit(new Values("website", count.incrementAndGet())); } } // Bolt类 class WebsiteTrafficBolt extends BaseBasicBolt { private final Histogram histogram = new Histogram(); @Override public void execute(Tuple input, BasicOutputCollector collector) { String website = input.getStringByField("website"); int count = input.getIntegerByField("count"); histogram.update(count); collector.emit(new Values("website", website, histogram.getMean())); } }
토폴로지 구성
StormSubmitter 클래스를 사용하여 토폴로지 생성 및 제출:
StormSubmitter.submitTopology("website-traffic-topology", new Config(), new TopologyBuilder() .setSpout("traffic-spout", new WebsiteTrafficSpout(), 1) .setBolt("traffic-bolt", new WebsiteTrafficBolt(), 1) .shuffleGrouping("traffic-spout", "traffic-bolt") .createTopology());
토폴로지를 시작한 후에는 지속적으로 웹 사이트 트래픽 데이터를 처리하고 각 데이터를 생성합니다. Bolt를 통해 실시간으로 데이터를 전송하는 초당 평균 요청 수입니다.
결론
Storm은 실시간 데이터 스트림 처리에 이상적인 강력한 프레임워크입니다. 분산 아키텍처, 짧은 대기 시간 및 내결함성을 갖추고 있어 빅 데이터 처리 및 분석에 이상적입니다.
위 내용은 Java 빅데이터 처리에서 Storm의 역할의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!