1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu nền tảng tính toán phân tán Apache Spark

22 831 21
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 1,43 MB

Nội dung

Từ thập niên 1990, mạng cục bộ và mạng diện rộng ra đời. Điều đó đòi hỏi phải có một hệ điều hành có nhiều chức năng phục vụ quản lý mạng, đảm bảo an toàn vào bảo mật. Yêu cầu đó đã đạt ra sự xuất hiện của các hệ điều hành mạng. Hệ điều hành mạng (network operating system NOS) là một hệ thống phần mềm: điều khiển một mạng và các thông điệp truyền trong mạng đó, bao gồm cả vấn đề quản lý các hàng đợi (queues) các thông điệp; điều khiển quyền truy nhập của nhiều người sử dụng đến các tài nguyên mạng và cung cấp các chức năng quản trị hệ thống, bao gồm cả vấn đề an ninh an toàn.Khi việc xử lý một tập hợp dữ liệu rất lớn và phức tạp mà các ứng dụng xử lý dữ liệu truyền thống không xử lý được. Cùng với các thách thức như phân tích, thu thập, giám sát dữ liệu, tìm kiếm, chia sẻ, lưu trữ, truyền nhận, trực quan, truy vấn và tính riêng tư. Dữ liệu lớn đã đề cập đến việc việc sử dụng các phân tích dự báo, phân tích hành vi người dùng, hoặc một số phương pháp phân tích dữ liệu tiên tiến khác trích xuất giá trị từ dữ liệu mà ít khi đề cập đến kích thước của bộ dữ liệu.Vài nghi ngờ cho rằng số lượng của dữ liệu có sẵn hiện nay thực sự lớn, nhưng đó không phải là đặc trưng phù hợp nhất của hệ sinh thái dữ liệu mới nàyTrong những năm trở lại đây, khi nói về dữ liệu lớn người ta nghĩ ngay đến Apache Hadoop, công nghệ được viết bởi Doug Cutting dựa trên GFS (Google File System) và MapReduce của Google vào năm 2005. Tháng Tư năm 2008, Hadoop trở thành hệ thống nhanh nhất để sắp xếp (sort) 1 terabyte dữ liệu, khi mất 209 giây chạy trên cluster gồm 910 nodes, đánh bại kỷ lục cũ là 297 giây. Tháng 11 năm 2008, Google thông báo hệ thống MapReduce của họ chỉ cần 68 giây để sắp xếp 1 terabyte dữ liệu. Đến tháng 5 năm 2009, Yahoo sử dụng Hadoop chỉ cần 62 giây để làm việc tương tự. Apache Spark (gọi tắt Spark) là một trong những công nghệ hot nhất năm 2015, đến mức nhiều người cho rằng nó sẽ là sự thay thế Apache Hadoop trong tương lai.Với mục đích học tập môn hệ điều mạng, trong thời lượng có hạn, nguồn tài liệu không nhiều, với đề tài “Tìm hiểu nền tảng tính toán phân tán Apache Spark”, bài báo cáo này đã được xây dựng với những nội dung chính như sau:Chương 1: Giới thiệu chung về Apache Spark.Chương 2: Nội dung nền tảng tính toán phân tán Apache SparkChương 3: Cài đặt

Trang 1

MỤC LỤC i

LỜI NÓI ĐẦU iii

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ APACHE SPARK 1

1.1 Khái niệm 1

1.2 Đặc điểm 1

CHƯƠNG 2: NỘI DUNG NỀN TẢNG TÍNH TOÁN PHÂN TÁN APACHE SPARK 3

2.1 Kiến trúc nền tảng tính toán phân tán Apache spark 3

2.1.1 Lưu trữ dữ liệu 3

2.1.2 API 3

2.1.3 Cơ cấu quản lý tài nguyên 3

2.2 Các thành phần của Apache Spark 5

2.2.1 Apache Spark Core 6

2.2.2 Spark SQL 6

2.2.3 Spark Streaming 6

2.2.4 Spark MLlib (Machine Learning Library) 6

2.2.5 Spark GrapX 6

2.3 Cơ chế hoạt động 7

2.3.1 RDDs 7

2.3.2 Shared Variables 10

2.4 Ưu, nhược điểm 10

2.4.1 Ưu điểm 10

