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

Truy vấn dữ liệu từ MongoDB với Apache Spark

Chào các bạn. Đã nói là dân lập trình, viết chương trình thì dù là Application độc lập hay là Web thì điều đầu tiên là phải nghĩ ngay đến cái framework hay cái platform mình sử dụng nó có làm việc được với các hệ Database hay không bao gồm cả có quan hệ hay không có quan hệ. Đây cũng chính là câu hỏi tui tự đặt ra khi tìm hiểu Apache Spark.

Như trong bài đầu tiên tui có nói là đối với Big Data thì tui chọn 2 cái Database đó là MongoDB và Elasticsearch vậy nên trong bài hôm nay, tui sẽ thử dùng Apache Spark để kết nối và truy vấn data từ MongoDB (còn Elasticsearch thì sẽ viết một bài riêng sau). May mắn thay, MongoDB có tạo một thư viện để cho Spark nó “nói chuyện” được với MongoDB tên là MongoDB Spark Connector. Kịch bản của hôm nay cũng đơn giản thôi: đó là save một mớ document từ file json vào MongoDB, sau đó dùng câu SQL để lấy dữ liệu lên lại, sau đó hiển thị các record ra. (more…)

Read More

Viết ứng dụng Word Count trên Spark bằng Scala, sử dụng Intellij IDEA Community

Ở bài mở đầu, tui đã hướng dẫn cài đặt Spark 1.6.3 trên Windows 10 rồi. Trong bài này, tui thử viết một ứng dụng chạy trong môi trường Spark bằng ngôn ngữ Scala với IDE Intellij IDEA phiên bản Community.

Đối với Spark, các bạn có thể viết ứng dụng bằng 4 ngôn ngữ: Scala, Java, Python, R. Nhưng tui lại thích chọn Scala bởi vì:

  • Spark được build bằng Scala
  • Đã từng làm qua Java, C#, nhưng lại thích kiểu lập trình không cần khai báo datatype như PHP mà Spark không hổ trợ PHP cho nên quyết định dùng Scala bởi Scala có cú pháp gần giống Java mà lại không cần khai báo datatype giống PHP

Đó là ý kiến cá nhân của tui thôi, còn các bạn thích ngôn ngữ nào trong 3 cái còn lại thì cứ dùng nó, chả ảnh hưởng ai cả đâu.

(more…)

Read More

Cài đặt Apache Spark 1.6.3 trên Windows 10

Chào các bạn. Hôm nay, tui mở thêm một chủ đề mới về Big Data. Về khái niệm Big Data, tui cũng đã nghe nói nhiều từ hơn một vài năm trước lận nhưng gần đây mới có thời gian research. Đại khái là theo sự hiểu biết của tui là nếu bạn có trong tay một tập dữ liệu cực kỳ lớn gần cả triệu record, mỗi record có khoản vài chục column và mỗi ngày nó lại tăng thêm. Bạn có nhu cầu là cần thao tác nhanh trên tập dữ liệu này để lấy ra một tập dữ liệu cần thiết để phân tích, đưa ra số liệu cụ thể cho một công việc nào đó thì đấy là Big Data. Vậy vấn đề được đặt ra là:

  1. Làm sao để lưu trữ cái đống dữ liệu to lớn đó sao cho dễ quản lý và sử dụng, truy vấn nhanh?
  2. Làm sao để phân tích nhanh nhất có thể đối với dữ liệu cực lớn này?

(more…)

Read More