Tìm Hiểu Về Apache Spark

     

*
Apache Spark in-memory clusters đang là sự chú ý của các doanh nghiệp trong câu hỏi ứng dụng technology vào phân tích cùng xử lý tài liệu nhanh chóng. Nội dung bài viết này tôi sẽ trình diễn một cách tổng quan tuyệt nhất về Apache Spark, 1 trong những chiến thuật đòi hỏi phải tất cả khi giải pháp xử lý Big data.

Bạn đang xem: Tìm hiểu về apache spark

Tổng quan lại về Apache Spark

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

Thành phần của Apache Spark

Matei Zaharia, cha đẻ của Spark, áp dụng Hadoop từ đa số ngày đầu. Đến năm 2009 ông viết Apache Spark để giải quyết những việc học thiết bị ở đh UC Berkely vày Hadoop MapReduce hoạt động không công dụng cho những việc này. Khôn cùng sớm tiếp nối ông phân biệt rằng Spark không những hữu ích mang đến học máy nhưng mà còn cho cả việc xử lý luồng tài liệu hoàn chỉnh.

*
Thành phần trung của Spark là Spark Core: cung cấp những tác 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 dự với các khối 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ý song song.

Spark có thể chạy bên trên nhiều nhiều loại Cluster Managers như Hadoop YARN, Apache Mesos hoặc trên bao gồm cluster manager được hỗ trợ bởi Spark được call là Standalone Scheduler.

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

Spark Streaming hỗ trợ API để tiện lợi xử lý tài liệu stream,

MLlib hỗ trợ 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 ứng thì có 69% người tiêu dùng Spark SQL, 62% sử dụng DataFrames, Spark Streaming với MLlib + GraphX là 58%

Tại sao nên thực hiện Apache Spark

*

Những khả năng nổi bật

“Spark as a Service”: đồ họa REST nhằm 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 mức chỉ tính bằng giây bằng cách tạo sẵn spark context cho những job sử dụng chung.Stop job đã chạy bằng phương pháp stop spark contextBỏ bước upload gói jar lúc start job tạo nên job được start nhanh hơn.Cung cấp hai chế độ chạy job đồng hóa và bất đồng bộCho phép cache RDD theo tên , tăng tính share và áp 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ộ lưu trữ của Apache Spark

Về bộ nhớ, Spark giải quyết và xử lý các vụ việc vấn đề bao phủ định nghĩa Resilient Distributed Datasets (RDDs). RDDs cung cấp hai kiểu làm việc thao tác: transformations với action. Thao tác chuyển đổi(tranformation) tạo ra dataset từ dữ liệu có sẵn. Làm việc actions trả về giá chỉ trị mang đến chương trình tinh chỉnh và điều khiển (driver program) sau khoản thời gian thực hiện tính toán trên dataset.

Xem thêm: Tơ Nào Sau Đây Được Sản Xuất Từ Xenlulozơ ? Tơ Nào Sau Đây Được Sản Xuất Từ Xenlulozơ

Spark thực hiện đư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 call trên RDD, Spark sẽ khởi tạo DAG cùng chuyển cho DAG scheduler. DAG scheduler chia các thao tác làm việc thành các nhóm (stage) khác biệt của các task. Mỗi 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 với nhau và rất có thể thực hiện một cách tự do trên một vật dụng worker. DAG scheduler chuẩn bị xếp những thao tác cân xứng với quy trình thực hiện nay theo thời gian làm sao để cho tối ưu nhất. Ví dụ: các thao tác làm việc map sẽ tiến hành đưa vào cùng một stage vì chưng không xẩy ra shuffle dữ liệu giữa các stage. Tác dụng cuối thuộc của DAG scheduler là 1 tập những stage. Những Stages được chuyển mang đến Task Scheduler. Task Scheduler đang chạy những task trải qua cluster manager (Spark Standalone/Yarn/Mesos). Task scheduler do dự về sự dựa vào của những stages. Nó chỉ chịu trách nhiệm tiến hành sắp xếp những task một phương pháp tối ưu nhất.

Mỗi Worker gồm 1 hoặc nhiều Excuter. Những excuter chịu trách nhiệm tiến hành các task trên những luồng riêng rẽ biệt. Vấn đề chia bé dại các task giúp đem đến hiệu năng cao hơn, bớt thiểu tác động của dữ liệu không đối xứng (kích thước các file không đồng đều).

Quá trình Spark tạo DAG: bao gồm hai kiểu chuyển đổi có thể vận dụng trên những RDDs kia là biến hóa hẹp và đổi khác rộng:

– chuyển đổi hẹp: ko yêu cầu xáo trộn tài liệu vượt qua các phân vùng

(partition).Ví dụ như các thao tác làm việc map, filter,..

– biến hóa rộng yêu cầu tài liệu phải xáo trộn. Ví dụ: reduceByKey,

sortByKey, groupByKey,…

Các thành phần chính trong thống trị bộ nhớ:

Spark truy vấn dữ liệu được lưu trữ ở các nguồn không giống nhau như: HDFS, Local Disk, RAM. Cache Manager thực hiện Block Manager để làm chủ dữ liệu. Cache Manager thống trị dữ liệu như thế nào được Cache trên RAM, thông thường là tài liệu được sử dụng thường xuyên nhất, nó cũng có thể được khẳng định thủ công bằng tay thủ công sử dụng thủ tục persit hoặc cache. Nếu kích thước RAM không đủ chứa tài liệu thì dữ liệu sẽ tiến hành lưu trữ sang trọng Tachyon và ở đầu cuối là lưu trữ lên đĩa. Lúc dữ liệu(RDD) không được tàng trữ trên RAM, khi mong muốn sử dụng đến, chúng sẽ tiến hành recompute lại. Nó thực hiện một tư tưởng 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 có thể viết các ứng dụng Spark bởi nhiều ngôn ngữ khác nhau. Năm 2014, 84% người tiêu dùng sử dụng Scala, trong khi Java với Python thuộc là 38% (Người dùng rất có thể sử dụng nhiều hơn thế nữa 1 ngôn ngữ trong những ứng dụng của mình). Đến năm 2015, Spark hỗ trợ thêm ngôn từ R, rất hối hả có cho tới 18% người dùng R, Python cũng tạo thêm 58%.

*

Những công ty đang thực hiện Apache Spark

Hiện nay, có khá nhiều công ty lớn đã sử dụng Spark như Yahoo, Twitter, Ebay....

Xem thêm: Hình Xăm Cho Nam Mệnh Thủy Nên Xăm Hình Gì, Khám Phá Hình Xăm Mệnh Thủy Cực Hot

*

Kết luận

Đối với những nhà cung cấp phương án CNTT, Apache Spark là một trong lá bài đặc trưng trong việc sử dụng các công nghệ cốt lõi nhằm xây dựng đều data warehouses hiện tại đại. Đây là 1 phân khúc mập trong ngành IT có chức năng thu về sản phẩm tỉ đô lệch giá hằng năm. Spark đưa ra một khái niệm bắt đầu mang các hứa hẹn về sau đó là data lakes. Đây là một nơi tàng trữ một lượng dữ liệu lớn lao với nhiều định dạng khác nhau và được truy vấn vấn để cách xử trí khi nên thiết. Data lakes chỉ dẫn một framework thương mại 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 tài liệu nào

Và trên phía trên là bài viết giới thiệu tổng quan liêu về Apache Spark, hi vọng các bạn cũng có thể tìm thấy gần như điều bổ ích trong đó. Nội dung bài viết chắc chắn vẫn còn đó sự thiếu sót, mình rất ý muốn 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