Tổng hợp 15 công nghệ mã nguồn mở cho hệ thống dữ liệu lớn (big data).

Việc lưu trữ, vận hành, tra cứu, truyền tải các nguồn dữ liệu lớn luôn được các công ty, tổ chức, hay nói chung là cả thế giới đều rất quan tâm. Như chúng ta đã biết việc lưu trữ và sử dụng một nguồn dữ liệu lớn như database, book, text,... không phải là một công việc dễ dàng, ví dụ như khi ta tìm một quyển sách trong thư viện quốc hội Mỹ (thư viện lớn nhất thế giới) bạn sẽ tưởng tượng độ khó của nó như thế nào ^^! Vì thế các nhà quản trị hệ thống, lập trình viên, nhà phát triển đều lưu tâm tới vấn đề này, và hiên nay cũng có rất nhiều phương pháp khác nhau để giải quyết vấn đề. Trong bài viết này tôi xin giới thiệu chính công nghệ mã nguồn mở cho hệ thống dữ liệu lớn.



1. Apache Hadoop


Apache Hadoop là phần mềm mã nguồn mở được xây dựng bởi Doug khi làm việc tại Nutch, để giải quyết việc quản lý dự liệu tập trung, chính xác hơn là để đáp ứng việc tìm kiếm dữ liệu trên website. Phần mềm được đặt tên dự theo con voi đồ chơi của con trai tác giả Doug. Hadoop trở thành một trong những công nghệ phổ biến nhất cho việc lưu trữ dữ liệu bao gồm có cấu trúc, bán cấu trúc và phi cấu trúc. Hiện nay Hadoop được phát hành theo Giấy phép Apache 2.0


2. R


R-Project là phần mềm mã mở được thiết kê cho nhu cầu thống kê dữ liệu trực quan, được phát triển bởi Ross Ihaka và Robert Gentleman tại Đại học Auckland, New Zealand, năm 1993 và nhanh chóng trở thành công cụ để phân tích, thống kê các hệ thống dữ liệu rất lớn. Nó đã được thương mại hóa bởi công ty Revolution Analytics. Phát hành theo giấy phép GNU General Public License.


3. Cascading


Cascading Là một layer (tầng) trong hadoop. Được xây dựng bởi Chris Wensel để thay thế cho sự phức tạp của MapReduce trong việc phân tích dữ liệu. Cascading được thương mại khi Wensel thành lập một công ty riêng. Hiện nay có Twitter và Etsy đang sử dụng giải pháp này.Phát hành theo giấy phép GNU General Public License.


4. Scribe


Scribe được phát triển bởi Facebook vào năm 2008. Nó được thiết kế để tổng hợp số liệu đăng nhập trực tiếp trong thời gian thực từ một số lượng lớn các máy chủ.Facebook dùng Scribe cho việc mở rộng hạ tầng cũng như quy mô của mình. Hiện nay Scribe còn được dùng để xử lý hàng triệu tin nhắn mỗi ngày. Được phát hành theo Giấy phép Apache 2.0.


5. ElasticSearch


ElasticSearch phát triển bởi Shay Banon và dựa trên Apache Lucene, ElasticSearch là một bản phân phối mã nguồn mở cho việc tìm kiếm dữ liệu trên máy chủ. Đó là một giải pháp mở rộng, hỗ trợ tìm kiếm thời gian thực mà không cần có một cấu hình đặc biệt. Nó đã được áp dụng bởi một số công ty, bao gồm cả StumbleUpon và Mozilla. ElasticSearch được phát hành theo Giấy phép Apache 2.0.


6. Apache HBase


Apache HBase Viết bằng Java và được phát triển bởi BigTable của Google, Apache HBase là một mã nguồn mở, được thiết kế để chạy trên hệ thống tập tin phân phối Hadoop (HDFS). Nó cung cấp khả năng chịu lỗi lưu trữ và truy cập nhanh. HBase là một trong vô số các phiên bản NoSQL sẵn có trong nhiều năm qua. Trong năm 2010, Facebook đã thông qua HBase để phục vụ nền tảng tin nhắn của họ. Được phát hành theo Giấy phép Apache 2.0.


7. Apache Cassandra


Apache Cassandra một phiên bản khác của NoSQL được Facebook phát triển cho việc tìm kiếm Inbox (inbox search) của họ. Facebook đã không dùng Cassandra sau khi phát triển Hbase năm 20120.Tuy nhiên Hbase vẫn được nhiều công ty lớn sử dụng trong đó có Netflix. Được phát hành theo Giấy phép Apache 2.0.


8. MongoDB


MongoDB được phát triển bởi Founder (người sáng lập) của doubleclick. MongoDB cũng là một phiên bản nổi tiếng của NoSQL. Nó lưu trữ dữ liệu theo cấu trúc JSON và BSON (Binary của JSON).MongoDB đã được áp dụng bởi một số doanh nghiệp lớn, bao gồm MTV Networks, craigslist, Disney Interactive Media Group, The New York Times và Etsy.


9. Apache CouchDB