2.4.2 Nhược điểm 11

CHƯƠNG 3: CÀI ĐẶT 12

3.1 Cài đặt trên Hệ điều hành Windows 10 12

3.1.1 Download 12

3.1.2 Cài đặt 12

3.2 Cài đặt trên hệ điều hành Ubuntu 16.04 14

3.2.1 Cài đặt Java 14

3.2.2 Cài đặt Scala 15

3.2.3 Cài đặt Spark 16

KẾT LUẬN 19

TÀI LIỆU THAM KHẢO 20

Trang 2

LỜI NÓI ĐẦU

Từ thập niên 1990, mạng cục bộ và mạng diện rộng ra đời Điều đó đòi hỏi phải

có một hệ điều hành có nhiều chức năng phục vụ quản lý mạng, đảm bảo an toàn vàobảo mật Yêu cầu đó đã đạt ra sự xuất hiện của các hệ điều hành mạng Hệ điều hànhmạng (network operating system - NOS) là một hệ thống phần mềm: điều khiển mộtmạng và các thông điệp truyền trong mạng đó, bao gồm cả vấn đề quản lý các hàngđợi (queues) các thông điệp; điều khiển quyền truy nhập của nhiều người sử dụng đếncác tài nguyên mạng và cung cấp các chức năng quản trị hệ thống, bao gồm cả vấn đề

an ninh an toàn

Khi việc xử lý một tập hợp dữ liệu rất lớn và phức tạp mà các ứng dụng xử lý

dữ liệu truyền thống không xử lý được Cùng với các thách thức như phân tích, thuthập, giám sát dữ liệu, tìm kiếm, chia sẻ, lưu trữ, truyền nhận, trực quan, truy vấn vàtính riêng tư Dữ liệu lớn đã đề cập đến việc việc sử dụng các phân tích dự báo, phântích hành vi người dùng, hoặc một số phương pháp phân tích dữ liệu tiên tiến kháctrích xuất giá trị từ dữ liệu mà ít khi đề cập đến kích thước của bộ dữ liệu.Vài nghi ngờcho rằng số lượng của dữ liệu có sẵn hiện nay thực sự lớn, nhưng đó không phải là đặctrưng phù hợp nhất của hệ sinh thái dữ liệu mới này

Trong những năm trở lại đây, khi nói về dữ liệu lớn người ta nghĩ ngay đếnApache Hadoop, công nghệ được viết bởi Doug Cutting dựa trên GFS (Google FileSystem) và MapReduce của Google vào năm 2005 Tháng Tư năm 2008, Hadoop trởthành hệ thống nhanh nhất để sắp xếp (sort) 1 terabyte dữ liệu, khi mất 209 giây chạytrên cluster gồm 910 nodes, đánh bại kỷ lục cũ là 297 giây Tháng 11 năm 2008,Google thông báo hệ thống MapReduce của họ chỉ cần 68 giây để sắp xếp 1 terabyte

dữ liệu Đến tháng 5 năm 2009, Yahoo sử dụng Hadoop chỉ cần 62 giây để làm việc

2015, đến mức nhiều người cho rằng nó sẽ là sự thay thế Apache Hadoop trong tươnglai

Với mục đích học tập môn hệ điều mạng, trong thời lượng có hạn, nguồn tài

liệu không nhiều, với đề tài “Tìm hiểu nền tảng tính toán phân tán Apache Spark”,

bài báo cáo này đã được xây dựng với những nội dung chính như sau:

Chương 1: Giới thiệu chung về Apache Spark

Chương 2: Nội dung nền tảng tính toán phân tán Apache Spark

Chương 3: Cài đặt

Trang 3

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ APACHE SPARK

1.1 Khái niệm

Apache Spark là là công nghệ mã nguồn mở 100%, được phát triển sơ khai vàonăm 2009 bởi AMPLab tại đại học California, Berkeley Sau này, Spark đã được traocho Apache Software Foundation vào năm 2013 và được phát triển cho đến nay Kể từkhi phát hành, Apache Spark, công cụ phân tích thống nhất, đã nhận được sự chấpnhận nhanh chóng của các doanh nghiệp trong nhiều ngành công nghiệp Các nhà cungcấp Internet như Netflix, Yahoo và eBay đã triển khai Spark với quy mô lớn, cùngnhau xử lý nhiều petabytes dữ liệu trên các nhóm hơn 8.000 node Nó đã nhanh chóngtrở thành cộng đồng nguồn mở lớn nhất trong dữ liệu lớn, với hơn 1000 người đónggóp từ 250 tổ chức

