Apache Storm Là Gì

  -  

1. Giới thiệu

1.1. Apabít Storm là gì?

*
Apabịt Storm là hệ thống tính toán phân tán mã mối cung cấp mở thời hạn thực miễn chi phí. Nếu nlỗi Hadoop cách xử lý tài liệu một loạt (batch processing) thì Apabịt Storm thực hiện giải pháp xử lý tài liệu luồng (unbounded streams of data) một cách an toàn.

Bạn đang xem: Apache storm là gì

Storm được phát triển bởi Nathan Marz cùng team BackType, về sau được Twitter mua lại vào năm 2011. Năm 2013, Twitter công khai Storm bên trên GitHub. Storm đang cũng tmê say gia vào Apađậy Software Foundation vào năm trước đó. Apache Storm được viết bằng Java cùng Clojure và đã trở thành chuẩn cho các hệ thống tính toán thù phân tán thời hạn thực.

1.2. Đặc điểm

Có thể xử lý hơn một triệu tính tân oán vào một thời hạn ngắn trên một nodeTích phù hợp với hadoop để khai thác lượng ban bố cao hơnDễ triển khai cùng có thể cửa hàng cùng với bất kỳ ngữ điệu lập trình sẵn nào

2. Các khía niệm

Storm đọc luồng dữ liệu thời hạn thực, truyền sang một chuỗi các đơn vị chức năng xử lý nhỏ cùng trả về lên tiếng hữu dụng làm việc đầu cơ. Chuỗi xử lý được xác minh bởi topology (thứ thị tính tân oán có hướng).

*

2.1. Tuple

Tuple là kết cấu dữ liệu bao gồm vào Storm. Đó là danh sách những nguyên tố được bố trí. Một Tuple cung cấp toàn bộ các loại dữ liệu. Nói tầm thường, nó được quy mô hóa như một tập hòa hợp các quý giá được phân cách bằng vết phẩy với được đưa mang đến một cụm Storm.

2.2. Stream

Stream là một trong những chuỗi các tuple ko thu xếp.

*

2.3.Spouts

Spouts là mối cung cấp của stream. Một spout hoàn toàn có thể được coi là một địa điểm đón nhận các dữ liệu nguồn vào vào mô hình phong cách thiết kế Storm. Nó vào vai trò tích lũy các dữ liệu từ bỏ hệ thống Kafka hoặc tự Twitter API hoặc ngẫu nhiên hệ thống nào cung cấp qui định cách xử trí dữ khiếu nại theo luồng.Spouts tất cả trách rưới nhiệm liên lạc cùng với nguồn dữ liệu thực tế, dấn dữ liệu liên tiếp, đổi khác dữ liệu kia thành các luồng tài liệu thực tế cùng sau cùng gửi chúng cho các Bolts nhằm cách xử lý.

ISpout là giao diện chủ công để thực hiện các spouts.

2.4. Bolts

Bolt là đơn vị cách xử trí.

Bolt nhận dữ liệu từ bỏ Spouts và cách xử trí nhằm tạo nên mối cung cấp tài liệu bắt đầu cho những bolt khác hoặc gửi tài liệu nhằm tàng trữ. Bolt có công dụng chạy những hàm, thanh lọc tuple, tổng vừa lòng cùng nối các luồng, link cùng với các đại lý dữ liệu, v.v.

IBolt là hình ảnh cơ bản để tiến hành các Bolts.

*

2.5. Topologies

Topology là 1 trong những cấu tạo link các Spouts và Bolts. Hay dễ dàng và đơn giản, topology là 1 trong vật dụng thị được bố trí theo hướng với các đỉnh là chỗ tính toán, còn các cạnh là luồng tài liệu.

Một topology bước đầu cùng với spout. Spout phân phát ra dữ liệu mang lại một hoặc nhiều bolt. Bolt thay mặt đại diện cho 1 nút trong topology bao gồm súc tích xử lý bé dại tuyệt nhất cùng đầu ra của một bolt có thể biến đổi nguồn vào của 1 bolt khác hoặc được gửi cho địa điểm lưu trữ.

Storm giữ mang lại cấu tạo liên kết luôn chạy, cho đến khi topology bị tắt. Công vấn đề bao gồm của Apabít Storm là chạy các topology và đã chạy ngẫu nhiên số lượng topology nào trên 1 thời điểm nhất định.

