Xây dựng một Realtime Dashboard sử dụng Spark Streaming, Kafka, Nodejs và MongoDB

Hello! Sau mấy ngày cuối tuần vật vả với coding, không đi đâu cả (lý do là có bão thoai!) thì tui cũng đã thử nghiệm xong với cái việc đã đề ra ở bài trước đó là dùng Spark Streaming để lấy dữ liệu từ Kafka. Không chỉ dừng lại ở đó, tui cũng đã làm luôn cái Real-time Dashboard để hiển thị cái dữ liệu mà Spark đã lấy về và xử lý.

Kịch bản của tui cho bài tutorial này là như sau:

Giả sử tui có một website bán xe đạp vô cùng lớn đi ha (ví dụ là http://xedapnhat.vn Happy-Grin ), bán các nhãn hiệu xe đạp bao gồm: Trek, Giant, Jett, Cannondale, Surly. Do bán số lượng lớn mà, cho nên tui muốn xem coi là cứ 30s thì có bao nhiêu chiếc xe của từng nhãn hiệu này được bán và nó sẽ hiển thị thông tin đã được xử lý lên cái Dashboard. (more…)

Read More

Tạo một Kafka Producer để giả lập nguồn dữ liệu đầu vào bằng ngôn ngữ Scala

Hi all, như đã nói trong phần cuối của bài cài đặt Kafka, hôm nay tui sẽ thử viết một cái custom Producer để tạo nguồn dữ liệu đầu vào cho Kafka Single Node. Trong bài trước, tui đã thử chạy cái producer mặc định của Kafka đó là mỗi lần nhập một đoạn text từ bàn phím thì bên Consumer sẽ nhận được cái đoạn text đó ngay tức thì. Vậy, cái event xảy ra đó là nhập liệu từ bàn phím và data phát sinh ra từ cái event này chính là nội dung text mà tui đã nhập. Do đó, tạo một custom Producer chẳng qua là mình sẽ làm cái việc là cho cái custom Producer này collect dữ liệu từ các event khác nhau rồi xào nấu gì đó với cái data này sau đó send nó đi.

Do tui vẫn muốn sử dụng lại cái chương trình WordCount lúc trước khi tìm hiểu Spark, thay vì WordCount nó sẽ đọc text từ file rồi thống kê từ thì bây giờ tui muốn là chương trình WordCount nó sẽ hứng dữ liệu từ Kafka Streaming, có nghĩa là chương trình WordCount của Spark sẽ làm Consumer. Vậy nên, cái custom Producer này nó sẽ đọc data Words ở đâu đó, cụ thể là từ một file chứa 500 từ, mỗi lần nó chỉ lấy ramdom 10 từ, sau đó send 10 từ này đi, WordCount sẽ hứng lấy 10 từ này và thông kê. Trong phạm vi bài hôm nay, tui sẽ tạo cái Producer này, bài kế tiếp tui sẽ chỉnh sửa cái chương trình WordCount lại thành Consumer của Kafka. Các bạn xem workflow như sau:

Tuy là làm demo thì 3 cái block này nằm trên một máy localhost, nhưng trên thực tế nếu có điều kiện thì 3 block này có thể nằm trên 3 hệ thống khác nhau. (more…)

Read More

Tìm hiểu và cài đặt Apache Kafka Single Node/Single Broker trên Windows 10

Chào các bạn! Khi tìm hiểu về các công cụ để làm việc với Big Data, tui thấy càng tìm hiểu, càng thú vị các bạn ạ. Đáng lẽ bài tiếp theo này phải là Spark Streaming, nhưng khi tìm hiểu Spark Streaming, tui được dẫn tới cái anh Apache Kafka này và tui thấy cái này cũng cần thiết để làm một system hoàn chỉnh cho nên tui sẽ làm bài tutorial về cái này luôn để sau này chuyển qua Spark Streaming nó sẽ có hệ thống hơn.

Nếu muốn sử dụng Spark Streaming để xử lý data real-time, chúng ta cần có một cái nguồn data Streaming để tạo data liên tục thì mới thấy được cái hay của Spark Streaming. (more…)

Read More