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

Bạn đang xem: Spark là gì? tổng quan về thuật ngữ spark chuẩn nhất 2022

Tổng quan liêu về Apache Spark

Apache Spark là 1 open source cluster computing framework được cải tiến và phát triển sơ khởi vào năm 2009 do AMPLab tại đại học California. Sau này, Spark đã làm được trao cho Apache Software Foundation vào năm 2013 và được vạc triển cho tới nay. Nó có thể chấp nhận được xây dựng các mô hình dự đoán mau lẹ với việc tính toán được tiến hành trên một tổ các trang bị tính, có hoàn toàn có thể tính toán đồng thời trên toàn bộ tập tài liệu mà không nhất thiết phải trích xuất mẫu đo lường và tính toán thử nghiệm. Vận tốc xử lý của Spark đạt được do việc giám sát được triển khai cùng dịp trên nhiều máy không giống nhau. Đồng thời việc đo lường và thống kê được tiến hành ở bộ lưu trữ trong (in-memories) tốt thực hiện hoàn toàn trên RAM.

Thành phần của Apache Spark

Matei Zaharia, phụ vương đẻ của Spark, sử dụng Hadoop từ phần lớn ngày đầu. Đến năm 2009 ông viết Apache Spark để xử lý những câu hỏi học đồ vật ở đại học UC Berkely bởi vì Hadoop MapReduce hoạt động không tác dụng cho những việc này. Hết sức sớm tiếp nối ông nhận ra rằng Spark không những hữu ích đến học máy cơ mà còn cho tất cả việc xử trí luồng dữ liệu hoàn chỉnh.

*
Thành phần trung của Spark là Spark Core: hỗ trợ những công dụng cơ bạn dạng nhất của Spark như lập lịch cho những tác vụ, cai quản bộ nhớ, fault recovery, can hệ với các hệ thống lưu trữ…Đặc biệt, Spark Core cung ứng API để quan niệm RDD (Resilient Distributed DataSet) là tập hợp của những item được phân tán trên các node của cluster và hoàn toàn có thể được xử lý tuy nhiên song.

Spark hoàn toàn có thể chạy bên trên nhiều loại Cluster Managers như Hadoop YARN, Apache Mesos hoặc trên chủ yếu cluster manager được hỗ trợ bởi Spark được điện thoại tư vấn là Standalone Scheduler.

Spark SQL chất nhận được truy vấn dữ liệu cấu trúc qua những câu lệnh SQL. Spark SQL rất có thể thao tác với khá nhiều nguồn tài liệu như Hive tables, Parquet, với JSON.

Spark Streaming hỗ trợ API để dễ dàng xử lý dữ liệu stream,

MLlib cung cấp rất nhiều thuật toán của học thứ như: classification, regression, clustering, collaborative filtering…

GraphX là tủ sách để cách xử lý đồ thị.

Trong những thư viện nhưng Spark cung cấp thì bao gồm 69% người tiêu dùng Spark SQL, 62% thực hiện DataFrames, Spark Streaming với MLlib + GraphX là 58%

Tại sao nên sử dụng Apache Spark

*

Những nhân tài nổi bật

“Spark as a Service”: hình ảnh REST để quản lí (submit, start, stop, coi trạng thái) spark job, spark contextTăng tốc, giảm độ trễ thực thi job xuống tới mức chỉ tính bằng giây bằng cách tạo sẵn spark context cho những job cần sử dụng chung.Stop job đang chạy bằng cách stop spark contextBỏ cách upload gói jar lúc start job tạo cho job được start cấp tốc hơn.Cung cấp hai cơ chế chạy job đồng nhất và sự không tương đồng bộCho phép cache RDD theo tên , tăng tính chia sẻ và sử dụng lại RDD giữa những jobHỗ trợ viết spark job bởi cú pháp SQLDễ dàng tích phù hợp với các công cụ report như: Business Intelligence, Analytics, Data Integration Tools

Quản lý bộ nhớ của Apache Spark

Về cỗ nhớ, Spark giải quyết và xử lý các sự việc vấn đề xung quanh định nghĩa Resilient Distributed Datasets (RDDs). RDDs cung ứng hai kiểu thao tác thao tác: transformations với action. Thao tác chuyển đổi(tranformation) tạo thành dataset từ dữ liệu có sẵn. Thao tác actions trả về giá bán trị đến chương trình điều khiển (driver program) sau khi thực hiện thống kê giám sát trên dataset.

Xem thêm: Hình Ảnh Tạo Động Lực Cảm Hứng Đẹp Nhất Cho Bạn Thêm Nghị Lực