Apache Spark là một hệ thống mã nguồn mở cho phép thực hiện tính toán trêncụm nhằm tạo ra khả năng phân tích dữ liệu nhanh với 2 tiêu chí: nhanh về cả lúc chạy

và nhanh cả lúc ghi dữ liệu

Cụ thể hơn, Apache Spark là một hệ thống tính toán song song hoặc phân tánbao gồm nhiều máy tính kết nối thành một khối và được dùng như một tài nguyên tínhtoán duy nhất (cluster), cung cấp các API cho nhiều ngôn ngữ bậc cao như Java, Scala,Python hay R Điểm đặc biệt của nó là cung cấp rất nhiều công cụ bậc cao cho các tác

vụ khác nhau như: Spark SQL sử dụng cho việc xử lý các dữ liệu có cấu trúc, GraphXdùng cho việc xử lý đồ thị, còn MLlib sử dụng cho các bài toán học máy

1.2 Đặc điểm

+ Tốc độ xử lý của Spark có được do việc tính toán được thực hiện cùng lúctrên nhiều máy khác nhau Đồng thời việc tính toán được thực hiện ở bộ nhớ trong haythực hiện hoàn toàn trên RAM

+ Spark cho phép xử lý dữ liệu theo thời gian thực, vừa nhận dữ liệu từ cácnguồn khác nhau đồng thời thực hiện ngay việc xử lý trên dữ liệu vừa nhận được(Spark Streaming)

+ Spark không có hệ thống file của riêng mình, nó sử dụng hệ thống file khácnhư: HDFS, Cassandra, S3,… Spark hỗ trợ nhiều kiểu định dạng file khác nhau (text,csv, json…) đồng thời nó hoàn toàn không phụ thuộc vào bất cứ một hệ thống file nào

+ 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ầnphả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 đó, Sparkcòn cung cấp tính năng streaming, được dùng để xây dựng các mô hình thời gian thực

Trang 4

bằng cách nạp toàn bộ dữ liệu vào bộ nhớ.

+ Khi có một tác vụ nào đó quá lớn mà không thể xử lý trên một laptop hay mộtserver, 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ácnhau để khai thác tốc độ truy xuất nhanh từ RAM Spark sử dụng API ResilientDistributed Dataset (RDD) để xử lý dữ liệu

Spark hiện nay đang nhanh chóng trở thành lựa chọn chính cho phương pháptính toán của big data Các chương trình Spark ngắn gọn hơn và thường chạy nhanhhơn 10-100 lần so với Hadoop MapReduce Vì các công ty nhận ra điều này nên cácnhà phát triển Spark đang trở nên ngày càng có giá trị

Trang 5

CHƯƠNG 2: NỘI DUNG NỀN TẢNG TÍNH TOÁN PHÂN TÁN

APACHE SPARK

2.1 Kiến trúc nền tảng tính toán phân tán Apache spark

Kiến trúc Apache Spark bao gồm ba thành phần chính:

 API

Hình NỘI DUNG NỀN TẢNG TÍNH TOÁN PHÂN TÁN APACHE SPARK.1.

Kiến trúc Apache Spark 2.1.1 Lưu trữ dữ liệu

Spark sử dụng hệ thống tập tin HDFS để lưu trữ dữ liệu Nó hoạt động với bất

kỳ nguồn dữ liệu tương thích Hadoop nào bao gồm HDFS, HBase, Cassandra,…

2.1.2 API

API cho phép các nhà phát triển ứng dụng tạo ra các ứng dụng dựa trên Spark

sử dụng giao diện API tiêu chuẩn Spark cung cấp các API cho Scala, Java, Python

Các liên kết trang web cho Spark API cho mỗi ngôn ngữ này

• API Scala

• Java

• Python

Trang 6

2.1.3 Cơ cấu quản lý tài nguyên

Spark có thể được triển khai dưới dạng một máy chủ độc lập hoặc trên mộtkhuôn khổ tính toán phân tán như Mesos hay YARN