2.6. Tasks (tác vụ)

Mỗi spout hoặc bolt thực hiện những tác vụ bên trên 1 cluster. Mỗi tác vụ khớp ứng với một luồng thực thi. Tại 1 thời điểm nhất quyết, từng spout và bolt có thể chạy trong vô số luồng lẻ tẻ.

Xem thêm: Cách Làm Đồ Chơi Giấy - Cách Làm Đồ Chơi Handmade Bằng Giấy

2.7. Worker

Topology chạy theo giải pháp phân tán, trên nhiều nút worker. Storm lan truyền các trọng trách đồng phần đa bên trên tất cả những nút ít worker. Vai trò của nút ít worker là lắng nghe các quá trình, ban đầu hoặc chấm dứt công việc khi có một các bước bắt đầu mang lại.

2.8. Stream Grouping

Luồng dữ liệu bắt đầu tự spout cho các bolt ( hoặc từ bolt này đến bolt khác ). Stream grouping tinh chỉnh và điều khiển biện pháp những tuple được định con đường trong một topology. Có 4 stream grouping chính:

Shuffle Grouping

Các tuple được phân pân hận thốt nhiên bên trên những worker của bolt Theo phong cách sao cho từng bu-lông được bảo đảm an toàn nhận ra con số bộ dữ liệu đều nhau.

*

Field Grouping

Các trường tất cả cùng quý giá trong tuple sẽ được team lại với nhau. Tuples thuộc quý hiếm trường được gửi tới thuộc worker thực hiện bên trên bolts.

Ví dụ: đội cùng trường ‘word’ thì tuple nhưng thuộc quý hiếm ‘hello’ sẽ được gửi tới cùng một worker.

*

Global Grouping

Tất cả những luồng hoàn toàn có thể được nhóm lại cùng nối tiếp tới cùng một bolt. Nhóm này gửi các tuple được sinh sản vì chưng tất cả các nguồn tới một đích duy nhất (ví dụ, lựa chọn worker gồm ID thấp nhất).

*

All Grouping

Tất cả những nhóm gửi một bản sao của từng cỗ tuple cho toàn bộ những worker của bolt dấn. Loại nhóm này được áp dụng để gửi biểu thị cho bolt.

*

3. Kiến trúc Cluster

*

3.1. Các phong cách nodes trong storm cluster

Nimbus (Master node)

Nimbus là thành phần trung trung ương của Apabịt Storm. Nimbus Chịu trách rưới nhiệm phân phối hận tài liệu giữa tất cả những worker node, gán trọng trách cho các node kia với theo dõi lỗi.Do Storm thiếu hụt kĩ năng quản lý tinh thần, Nimbus phải phụ thuộc vào ZooKeeper nhằm đo lường và tính toán những thông điệp được gửi bởi vì những worker node trong lúc cách xử lý các trọng trách. Tất cả các worker node update tinh thần trách nhiệm của mình trong ZooKeeper service đến Nimbus giúp thấy và giám sát.

Supervisor (Worker node)

Supervisor chịu đựng trách nát nhiệm dấn công việc được giao cho 1 sản phẩm công nghệ từ Nimbus. Một supervisor có nhiều worker processes và nó kiểm soát và điều chỉnh các worker processes nhằm dứt các nhiệm vụ được hướng đẫn bởi nimbus. Mỗi worker processes này triển khai một tập vừa lòng bé của cấu tạo liên kết hoàn hảo.

3.2. Các thành phần khác

*

Worker process đang triển khai những task liên quan được xác minh vào topology. Một worker process sẽ không còn từ bỏ thực thi tác vụ. Thay vào kia, nó sản xuất executors với những hiểu biết bọn chúng triển khai một tác vụ rõ ràng. Một worker process có tương đối nhiều executors.

Executor được tạo ra vì Worker process, thực hiện 1 hoặc nhiều task dẫu vậy chỉ cho 1 spout hoặc bolt cụ thể.

Apache ZooKeeper là 1 trong hình thức dịch vụ được thực hiện vị một cluster nhằm điều phối hận chúng với duy trì vấn đề chia sẻ tài liệu cùng với những chuyên môn đồng bộ hóa khỏe khoắn. Nimbus là ko trạng thái, cho nên, nó phụ thuộc vào vào ZooKeeper để theo dõi tinh thần nút ít thao tác.ZooKeeper góp supervisor xúc tiến với nimbus. Nó gồm trách nhiệm bảo trì trạng thái của nimbus với Supervisor.

