Apache Spark là gì


Apache Spark in-memory clusters đang là tiêu điểm chú ý của nhiều doanh nghiệp trong việc ứng dụng công nghệ vào phân tích và xử lý dữ liệu nhanh chóng. Bài viết sẽ trình bày một bức tranh tổng quan nhất về Apache Spark, một trong những giải pháp đòi hỏi phải có khi xử lý Big data.


Tổng quan về Spark

Apache Spark là một open source cluster computing framework được phát triển sơ khởi vào năm 2009 bởi AMPLab tại đại học California, Berkeley. Sau này, Spark đã được trao cho Apache Software Foundation vào năm 2013 và được phát triển cho đến nay.

Lịch sử phát triển Apache Spark

Spark cho phép xây dựng và phân tích nhanh các mô hình dự đoán. Hơn nữa, nó còn cung cấp khả năng truy xuất toàn bộ dữ liệu cùng lúc, nhờ vậy ta không cần phải lấy mẫu dữ liệu – đòi hỏi bởi các ngôn ngữ lập trình như R. Thêm vào đó, Spark còn cung cấp tính năng streaming, được dùng để xây dựng các mô hình real-time bằng cách nạp toàn bộ dữ liệu vào bộ nhớ.

Khi ta có một tác vụ nào đó qúa lớn mà không thể xử lý trên một laptop hay một server, Spark cho phép ta phân chia tác vụ này thành những phần dễ quản lý hơn. Sau đó, Spark sẽ chạy các tác vụ này trong bộ nhớ, trên các cluster của nhiều server khác nhau để khai thác tốc độ truy xuất nhanh từ RAM. Spark sử dụng API Resilient Distributed Dataset (RDD) để xử lý dữ liệu.

Spark Mesos

Spark nhận được nhiều sự hưởng ứng từ cộng đồng Big data trên thế giới do cung cấp khả năng tính toán nhanh và nhiều thư viện đi kèm hữu ích như Spark SQL (với kiểu dữ liệu DataFrames), Spark Streaming, MLlib (machine learning: classification, regression, clustering, collaborative filtering, và dimensionality reduction) và GraphX (biểu diễn đồ thị nhờ kết qủa tính toán song song).

a unified plaform for big data

Những điểm sáng giá ngoài tốc độ tính toán nhanh

Sự đơn giản: Một trong những chỉ trích thường gặp ở Hadoop đó là sự phức tạp trong qúa trình phát triển, mặc dù đây là một trong những phương pháp tính toán đơn gỉan và hiệu qủa gíup tăng tốc độ xử lý của hệ thống. Thay vì đòi hỏi người dùng phải hiểu rạch ròi về MapReduce và lập trình Java, Spark sinh ra để gíup mọi người tiếp cận với công nghệ tính toán song song dễ dàng hơn rất nhiều. Người dùng chỉ cần một vài kiến thức cơ bản về database cộng với lập trình Python hay Scala là có thể sử dụng được.

Độc lập với các nhà cung cấp dịch vụ Hadoop: Hầu hết các nhà cung cấp dịch vụ Hadoop đều hỗ trợ Spark. Điều này có nghĩa Spark không phụ thuộc vào các nhà cung cấp này. Nếu bạn muốn thay đổi nhà cung cấp dịch vụ, ta chỉ cần đem hệ thống Spark qua nhà cung cấp mới mà không lo ngại việc mất mát thông tin.

Tại sao lại sử dụng Apache Spark

Tại sao sử dụng apache spark

  • Readability
  • Expressiveness
  • Fast
  • Testability
  • Interactive
  • Fault Tolerant
  • Big Data

Big code big data

Những công ty đang sử dụng Apache Spark hiện nay

  • Netflix
  • Ebay
  • Yahoo
  • Twitter
  • Ooyala
  • ...

Công ty sử dụng Apache Spark

Spark Languages

  • Scala
  • Java
  • Python
  • R

Một vài thống kê thú vị

  • 62% số người khảo sát dùng Spark với HDFS, 46% sử dụng với các hệ quản trị CSDL như Cassandra, HBase, Hive, Tachyon, 41% đang sử dụng với Kafka, và 29% đang sử dụng cùng Amazon S3.
  • Đối với hệ quản trị cluster, 56% đang chạy độc lập Spark, 42% sử dụng YARN, và 26% sử dụng Apache Mesos.
  • Đối với ngôn ngữ lập trình, 88% sử dụng Scala, 44% sử dụng Java, và 22% sử dụng Python.
  • Mức độ quan tâm của doanh nghiệp về Spark: 91% về tốc độ tính toán, 77% về việc dễ lập trình, 71% về việc dễ phát triển, 64% về các công cụ phân tích dữ liệu tiên tiến, 52% về real-time streaming.
  • Sử dụng Spark trên 206 hệ thống EC2 để sắp xếp 100TB dữ liệu chỉ tốn 23 phút. Trong khi đó, kỉ lục trước đây trên Hadoop sử dụng MapReduce trên 2,100 máy tính phải tiêu tốn 72 phút. Điều này có nghĩa rằng Spark sắp xếp dữ liệu nhanh gấp 3 lần Hadoop mà chỉ sử dụng ít hơn 10 lần số máy tính.
  • Các thành phần được sử dụng trong Spark: 69% sử dụng Spark SQL, 62% sử dụng Dataframes, 58% sử dụng MLib + GraphX, 58% sử dụng Streaming.

top 10 industries using spark

Three ways to deploy Spark in a Hadoop cluster

Shark vs SparkSQL

Databricks Spark top roles

Kết luận

Đối với các nhà cung cấp gỉai pháp, Apache Spark là một lá bài quan trọng trong việc sử dụng các công nghệ cốt lõi để xây dựng những data warehouses hiện đại. Đây là một phân khúc lớn trong ngành IT có khả năng thu về hàng tỉ đô doanh thu hằng năm.

Spark đưa ra một khái niệm mới mang nhiều hứa hẹn trong tương lai đó là data lakes. Đây là một nơi lưu trữ một lượng dữ liệu khổng lồ với nhiều định dạng khác nhau và được truy vấn để xử lý khi cần thiết. Data lakes đưa ra một framework thương mại có thể tạo ra một môi trường lưu trữ vô hạn bất kỳ loại dữ liệu nào.

Bài viết biên soạn từ nhiều nguồn: ongxuanhong

Chia sẽ bài viết :