Hình NỘI DUNG NỀN TẢNG TÍNH TOÁN PHÂN TÁN APACHE SPARK.2.

Chu trình trong Spark Driver

Spark gồm một node master và nhiều node worker dưới sự điều khiển củamaster Spark Driver sẽ liên hệ với master node để điều phối các worker node nơi cóchứa các excutor đang thực thi job

Master node chứa chương trình điều khiển (Spark Standalone/ YARN/ MESSO),các worker node, chương trình lập lịch sẽ chịu trách nhiệm lập lịch cho các tác vụ vàyêu cầu các worker node thực hiện Mỗi worker bao gồm một hoặc một số Excutorthực hiện việc lưu trữ, đọc ghi khi xử lý dữ liệu Mỗi excutor chịu trách nhiệm xử lýcác task nhỏ riêng biệt bằng các luồng độc lập

Trang 7

Hình NỘI DUNG NỀN TẢNG TÍNH TOÁN PHÂN TÁN APACHE

SPARK.3 Chu trình trong Spark Driver 2.2 Các thành phần của Apache Spark

Hình 2.4 Thành phần của Apache Spark

Trang 8

2.2.1 Apache Spark Core

Spark Core là thành phần cốt lõi thực thi cho tác vụ cơ bản làm nền tảng chocác chức năng khác Nó cung cấp khả năng tính toán trên bộ nhớ và database trong bộnhớ hệ thống lưu trữ ngoài, để hỗ trợ nhiều ứng dụng và Java, Scala và Python API để

dễ phát triển Đặc biệt, Spark Core cung cấp API để định nghĩa RDD (ResilientDistributed DataSet) là tập hợp của các mục được phân tán trên các node của cluster

và có thể được xử lý song song

2.2.2 Spark SQL

Spark SQL là một thành phần nằm trên Spark Core nó cung cấp một sự ảo hóamới cho dữ liệu là SchemaRDD, hỗ trợ các dữ liệu có cấu trúc và bán cấu trúc Nócũng cung cấp khả năng tích hợp mạnh mẽ với các thành phần còn lại của Spark (ví

dụ, tích hợp xử lý truy vấn SQL với học máy)

2.2.3 Spark Streaming

Spark Streaming cho phép thực hiện phân tích xử lý trực tuyến xử lý theo lô.Chạy trên Spark, Spark Streaming cho phép ứng dụng tương tác và phân tích mạnh mẽtrên cả dữ liệu trực tuyến và dữ liệu lịch sử, đồng thời thừa hưởng tính dễ sử dụng củaSpark và đặc tính chịu lỗi Nó dễ dàng tích hợp với nhiều nguồn dữ liệu phổ biến, baogồm HDFS, Flume, Kafka và Twitter

2.2.4 Spark MLlib (Machine Learning Library)

MLlib là một nền tảng học máy phân tán bên trên Spark do kiến trúc phân tándựa trên bộ nhớ Được xây dựng trên Spark, MLlib là một thư viện học có thể mở rộngđược, cung cấp cả các thuật toán chất lượng cao (ví dụ, lặp lại nhiều lần để tăng độchính xác) và tốc độ phát sáng (lên đến 100x nhanh hơn MapReduce) Thư viện này cóthể sử dụng được trong Java, Scala và Python như là một phần của các ứng dụngSpark, để bạn có thể đưa nó vào quy trình làm việc hoàn chỉnh

2.2.5 Spark GrapX

Grapx là nền tảng xử lý đồ thị dựa trên Spark, cho phép người dùng tương tácxây dựng, biến đổi và lý luận về dữ liệu có cấu trúc dạng đồ thị theo quy mô Nó cungcấp các API để diễn tả các tính toán trong đồ thị bằng cách sử dụng Pregel Api

Trong các thư viện mà Spark cung cấp thì có 69% người dùng Spark SQL, 62%

sử dụng DataFrames, Spark Streaming và MLlib + GraphX là 58%

Ngoài các thư viện trên, còn có những thư viện khác có thể tích hợp với Sparknhư:

• Alluxio (trước đây gọi là Tachyon) là một tệp tin phân tán tập trung vào bộ

