Tersedia sistem komputasi terdistribusi Apache Storm 2.0

melihat cahaya rilis signifikan dari sistem pemrosesan acara terdistribusi Apache Badai 2.0, terkenal karena peralihannya ke arsitektur baru yang diterapkan di Java, bukan bahasa Clojure yang digunakan sebelumnya.

Proyek ini memungkinkan Anda mengatur jaminan pemrosesan berbagai acara secara real time. Misalnya, Storm dapat digunakan untuk menganalisis aliran data secara real time, menjalankan tugas pembelajaran mesin, mengatur komputasi berkelanjutan, mengimplementasikan RPC, ETL, dll. Sistem ini mendukung pengelompokan, pembuatan konfigurasi toleransi kesalahan, mode pemrosesan data terjamin dan memiliki kinerja tinggi, cukup untuk memproses lebih dari satu juta permintaan per detik pada satu node cluster.

Integrasi dengan berbagai sistem pemrosesan antrian dan teknologi database didukung. Arsitektur Storm melibatkan penerimaan dan pemrosesan aliran data yang tidak terstruktur dan terus diperbarui menggunakan prosesor kompleks yang berubah-ubah dengan kemampuan untuk mempartisi antara berbagai tahapan penghitungan. Proyek ini diserahkan kepada komunitas Apache setelah Twitter mengakuisisi BackType, perusahaan yang awalnya mengembangkan kerangka kerja tersebut. Dalam praktiknya, Storm digunakan di BackType untuk menganalisis refleksi peristiwa di mikroblog, dengan membandingkan tweet baru dan tautan yang digunakan di dalamnya (misalnya, dinilai bagaimana tautan eksternal atau pengumuman yang dipublikasikan di Twitter disiarkan ulang oleh peserta lain ).

Fungsionalitas Storm dibandingkan dengan platform Hadoop, dengan perbedaan utama adalah bahwa data tidak disimpan di gudang, namun diserap secara eksternal dan diproses secara real-time. Storm tidak memiliki lapisan penyimpanan bawaan dan kueri analitik mulai diterapkan ke data yang masuk hingga dibatalkan (sementara Hadoop menggunakan pekerjaan MapReduce waktu terbatas, Storm menggunakan gagasan untuk terus menjalankan β€œtopologi”). Eksekusi penangan dapat didistribusikan ke beberapa server - Storm secara otomatis memparalelkan pekerjaan dengan thread pada node cluster yang berbeda.

Sistem ini awalnya ditulis di Clojure dan berjalan di dalam mesin virtual JVM. Apache Foundation telah meluncurkan inisiatif untuk memigrasikan Storm ke kernel baru yang ditulis dalam Java, yang hasilnya diusulkan dalam rilis Apache Storm 2.0. Semua komponen dasar platform ditulis ulang dalam Java. Dukungan untuk penangan penulisan di Clojure tetap dipertahankan, namun kini ditawarkan dalam bentuk binding. Storm 2.0.0 memerlukan Java 8. Model pemrosesan multi-thread telah didesain ulang sepenuhnya, memungkinkan untuk mencapai peningkatan kinerja yang nyata (untuk beberapa topologi, penundaan berkurang 50-80%).

Tersedia sistem komputasi terdistribusi Apache Storm 2.0

Versi baru ini juga menawarkan Streams API baru yang memungkinkan Anda menentukan penangan menggunakan operasi gaya pemrograman fungsional. API baru ini diterapkan di atas API dasar standar dan mendukung penggabungan operasi otomatis untuk mengoptimalkan pemrosesannya. Windowing API untuk operasi jendela telah menambahkan dukungan untuk menyimpan dan memulihkan status di backend.

Dukungan untuk memperhitungkan sumber daya tambahan ketika membuat keputusan tidak terbatas
CPU dan memori, seperti pengaturan jaringan dan GPU. Sejumlah besar perbaikan telah dilakukan untuk memastikan integrasi dengan platform Kafka. Sistem kontrol akses telah diperluas untuk mencakup kemampuan membuat grup administrator dan mendelegasikan token. Menambahkan peningkatan terkait dengan dukungan SQL dan metrik. Perintah baru telah muncul di antarmuka administrator untuk men-debug status cluster.

Area penerapan Storm:

  • Memproses aliran data baru atau pembaruan basis data secara real time;
  • Komputasi Berkelanjutan: Storm dapat menjalankan kueri berkelanjutan dan memproses aliran berkelanjutan, memberikan hasil pemrosesan ke klien secara real time.
  • Panggilan Prosedur Jarak Jauh Terdistribusi (RPC): Storm dapat digunakan untuk menyediakan eksekusi paralel dari kueri intensif sumber daya. Pekerjaan (β€œtopologi”) di Storm adalah fungsi yang didistribusikan ke seluruh node yang menunggu pesan tiba yang perlu diproses. Setelah menerima pesan, fungsi memprosesnya dalam konteks lokal dan mengembalikan hasilnya. Contoh penggunaan RPC terdistribusi adalah memproses kueri penelusuran secara paralel atau melakukan operasi pada kumpulan yang besar.

Fitur Badai:

  • Model pemrograman sederhana yang sangat menyederhanakan pemrosesan data waktu nyata;
  • Dukungan untuk bahasa pemrograman apa pun. Modul tersedia untuk Java, Ruby dan Python, adaptasi untuk bahasa lain menjadi mudah berkat protokol komunikasi yang sangat sederhana yang memerlukan sekitar 100 baris kode untuk mendukung;
  • Toleransi kesalahan: untuk menjalankan pekerjaan pemrosesan data, Anda perlu membuat file jar dengan kode. Storm akan secara mandiri mendistribusikan file jar ini ke seluruh node cluster, menghubungkan penangan yang terkait dengannya, dan mengatur pemantauan. Ketika pekerjaan selesai, kode akan dinonaktifkan secara otomatis di semua node;
  • Skalabilitas horizontal. Semua perhitungan dilakukan dalam mode paralel, seiring bertambahnya beban, cukup menghubungkan node baru ke cluster;
  • Keandalan. Storm memastikan bahwa setiap pesan masuk diproses sepenuhnya setidaknya satu kali. Pesan akan diproses satu kali hanya jika tidak ada kesalahan saat melewati semua penangan; jika masalah muncul, maka upaya pemrosesan yang gagal akan diulangi.
  • Kecepatan. Kode Storm ditulis dengan mempertimbangkan kinerja tinggi dan menggunakan sistem untuk pengiriman pesan asinkron yang cepat NolMQ.

Sumber: opennet.ru

Tambah komentar