Apache CouchDB là một phiên bản khác của NoSQL. Cũng lưu trữ dữ liệu dạng JSON và dùng Javascript như các câu truy vấn để lấy dữ liệu.Apache CouchDB được tạo ra vào năm 2005 bởi IBM Lotus Notes. Họ đã dùng nó cho việc lưu trữ hệ thống dữ liệu lớn bởi tính năng động của nó. Được phát hành theo Giấy phép Apache 2.0.


10. Apache Nifi


Apache Nifi sinh ra từ Cơ quan An ninh Quốc gia (NSA) dự án, Apache Nifi là một dự án Apache cấp cao cho dàn luồng dữ liệu từ các nguồn dữ liệu khác nhau. Nó tập hợp dữ liệu từ các cảm biến, máy móc, thiết bị vị trí địa lý, các tập tin kích chuột và nguồn cấp xã hội qua một, đại lý nhẹ an toàn. Nó cũng làm trung gian an toàn point-to-point và các luồng dữ liệu hai chiều và cho phép các phân tích, chọn lọc, gia nhập, chuyển đổi, forking hay nhân bản của dòng dữ liệu. Nifi được thiết kế để tích hợp với Kafka như là các khối xây dựng của thời gian thực các ứng dụng phân tích tiên đoán tận dụng Internet của sự vật.


11. Apache Kafka


Apache Kafka ban đầu được phát triển bởi LinkedIn, là một mã nguồn mở fault-tolerant publish-đăng tin môi giới viết bằng Scala. Kafka làm việc kết hợp với Apache Storm, Apache HBase và Apache Spark để phân tích thời gian thực và cung cấp dữ liệu trực tuyến. Đó là khả năng môi giới tin lớn suối để phân tích độ trễ thấp - như gửi tin nhắn dữ liệu không gian từ một đội xe tải đường dài hoặc các dữ liệu cảm biến từ gia nhiệt và thiết bị làm mát - làm cho nó hữu ích cho các ứng dụng Internet của Những điều. Kafka là một dự án Apache top-level.


12. Apache Knox Gateway


Apache Knox Gateway là một REST API Gateway cung cấp một điểm truy cập an toàn duy nhất cho tất cả các tương tác REST với cụm Hadoop. Bằng cách đó, nó giúp trong việc kiểm soát, hội nhập, giám sát và tự động hóa các nhu cầu quản lý và phân tích quan trọng của doanh nghiệp. Nó cũng bổ sung cụm Hadoop Kerberos bảo đảm. Knox là một dự án Apache Vườn ươm.


13. Apache Ranger


Apache Ranger là một framework cho phép theo dõi và quản lý an ninh dữ liệu toàn diện trên nền tảng Hadoop. Dựa trên công nghệ từ an ninh dữ liệu lớn chuyên XA Secure, Apache Ranger đã được thực hiện một dự án Apache Vườn ươm sau khi nhà cung cấp phân phối Hadoop Hortonworks mua lại công ty đó. Ranger cung cấp một khuôn khổ an ninh tập trung để quản lý kiểm soát truy cập hạt mịn trên Hadoop và các thành phần liên quan (như Apache Hive, HBase, vv). Nó cũng có thể kích hoạt tính năng theo dõi kiểm toán và phân tích chính sách


14. Apache Storm


Apache Storm chủ yếu được viết bằng ngôn ngữ lập trình Clojure, Apache Storm là một phân phối khung tính toán thay thế cho MapReduce hướng để xử lý thời gian thực của dữ liệu streaming. Nó rất thích hợp để tích hợp dữ liệu thời gian thực và các ứng dụng liên quan đến các luồng phân tích và giám sát ghi sự kiện. Ban đầu nó được tạo ra bởi Nathan Marz và nhóm của ông tại BackType, trước khi nó đã được mua lại bởi Twitter và phát hành mã nguồn mở. Ứng dụng Storm được thiết kế như là một "cấu trúc liên kết" mà hành động như một đường ống chuyển đổi dữ liệu. Storm là một dự án Apache top-level.

15. Apache Spark


Được phát triển bởi Matel Zaharia trong AMPLab tại UC Berkeley, Apache Spark là một mã nguồn mở cơ chế xử lý Hadoop đó là một thay thế cho Hadoop MapReduce. Spark sử dụng trong bộ nhớ nguyên thủy có thể cải thiện hiệu suất lên đến 100x hơn MapReduce cho các ứng dụng nhất định. Nó là rất phù hợp với các thuật toán máy học và phân tích tương tác. Spark bao gồm nhiều thành phần: Spark Core và bộ dữ liệu phân tán đàn hồi (RDDs), Spark SQL, Spark Streaming, MLlib Máy Thư viện Học tập và GraphX. Spark là một dự án Apache top-level.




1 comment:

  1. Cảm ơn vì bài viết. Em có một bài toán đang dự định ứng dụng hadoop nhưng chưa biết phải làm sao. Nội dung bài toán là các sensor liên tục đo và gửi chỉ số thông tin về máy chủ (sensor phân tán ở khắp nơi, thời gian gửi dữ liệu khác nhau, dữ liệu gửi về dạng file). Nhiệm vụ của em là làm sao lưu trữ được loại file lớn này và trả về file theo kết quả tìm kiếm của người dùng. Em dự kiến sử dụng Hadoop HDFS để hỗ trợ nhận, lưu trữ file thì có ổn không? Có tut nào hướng dẫn không ạ?

    ReplyDelete