nhớ cho phép chia sẻ tập tin tin cậy ở tốc độ bộ nhớ giữa các cluster các thư viện nhưSpark và MapReduce Nó lưu trữ tập tin thiết lập làm việc trong bộ nhớ, do đó tránh điđến đĩa để tải thường xuyên đọc datasets Điều này cho phép các công việc / truy vấn

Trang 9

và các thư viện khác nhau truy cập các tệp tin lưu trữ ở tốc độ bộ nhớ.

• BlinkDB là một công cụ truy vấn gần đúng để sử dụng để chạy tương tác truy

vấn SQL trên khối lượng lớn dữ liệu Nó cho phép người sử dụng tính toán truy vấnchính xác cho thời gian phản hồi Nó hoạt động trên các tập dữ liệu lớn bằng cáchchạy truy vấn trên các mẫu dữ liệu và trình bày các kết quả được chú giải có lỗi có ýnghĩa quán bar Các phiên bản sau này của BlinkDB đang được duy trì dưới một dự ánmới gọi là iOLAP

2.3 Cơ chế hoạt động

Mọi ứng dụng spark bao gồm 1 Driver program để chạy hàm main của ngườidùng và thực hiện tính toán song song trên 1 cụm

Có 2 khái niệm trừu tượng quan trọng trong Spark là RDD và Shared Variables

 RDD là tập dữ liệu phân tán mà các dữ liệu này được phân tán vào cácnode của cluster để thực hiện tính toán song song

 Shared variables thực hiện chia sẻ biến giữa các task hoặc giữa các taskvới driver program

2.3.1 RDDs

RDDs (Resilient Distributed Datasets) là một cấu trúc dữ liệu cơ bản của Spark

Nó là một tập hợp bất biến phân tán của một đối tượng Mỗi dataset trong RDD đượcchia ra thành nhiều phần vùng logical Có thể được tính toán trên các node khác nhaucủa một cụm máy chủ (cluster) RDDs có thể chứa bất kỳ kiểu dữ liệu nào của Python,Java, hoặc đối tượng Scala, bao gồm các kiểu dữ liệu do người dùng định nghĩa

RDDs hỗ trợ hai kiểu thao tác: Transformations (Chuyển đổi) và Action (Hànhđộng) Thao tác chuyển đổi (tranformation) tạo ra dataset từ dữ liệu có sẵn Qua 1phương thức transformations thì sẽ cho phép tạo mới 1 RDD từ 1 RDD đã tồn tại.Thao tác actions trả về giá trị cho chương trình điều khiển (driver program) sau khithực hiện tính toán trên dataset

Transformations là một thao tác “lazy”, có nghĩa là thao tác này sẽ không thựchiện ngay lập tức, mà chỉ ghi nhớ các bước thực hiện lại Thao tác này chỉ được thựchiện khi trong quá trình thực hiện có Actions được gọi thì công việc tính toán củaTransformations mới được diễn ra Nhờ thiết kế này mà Spark chạy hiệu quả hơn.Mặc định, mỗi RDD sẽ được tính toán lại nếu có Actions gọi nó Tuy nhiên,RDDs cũng có thể được lưu lại trên bộ nhớ RAM bằng lệnh persist (hoặc caching) để

sử dụng sau này Điều này rất tiện lợi cho việc tính toán ngay tại bộ nhớ trong và tái sửdụng chúng cho actions khác trên tập dữ liệu, nó làm cho việc tính toán thực hiệnnhanh hơn và khả năng chịu lỗi tốt Cụ thể, lần đầu tiên tính toán với 1 actions, nó sẽlưu trữ tại bộ nhớ trong trên các node Nếu 1 phần nào đó của RDD bị mất, nó sẽ tựđộng tính toán lại sử dụng transformation được tạo ban đầu

Trang 10

Mỗi RDD được lưu trữ với các mức khác nhau Ví dụ, bạn có thể persist dữ liệutrên ổ cứng, bộ nhớ trong, hoặc qua việc sao lặp qua các node Các mức lưu trữ tùythuộc truyền đối tượng org.apache.spark.storage.StorageLevel vào hàm persist().Phương thức cache() là cách viết tắt cho phương thức persist với mức lưu trữ mặcđịnh, cụ thể là StorageLevel.MEMORY_ONLY.

Java trên JVM.Nếu RDD vượt quá bộ nhớtrong thì 1 số vùng sẽ khôngđược cached

