Ngày nay, có nhiều hệ thống đang sử dụng Hadoop để phân tích và xử lý dữ liệu lớn. Ưu điểm lớn nhất của Hadoop là việc sử dụng mô hình lập trình song song có tên là MapReduce cho việc xử lý dữ liệu lớn. Điều này cho phép năng suất tính toán có thể được mở rộng, giảm thời gian xử lý và giảm chi phí. Tuy nhiên, một nhược điểm của Hadoop là tất cả các thao tác phải được thực hiện trên ổ đĩa cứng, dẫn đến giảm tốc độ tính toán.
Bạn đang xem: Tìm hiểu về Apache Spark
Để khắc phục nhược điểm này, Apache Spark đã ra đời. Apache Spark có thể chạy nhanh hơn 10 lần so với Hadoop trên ổ đĩa cứng và hơn 100 lần khi chạy trên bộ nhớ RAM.
Apache Spark là một framework tính toán cụm mã nguồn mở, được phát triển từ năm 2009 bởi AMPLab và sau đó chuyển giao cho Apache Software Foundation vào năm 2013. Tốc độ xử lý của Spark đạt được nhờ tính toán song song trên nhiều máy chủ cùng một lúc và tính toán trong bộ nhớ (in-memory computing), thay vì trên ổ đĩa cứng.
Xem thêm : Cách dùng "TO" trong Tiếng anh
Spark cung cấp khả năng xử lý dữ liệu theo thời gian thực, cho phép nhận dữ liệu từ nhiều nguồn khác nhau và xử lý ngay lập tức (Spark Streaming). Nó không phụ thuộc vào một hệ thống file cụ thể và hỗ trợ nhiều định dạng file khác nhau như text, csv, json.
Apache Spark bao gồm 5 thành phần chính: Spark Core, Spark Streaming, Spark SQL, MLlib và GraphX, trong đó:
- Spark Core là nền tảng cho các thành phần khác và đảm nhận vai trò tính toán và xử lý trong bộ nhớ (in-memory computing). Nó cũng tham chiếu các dữ liệu được lưu trữ tại các hệ thống lưu trữ bên ngoài.
- Spark SQL cung cấp một kiểu abstraction mới (SchemaRDD) để hỗ trợ xử lý cả dữ liệu có cấu trúc và nửa cấu trúc. Nó hỗ trợ ngôn ngữ DSL để thao tác với DataFrames, cũng như ngôn ngữ SQL qua giao diện command-line và ODBC/JDBC server.
- Spark Streaming được sử dụng để phân tích dữ liệu theo thời gian thực bằng cách coi dữ liệu như các mini-batch. Điều này cho phép tái sử dụng mã đã viết cho xử lý dữ liệu theo lô vào xử lý dữ liệu theo luồng.
- MLlib (Machine Learning Library) là nền tảng học máy phân tán trên Spark, có hiệu năng nhanh hơn 9 lần so với Apache Mahout chạy trên Hadoop.
- GraphX là nền tảng xử lý đồ thị dựa trên Spark, cung cấp các API để tính toán trong đồ thị sử dụng Pregel API.
- Xử lý dữ liệu: Spark có khả năng xử lý dữ liệu theo lô và thời gian thực.
- Tính tương thích: Spark có thể tích hợp với tất cả các nguồn dữ liệu và định dạng tệp được hỗ trợ bởi hệ sinh thái Hadoop.
- Hỗ trợ ngôn ngữ: Spark hỗ trợ Java, Scala, Python và R.
- Phân tích thời gian thực:
- Apache Spark có khả năng xử lý dữ liệu thời gian thực từ hàng triệu sự kiện mỗi giây, ví dụ như dữ liệu từ Twitter hoặc Facebook. Điều này cho phép xử lý luồng trực tiếp hiệu quả.
- Apache Spark cũng có thể được sử dụng để phát hiện gian lận trong các giao dịch ngân hàng thời gian thực.
- Mục tiêu sử dụng:
- Xử lý dữ liệu nhanh và tương tác
- Xử lý đồ thị
- Công việc lặp đi lặp lại
- Xử lý thời gian thực
- Joining Dataset
- Machine Learning
- Apache Spark là một framework ứng dụng, không thay thế cho Hadoop. Nó được sử dụng rộng rãi hơn với khả năng xử lý hàng loạt và thời gian thực.
Hiện nay, nhiều công ty lớn đã sử dụng Spark cho các sản phẩm của họ, như Yahoo, ebay, IBM, Cisco…
Với sự phát triển mạnh mẽ gần đây của Apache Spark, các lập trình viên và nhà khoa học máy tính có một công cụ hiệu quả để phục vụ công việc của họ. Spark dần dần thay thế Hadoop và trở thành một phần quan trọng trong “Big data Stack”, mở ra nhiều lựa chọn hơn cho người dùng không chỉ là Hadoop.
https://spark.apache.org/
https://www.mastercode.vn/blog/web-development/apache-spark-la-gi.85
http://itechseeker.com/
Nguồn: https://stamboom-boden.com
Danh mục: Là Gì