Spark triển khai đưa các thao tác làm việc RDD thay đổi vào DAG (Directed Acyclic Graph) và bắt đầu thực hiện. Khi một kích hoạt được gọi trên RDD, Spark sẽ khởi tạo DAG với chuyển cho DAG scheduler. DAG scheduler chia các làm việc thành những nhóm (stage) khác biệt của các task. Từng Stage bao hàm các task dựa vào phân vùng của dữ liệu đầu vào rất có thể pipline cùng nhau và rất có thể thực hiện nay một cách chủ quyền trên một sản phẩm worker. DAG scheduler sắp đến xếp những thao tác phù hợp với quá trình thực hiện nay theo thời gian sao cho tối ưu nhất. Ví dụ: các thao tác map sẽ được đưa vào và một stage vì chưng không xảy ra shuffle tài liệu giữa những stage. Kết quả cuối cùng của DAG scheduler là một trong những tập các stage. Những Stages được chuyển đến Task Scheduler. Task Scheduler đã chạy những task trải qua cluster manager (Spark Standalone/Yarn/Mesos). Task scheduler lưỡng lự về sự phụ thuộc của các stages. Nó chỉ chịu đựng trách nhiệm thực hiện sắp xếp những task một biện pháp tối ưu nhất.

Mỗi Worker gồm một hoặc những Excuter. Các excuter chịu đựng trách nhiệm triển khai các task trên các luồng riêng rẽ biệt. Bài toán chia nhỏ các task giúp mang về hiệu năng cao hơn, giảm thiểu tác động của dữ liệu không đối xứng (kích thước những file không đồng đều).

Quá trình Spark kiến thiết DAG: tất cả hai kiểu thay đổi có thể áp dụng trên các RDDs kia là biến hóa hẹp và thay đổi rộng:

– chuyển đổi hẹp: không yêu ước xáo trộn dữ liệu vượt qua các phân vùng

(partition).Ví dụ như các thao tác map, filter,..

– biến đổi rộng yêu cầu dữ liệu phải xới trộn. Ví dụ: reduceByKey,

sortByKey, groupByKey,…

Các thành phần chủ yếu trong thống trị bộ nhớ:

Spark truy vấn dữ liệu được tàng trữ ở những nguồn khác nhau như: HDFS, Local Disk, RAM. Cache Manager sử dụng Block Manager để cai quản dữ liệu. Cache Manager cai quản dữ liệu làm sao được Cache trên RAM, thường thì là tài liệu được sử dụng tiếp tục nhất, nó cũng hoàn toàn có thể được khẳng định thủ công bằng tay sử dụng cách thức persit hoặc cache. Nếu size RAM không được chứa dữ liệu thì dữ liệu sẽ tiến hành lưu trữ lịch sự Tachyon và sau cùng là tàng trữ lên đĩa. Lúc dữ liệu(RDD) ko được lưu trữ trên RAM, khi có nhu cầu sử dụng đến, chúng sẽ tiến hành recompute lại. Nó thực hiện một có mang là “storage level” để quản lý cấp độ của tàng trữ của dữ liệu.

Spark Languages

Lập trình viên rất có thể viết các ứng dụng Spark bởi nhiều ngữ điệu khác nhau. Năm 2014, 84% người tiêu dùng sử dụng Scala, trong những lúc Java cùng Python cùng là 38% (Người dùng hoàn toàn có thể sử dụng nhiều hơn thế nữa 1 ngôn ngữ trong các ứng dụng của mình). Đến năm 2015, Spark cung cấp thêm ngôn từ R, rất lập cập có tới 18% người tiêu dùng R, Python cũng tăng thêm 58%.

*

Những doanh nghiệp đang áp dụng Apache Spark

Hiện nay, có tương đối nhiều công ty béo đã sử dụng Spark như Yahoo, Twitter, Ebay....

*

Kết luận

Đối với những nhà cung cấp giải pháp CNTT, Apache Spark là một lá bài quan trọng đặc biệt trong việc sử dụng các technology cốt lõi nhằm xây dựng phần đa data warehouses hiện nay đại. Đây là một phân khúc khủng trong ngành IT có chức năng thu về mặt hàng tỉ đô lợi nhuận hằng năm. Spark giới thiệu một khái niệm new mang nhiều hứa hẹn sau đây đó là data lakes. Đây là một trong những nơi lưu trữ một lượng dữ liệu lớn lao với các định dạng không giống nhau và được tróc nã vấn để cách xử trí khi nên thiết. Data lakes giới thiệu một framework thương mại hoàn toàn có thể tạo ra một môi trường thiên nhiên lưu trữ vô hạn ngẫu nhiên loại dữ liệu nào

Và trên trên đây là nội dung bài viết giới thiệu tổng quan tiền về Apache Spark, mong muốn các bạn có thể tìm thấy phần lớn điều có lợi trong đó. Bài viết chắc chắn vẫn tồn tại sự thiếu thốn sót, mình rất ước ao nhận được sự góp ý của các bạn.

Tài liệu tham khảo

Learning Spark by Matei Zaharia, Patrick Wendell, Andy Konwinski, Holden Karau