và nó sẽ tính toán lại mỗi khi nó cần Đây

Trang 11

Hình 2.6 Cơ chế lập lịch của Apache

 Lập lịch theo mô hình đồ thị DAG

 Chia các task thành các Stage

 Cache dữ liệu cần sử dụng lại

 Phân chia partition hạn chế tối đa việc shuffle dữ liệu qua mạng

Một số Action là: giảm, thu thập, đếm, lần đầu tiên, lấy, countByKey, vàforeach

+ Spark thực hiện đưa các thao tác RDD chuyển đổi vào DAG (DirectedAcyclic Graph) và bắt đầu thực hiện Khi một action được gọi trên RDD, Spark sẽ tạoDAG và chuyển cho DAG scheduler DAG scheduler chia các thao tác thành cácnhóm (stage) khác nhau của các task

+ Mỗi Stage bao gồm các task dựa trên phân vùng của dữ liệu đầu vào có thểpipline với nhau và có thể thực hiện một cách độc lập trên một máy worker DAGscheduler sắp xếp các thao tác phù hợp với quá trình thực hiện theo thời gian sao chotối ưu nhất

Ví dụ: các thao tác map sẽ được đưa vào cùng một stage do không xảy rashuffle dữ liệu giữa các stage Kết quả cuối cùng của DAG scheduler là một tập cácstage Các Stages được chuyển cho Task Scheduler Task Scheduler sẽ chạy các taskthông qua cluster manager (Spark Standalone/Yarn/Mesos) Task scheduler không biết

về sự phụ thuộc của các stages Nó chỉ chịu trách nhiệm thực hiện sắp xếp các taskmột cách tối ưu nhất

+ Mỗi Worker bao gồm một hoặc nhiều Excutor Các excutor chịu trách nhiệmthực hiện các task trên các luồng riêng biệt Việc chia nhỏ các task giúp đem lại hiệunăng cao hơn, giảm thiểu ảnh hưởng của dữ liệu không đối xứng (kích thước các filekhông đồng đều)

Trang 12

2.3.2 Shared Variables

Spark cung cấp 2 kiểu chia sẻ biến: broadcast variable và accumulators

- Broadcast variable là biến mà chỉ được phép đọc giá trị của biến trên mỗimáy, không cho phép sửa đối giá trị nhằm mục đích đảm bảo cùng giá trị của biếnbroadcast trên tất cả các node Có thể sử dụng giá trị của biến qua phương thức value

- Accumulators là biến mà chỉ thực hiện chỉ “added” qua phương thức kết hợp(như sum hoặc count)

Khác với biến broadcast, biến accumulator cho phép thay đối giá trị, cho phépđọc ghi dữ liệu lên biến này Điều này rất tiện lợi cho việc tính toán song song trên cáccụm và thực hiện cho cùng mục đích là cùng nguồn tài nguyên Sau khi tính toán song

2.4.1.3 Cung cấp công cụ thống nhất, toàn diện

- Spark được đóng gói với các thư viện cấp cao hơn, bao gồm hỗ trợ các truy vấnSQL, truyền dữ liệu, học máy và xử lý đồ thị Các thư viện tiêu chuẩn tăng năng suấtcủa nhà phát triển và có thể kết hợp liền mạch để tạo các quy trình công việc phức tạp

Nó cung cấp một khung thống nhất toàn diện và thống nhất để quản lý các yêu cầu xử

lý dữ liệu lớn cho các bộ dữ liệu đa dạng về bản chất (dữ liệu văn bản, dữ liệu biểu đồ,v.v) và từ nhiều nguồn khác nhau (dữ liệu luồng theo thời gian thực so với thời gianthực)

- Phân tích nâng cao: Spark không chỉ hỗ trợ ‘Map’ và ‘Reduce’ Nó còn hỗ trợtruy vấn SQL, xử lý theo Stream, học máy, và các thuật toán đồ thị (Graph)

2.4.1.4 Hỗ trợ đa ngôn ngữ

Spark cung cấp các API có sẵn cho các ngôn ngữ Java, Scala, hoặc Python Do

đó, bạn có thể viết các ứng dụng bằng nhiều các ngôn ngữ khác nhau Spark đi kèm 80

Ngày đăng: 13/08/2018, 23:10

TỪ KHÓA LIÊN QUAN

w