Rumah  >  Artikel  >  Java  >  Peranan Storm dalam pemprosesan data besar Java

Peranan Storm dalam pemprosesan data besar Java

WBOY
WBOYasal
2024-04-20 12:45:02912semak imbas

Storm ialah rangka kerja teragih untuk memproses aliran data masa nyata. Seni binanya adalah berdasarkan model publish-subscribe, termasuk Spouts yang membaca data dan menerbitkannya ke dalam topologi, dan Bolts yang memproses data. Dalam amalan, Storm boleh digunakan untuk mengira trafik tapak web masa nyata: // Cipta Spouts dan Bolts untuk memproses trafik tapak web dan mengira purata bilangan permintaan // Gunakan StormSubmitter untuk menyerahkan topologi Storm ialah rangka kerja berkuasa yang sangat sesuai untuk pemprosesan aliran data masa nyata.

Peranan Storm dalam pemprosesan data besar Java

Peranan Ribut dalam Pemprosesan Data Besar Java

Pengenalan
Apache Storm ialah rangka kerja pemprosesan strim masa nyata yang diedarkan untuk memproses sejumlah besar strim data masa nyata yang dijana oleh aplikasi, penderia. . Ia terkenal dengan daya pemprosesan yang tinggi, kependaman rendah dan toleransi kesalahan.

Senibina
Storm adalah berdasarkan model publish-subscribe, di mana penerbit data dipanggil Spout dan pelanggan dipanggil Bolt. Spouts membaca data daripada sumber data dan menerbitkannya ke dalam topologi Storm, manakala Bolts memproses data yang diterima dan mungkin menjana output seperti yang diperlukan.

Kes Praktikal
Pertimbangkan contoh di mana trafik tapak web perlu dikira dalam masa nyata. Kita boleh menggunakan Storm untuk mencipta topologi untuk mencapai matlamat ini:

// 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())); 
  }
}

Konfigurasi topologi
Buat dan serahkan topologi menggunakan kelas 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());

Selepas memulakan topologi, ia akan memproses data trafik laman web secara berterusan dan menjana setiap data dalam masa nyata melalui Bolt Purata bilangan permintaan sesaat.

Kesimpulan
Storm ialah rangka kerja berkuasa yang sesuai untuk memproses strim data masa nyata. Seni bina yang diedarkan, kependaman rendah dan toleransi kesalahan menjadikannya sesuai untuk pemprosesan dan analisis data besar.

Atas ialah kandungan terperinci Peranan Storm dalam pemprosesan data besar Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn