10 tính năng trên Apache Spark anh em nên biết

3199

Apache Spark là một công cụ đa ngôn ngữ cho phép xử lý dữ liệu, khoa học dữ liệu (data science) và học máy (machine learning) trên các node đơn (single-node machines) hoặc trên clusters.

Apache Spark

Không chỉ đơn giản như vậy, Apache Spark còn có nhiều hơn các tính năng hay ho. Vậy anh em cùng lướt qua xem 10 tính năng nổi bật trong Apache Spark là gì?

1. Fault tolerance

Tính năng đầu tiên của Apache Spark là Fault tolerance. Fault tolerance ở đây anh em có thể hiểu là khả năng chịu lỗi, khả năng xử lý lỗi. Apache Spark ngay từ khi bắt đầu đã được thiết kế để hanler lỗi từ các worker nodes.

Spark đạt được khả năng này nhờ vào sử dụng DAG và RDD (Resilient Distributed Datasets). DAG ở đây chứa tất cả các bước (step) cần thiết để hoàn thành một task. Tất cả đều được ghi lại. Chính vì vậy, khi xảy ra lỗi ở nodes worker nào đó, ta có thể tái hiện lỗi từ DAG đã lưu hiện có.

Apache Spark

2. Dynamic In Nature

Tính năng thứ hai của Apache Spark là Dynamic In Nature. Cái này anh em có thể hiểu

The applications can be written quickly in Java, Scala, Python, R. Spark offers over 80 high-level operators that make it easy to build parallel apps. And you can use it interactively from the Scala, Python and R shells. Spark powers a stack of libraries including SQL and DataFrames, MLlib for machine learning, GraphX, and Spark Streaming. You can combine these libraries seamlessly in the same application. Ứng dụng có thể viết nhanh chóng với Java, Scala, Python, R. Spark cung cấp hơn 80 toán tử cao cấp cho phép xây dựng song song các ứng dụng. Ta cũng có thể sử dụng nó để tương tác từ Scala, Python và R Shells. Spark cũng cung cấp các thư viện mạnh bao gồm SQL và DataFrames, MLlib cho học máy, GraphX và Spark Streaming. Ta có thể kết hợp lại với nhau để xây dựng nhanh chóng ứng dụng của mình.

Apache Spark

3. Lazy Evaluation

Tính năng thứ 3 của Spark là Lazy Evaluation. Với Spark thì không có bất cứ sự chuyển đổi (transformation) nào được thực hiện ngay lập tức. Tất cả đều là lazy, mỗi khi anh em thêm vào, nó sẽ đi qua DAG. Kết quả cuối cùng chỉ được đưa ra khi anh em gọi tới actions đó.

Hơn nữa, tất cả các actions liên quan tới Spark đều sẽ hiển thị lên (trực quan hoá) trước khi anh em gọi.

Apache Spark

  Tìm hiểu cơ chế Lazy Evaluation của Stream trong Java 8
  Digital Twins – xu hướng công nghệ cho ngành IoT

4. Real-Time Stream Processing

Tính năng thứ 4 của Apache Spark là Stream Processing ở chế độ Real Time. Spark Streaming đưa ra các API tích hợp ngôn ngữ của Apache Spark vào quá trình xử lý của stream. Bình thường anh em viết batch jobs theo cơ chế từ trên xuống dưới. với Apache Spark API cũng vậy, tất cả sẽ được viết như các truyền thống.

Apache Spark

5. Speed

Spark cho phép các ứng dụng chạy trên Hadoop chạy nhanh hơn 100 lần (in memory) và nhanh gấp 10 lần (trên disk). Để tăng được tốc độ này, Spark giảm thiểu hoạt động đọc ghi ở các bước trung gian (operations for intermediate). Tất cả sẽ lưu ở trên memory và chỉ thực sự ghi ra đĩa khi cần thiết.

Một số công cụ cũng giúp Spark tăng tốc độ như DAG, query optimizer và highly optimized physical.

Apache Spark

6. Reusability

Tính năng thứ 6 của Apache Spark cho phép tái sử dụng code. Spark code có thể sử dụng cho batch-processing. Các streaming cũng có thể kết nối với nhau (joining streaming data). Ở trạng thái streaming (streaming state), Spark cũng cho phép thực hiện các ad-hoc queries.

Apache Spark

Xem thêm tuyển dụng Java lương cao trên TopDev

7. Advanced Analytics

Apache Spark từ đâu đã là tiêu chuẩn để xử lý các dữ liệu lớn hoặc cực lớn. Spark cung cấp các thư viện phục vụ riêng cho Machine Learning, xử lý đồ hoạ (graph processing libraries). Tất cả các thư viện này đều hoạt động trơn tru dưới sự hỗ trợ của Spark.

Apache Spark

8. In Memory Computing

Không giống như Hadoop MapReduce, Apache Spark có khả năng xử lý các tác vụ trong bộ nhớ và không bắt buộc ghi các kết quả hoặc kết quả của các bước trung gian này vào trong bộ nhớ. Tính năng này cho phép tăng tốc độ xử lý của Apache Spark.

Kết quả của từng bước trung gian nếu cần xử lý ở bước sau cũng sẽ lưu ở trong bộ nhớ để có thể đem ra tái sử dụng.

Apache Spark

9. Supporting Multiple languages

Apache Spark tích hợp đa ngôn ngữ. Hầu hết đều có API cho các ngôn ngữ Java, Scala, Python và R. Ngoài ra, còn có các tính năng nâng cao với ngôn ngữ R để phân tích dữ liệu. Ngoài ra Spark có bộ SQL riêng là Spark SQL, tương tự với SQL. Cho phép anh em làm quen nhanh để phát triển.

Apache Spark

10. Integrated with Hadoop

Apache Spark tích hợp tốt với HDFS file system trên Hadoop. Cung cấp nhiều định dạng như Json, csv, orc, avro.

Apache Spark

11. Tham khảo thêm về Apache Spark

Cảm ơn anh em đã đọc bài – Thank you for your time – Happy coding!

Tác giả: Kiên Nguyễn

Có thể bạn quan tâm:

Tìm kiếm việc làm IT mới nhất tại TopDev!