Storm không hoàn toàn là không tồn tại tinh thần. Nó lưu trữ tinh thần của chính nó trong Apabịt ZooKeeper. Dựa vào Apache ZooKeeper, một nimbus bị hư hoàn toàn có thể được khởi hễ lại với triển khai để triển khai Việc. Đôi khi, những cách thức tính toán các dịch vụ nlỗi monit đã giám sát và đo lường Nimbus cùng khởi rượu cồn lại nó giả dụ bao gồm ngẫu nhiên lỗi như thế nào.

4. Luồng thực hiện

Một cluster vào Storm thường có một nimbus cùng một hoặc các supervisor. Một yếu tắc đặc biệt khác là Apache ZooKeeper, sẽ tiến hành sử dụng để điều pân hận thân nimbus cùng các supervisor.

Ban đầu, nimbus chờ đón "Storm topology" được gửi mang đến.Sau đó, nó đang cách xử trí topology cùng tích lũy toàn bộ nhiệm vụ đang thực hiện với thứ tự nhưng tác vụ được tiến hành.Sau kia, Nimbus sẽ phân pân hận những những trọng trách cho những supervisor có sẵn.Tại một khoảng chừng thời hạn cụ thể, toàn bộ supervisor buộc phải gửi heartbeat cho nimbus để thông tin là nó còn vận động. Nếu supervisor không chuyển động (không gửi heartbeat mang đến Nimbus) thì Nimbus vẫn phân công nhiệm vụ mang đến supervisor khác. khi hoàn thành công việc, supervisor đã hóng trách nhiệm new đến.Nếu nimbus ngừng vận động bất thần thì những supervisor vẫn làm việc bình thường cùng với các trọng trách đã có giao mà không chạm chán buộc phải vấn đề gì. Trong khi mong chờ, Nimbus bị hư sẽ được khởi đụng lại tự động hóa bởi những khí cụ đo lường và thống kê hình thức (monitoring tools).Các nimbus khởi đụng lại vẫn thường xuyên các bước trên thời gian nó dừng lại. Tương tự, supervisor bị lỗi cũng có thể được khởi hễ lại tự động. Vì cả nimbus cùng supervisor có thể được tự động hóa khởi đụng lại với tiếp tục thao tác làm việc như trước đó đề nghị Storm được đảm bảo xử trí toàn bộ trách nhiệm tối thiểu một lượt.Lúc "Storm topology" được cách xử lý xong xuôi, Nimbus vẫn liên tiếp ngóng các topology không giống mang lại, những Supervisor tiếp tục hóng các bước được cắt cử tự Nimbus.

Xem thêm: Quickset64 Là Gì ? Free Quickset64 Là Gì Download

5. Kết luận

Lợi ích của Apabịt Storm

Storm là mã mối cung cấp msinh sống, mạnh bạo với gần gũi với người tiêu dùng. Nó rất có thể được áp dụng trong số cửa hàng nhỏ tuổi tương tự như các tập đoàn mập.Có năng lực Chịu đựng lỗi ( fault tolerant), linch hoạt , tin tưởng ( reliable) với có khả năng hỗ trợ các ngôn ngữ.Cho phép cách xử trí luồng thời hạn thực.Storm rất có thể theo kịp năng suất trong cả khi tăng thiết lập bằng cách thêm tài nguim con đường tính. Có kỹ năng mở rộng cao (scalable)Storm tiến hành có tác dụng mới dữ liệu với đánh giá phân phối hận từ đầu mang đến cuối vào vài giây hoặc vài ba phút ít tùy nằm trong vào sự cố gắng, tất cả độ trễ phải chăng (low latency)Storm hỗ trợ đảm bảo an toàn cách xử trí dữ liệu trong cả Lúc kết nối trong một cluster bị tiêu diệt hoặc mất tin.

Tài liệu tmê mệt khảo

https://www.tutorialspoint.com/apache_storm/apache_storm_core_concepts.htmhttps://techtalk.vn/he-thong-xu-ly-du-lieu-luong-va-kien-truc.htmlhttps://www.freecodecamp.org/news/apache-storm-is-awesome-this-is-why-you-should-be-using-it-d7c37519a427/