50 câu hỏi phỏng vấn và câu trả lời hàng đầu về Apache Spark (2025)
Câu hỏi phỏng vấn Spark dành cho người mới và người có kinh nghiệm
Dưới đây là những câu hỏi và câu trả lời phỏng vấn Apache Spark dành cho cả người mới vào nghề cũng như ứng viên Khoa học dữ liệu có kinh nghiệm để có được công việc mơ ước của mình.
1) Apache Spark là gì?
Apache Spark là một khuôn khổ xử lý dữ liệu dễ sử dụng và linh hoạt. Spark có thể làm tròn Hadoop, độc lập hoặc trên đám mây. Nó có khả năng đánh giá nhiều nguồn dữ liệu khác nhau, bao gồm HDFS, Cassandra và các nguồn khác.
Tải xuống PDF miễn phí: Câu hỏi và câu trả lời phỏng vấn Apache Spark
2) Giải thích Dsstream với tham chiếu đến Apache Spark
Dstream là một chuỗi cơ sở dữ liệu phân tán có khả năng phục hồi, biểu diễn một luồng dữ liệu. Bạn có thể tạo Dstream từ nhiều nguồn khác nhau như HDFS, Apache Flume, Apache Kafka, Vv
3) Kể tên ba nguồn dữ liệu có sẵn trong SparkSQL
Các nguồn dữ liệu có sẵn trong SparkSQL là:
4) Kể tên một số daemon nội bộ được sử dụng trong Spark?
Các daemon quan trọng được sử dụng trong spark là Blockmanager, Memestore, DAGscheduler, Driver, Worker, Executor, Tasks, v.v.
5) Định nghĩa thuật ngữ 'Vector thưa thớt'.
Vector thưa là một vector có hai mảng song song, một mảng chứa chỉ số, một mảng chứa giá trị, dùng để lưu trữ các thực thể khác không nhằm tiết kiệm không gian.
6) Nêu tên ngôn ngữ được Apache Spark hỗ trợ để phát triển các ứng dụng dữ liệu lớn
Các ngôn ngữ quan trọng được sử dụng để phát triển ứng dụng dữ liệu lớn là:
- Java
- Python
- R
- Clojure
- Scala
7) Phương pháp tạo khung dữ liệu là gì?
Trong Apache Spark, khung Dữ liệu có thể được tạo bằng cách sử dụng Bảng trong Hive và các tệp dữ liệu có cấu trúc.
8) Giải thích SchemaRDD
Một RDD bao gồm đối tượng hàng với thông tin lược đồ về loại dữ liệu trong mỗi cột được gọi là SchemaRDD.
9) Bộ tích lũy là gì?
Các bộ tích lũy là các biến chỉ ghi. Chúng được khởi tạo một lần và gửi đến các công nhân. Các công nhân này sẽ cập nhật dựa trên logic đã ghi, logic này sẽ gửi lại cho trình điều khiển.
10) Hệ sinh thái Spark bao gồm những thành phần nào?
Một thành phần quan trọng của Spark là:
- SparkCore: Đây là một công cụ cơ sở cho việc xử lý dữ liệu song song và phân tán quy mô lớn
- Truyền phát tia lửa: Thành phần này được sử dụng để truyền dữ liệu theo thời gian thực.
- Spark SQL: Tích hợp xử lý quan hệ bằng cách sử dụng API lập trình chức năng của Spark
- Đồ thịX: Cho phép đồ thị và tính toán song song đồ thị
- Thư viện ML: Cho phép bạn thực hiện học máy trong Apache Spark
11) Nêu tên ba tính năng khi sử dụng Apache Spark
Ba tính năng quan trọng nhất khi sử dụng Apache Spark là:
- Hỗ trợ phân tích tinh vi
- Giúp bạn tích hợp với Hadoop và dữ liệu Hadoop hiện có
- Nó cho phép bạn chạy ứng dụng trong cụm Hadoop, nhanh hơn tới 100 lần trong bộ nhớ và nhanh hơn mười lần trên đĩa.
12) Giải thích mức độ song song mặc định trong Apache Spark
Nếu người dùng không thể chỉ định, thì số lượng phân vùng sẽ được coi là mức song song mặc định trong Apache Spark.
13) Kể tên ba công ty sử dụng dịch vụ Spark Streaming
Ba công ty được biết đến sử dụng dịch vụ Spark Streaming là:
- Uber
- Netflix
14) Spark SQL là gì?
Spark SQL là một mô-đun xử lý dữ liệu có cấu trúc, trong đó chúng ta tận dụng các truy vấn SQL chạy trên cơ sở dữ liệu đó.
15) Giải thích về tệp Parquet
Paraquet là một tệp định dạng cột được nhiều hệ thống xử lý dữ liệu khác hỗ trợ. Spark SQL cho phép bạn thực hiện cả thao tác đọc và ghi với tệp Parquet.
16) Giải thích về Spark Driver?
Spark Driver là chương trình chạy trên nút chính của máy và khai báo các chuyển đổi và hành động trên RDD dữ liệu.
17) Làm thế nào để lưu trữ dữ liệu trong Spark?
Spark là một công cụ xử lý không có bất kỳ công cụ lưu trữ nào. Nó có thể lấy dữ liệu từ một công cụ lưu trữ khác như HDFS, S3.
18) Giải thích cách sử dụng File system API trong Apache Spark
Hệ thống tập tin API cho phép bạn đọc dữ liệu từ nhiều thiết bị lưu trữ khác nhau như HDFS, S3 hoặc Fileyste cục bộ.
19) Nhiệm vụ của Spark Engine là gì?
Spark Engine hữu ích cho việc lập lịch, phân phối và giám sát ứng dụng dữ liệu trên toàn cụm.
20) Người dùng sparkContext là ai?
SparkContent là điểm vào của Spark. SparkContext cho phép bạn tạo RDD cung cấp nhiều cách khác nhau để xử lý dữ liệu.
21) Làm thế nào để triển khai máy học trong Spark?
MLif là một thư viện máy học đa năng do Spark cung cấp.
22) Bạn có thể xử lý thời gian thực bằng Spark SQL không?
Không thể xử lý dữ liệu thời gian thực trực tiếp. Tuy nhiên, có thể thực hiện bằng cách đăng ký RDD hiện có dưới dạng bảng SQL và kích hoạt các truy vấn SQL theo thứ tự ưu tiên.
23) Sự khác biệt quan trọng giữa Apache và Hadoop là gì?
Tham số | Apache Spark | Hadoop |
Tốc độ | Nhanh hơn Hadoop 100 lần. | Nó có tốc độ vừa phải. |
Đang xử lý | Chức năng xử lý hàng loạt theo thời gian thực. | Nó chỉ cung cấp xử lý hàng loạt. |
Đường cong học tập | Dễ dàng | Cứng |
Tương tác | Nó có chế độ tương tác | Ngoại trừ Pig và Hive, nó không có cách tương tác nào cả. |
24) Bạn có thể chạy Apache Spark trên Apache Mesos không?
Có, bạn có thể chạy Apache Spark trên các cụm phần cứng do Mesos quản lý.
25) Giải thích phân vùng
Phân vùng là một phép chia dữ liệu nhỏ hơn và hợp lý. Đây là phương pháp để lấy các đơn vị dữ liệu hợp lý nhằm tăng tốc quá trình xử lý.
26) Định nghĩa thuật ngữ 'Lazy Evolution' liên quan đến Apache Spark
Apache Spark trì hoãn việc đánh giá cho đến khi cần thiết. Đối với các phép biến đổi, Spark thêm chúng vào DAG tính toán và chỉ khi yêu cầu một số dữ liệu.
27) Giải thích việc sử dụng các biến phát sóng
Những cách sử dụng phổ biến nhất của biến phát sóng là:
- Biến phát sóng giúp lập trình viên lưu trữ một biến chỉ đọc trong bộ nhớ đệm trên mỗi máy thay vì gửi một bản sao của biến đó cùng với các tác vụ.
- Bạn cũng có thể sử dụng chúng để cung cấp cho mỗi nút một bản sao của một tập dữ liệu đầu vào lớn theo cách hiệu quả.
- Thuật toán phát sóng cũng giúp bạn giảm chi phí truyền thông
28) Làm thế nào để sử dụng Akka với Spark?
Spark sử dụng Akka để lập lịch. Nó cũng sử dụng Akka để nhắn tin giữa các worker và master.
29) Cái cơ bản nào cấu trúc dữ liệu của Spark
Khung dữ liệu là cấu trúc dữ liệu cơ bản của Spark.
30) Bạn có thể sử dụng Spark cho quy trình ETL không?
Có, bạn có thể sử dụng Spark cho quy trình ETL.
31) Công dụng của việc biến đổi bản đồ là gì?
Chuyển đổi bản đồ trên RDD tạo ra một RDD khác bằng cách dịch từng phần tử. Nó giúp bạn dịch từng phần tử bằng cách thực hiện hàm do người dùng cung cấp.
32) Nhược điểm của việc sử dụng Spark là gì?
Sau đây là một số nhược điểm khi sử dụng Spark:
- Spark tiêu thụ một lượng dữ liệu lớn hơn nhiều so với Hadoop.
- Bạn không thể chạy mọi thứ trên một nút duy nhất vì công việc phải được phân bổ trên nhiều cụm.
- Các nhà phát triển cần hết sức cẩn thận khi chạy ứng dụng của họ trong Spark.
- Spark streaming không hỗ trợ tiêu chí cửa sổ dựa trên bản ghi.
33) Những công dụng phổ biến của Apache Spark là gì?
- Apache Spark được sử dụng cho:
- Học máy tương tác
- Xử lý luồng
- Phân tích và xử lý dữ liệu
- Xử lý dữ liệu cảm biến
34) Nêu sự khác biệt giữa hàm persist() và hàm cache().
Hàm Persist() cho phép người dùng chỉ định mức lưu trữ trong khi cache() sử dụng mức lưu trữ mặc định.
35) Đặt tên cho Thư viện Spark cho phép chia sẻ tệp tin đáng tin cậy ở tốc độ bộ nhớ trên nhiều nền tảng cụm khác nhau.
Tachyon là thư viện Spark cho phép chia sẻ tệp tin đáng tin cậy ở tốc độ bộ nhớ trên nhiều nền tảng cụm khác nhau.
36) Apache Spark phù hợp với loại kỹ thuật học máy nào?
Apache Spark lý tưởng cho các thuật toán học máy đơn giản như phân cụm, hồi quy và phân loại.
37) Làm thế nào bạn có thể loại bỏ phần tử có tính chất quan trọng trong bất kỳ Rdd nào khác là Apache Spark?
Để xóa các phần tử có khóa có trong bất kỳ rdd nào khác, bạn cần sử dụng hàm substractkey().
38) Điểm kiểm tra trong Spark có tác dụng gì?
Điểm kiểm tra cho phép chương trình chạy suốt ngày đêm. Hơn nữa, nó giúp chương trình có khả năng phục hồi trước lỗi bất kể logic ứng dụng.
39) Giải thích sơ đồ phả hệ
Thông tin đồ thị dòng dõi máy tính mỗi RDD theo yêu cầu. Do đó, bất cứ khi nào một phần của RDD liên tục bị mất. Trong tình huống đó, bạn có thể khôi phục dữ liệu này bằng thông tin đồ thị dòng dõi.
40) Spark hỗ trợ những định dạng tập tin nào?
Spark hỗ trợ định dạng tệp json, tsv, snappy, orc, rc, v.v.
41) Hành động là gì?
Action giúp bạn đưa dữ liệu từ RDD trở lại máy cục bộ. Việc thực thi của nó là kết quả của tất cả các chuyển đổi được tạo trước đó.
42) Sợi là gì?
Yarn là một trong những tính năng quan trọng nhất của Apache Spark. Chạy spark trên Yarn tạo ra phân phối nhị phân của spark vì nó được xây dựng trên hỗ trợ Yarn.
43) Giải thích về Spark Executor
Executor là một quy trình Spark chạy các phép tính và lưu trữ dữ liệu trên nút worker. Các tác vụ cuối cùng của SparkContent được chuyển đến executor để thực hiện.
44) Có cần thiết phải cài đặt Spark trên tất cả các nút khi chạy ứng dụng Spark trên Yarn không?
Không, bạn không nhất thiết phải cài đặt Spark trên tất cả các nút vì Spark chạy trên Yarn.
45) Nút công nhân trong Apache Spark là gì?
Nút công nhân là bất kỳ nút nào có thể chạy mã ứng dụng trong cụm.
46) Làm thế nào để khởi chạy các tác vụ Spark bên trong Hadoop MapReduce?
Spark trong MapReduce cho phép người dùng chạy mọi loại công việc Spark bên trong MapReduce mà không cần phải có quyền quản trị của ứng dụng đó.
47) Giải thích quy trình kích hoạt tính năng dọn dẹp tự động trong Spark để quản lý siêu dữ liệu tích lũy.
Bạn có thể kích hoạt tính năng dọn dẹp tự động bằng cách xem tham số 'spark.cleaner.ttf hoặc bằng cách tách các tác vụ chạy lâu thành nhiều đợt khác nhau và ghi kết quả trung gian vào đĩa.
48) Giải thích cách sử dụng Blinkdb
BlinkDB là một công cụ truy vấn cho phép bạn thực hiện các truy vấn SQL trên khối lượng dữ liệu lớn và hiển thị kết quả truy vấn dưới dạng thanh lỗi có ý nghĩa.
49) Hoe Spark có xử lý việc giám sát và ghi nhật ký ở chế độ Độc lập không?
Có, Spark có thể xử lý việc giám sát và ghi nhật ký ở chế độ độc lập vì nó có giao diện người dùng dựa trên web.
50) Làm thế nào để xác định một hoạt động nhất định là Chuyển đổi hay Hành động?
Bạn có thể xác định hoạt động dựa trên kiểu trả về. Nếu kiểu trả về không phải là RDD, thì hoạt động là một hành động. Tuy nhiên, nếu kiểu trả về giống với RDD, thì hoạt động là chuyển đổi.
51) Bạn có thể sử dụng Apache Spark để phân tích và truy cập dữ liệu được lưu trữ trong cơ sở dữ liệu Cassandra không?
Có, bạn có thể sử dụng Spark Cassandra Connector cho phép bạn truy cập và phân tích dữ liệu được lưu trữ trong Cơ sở dữ liệu Cassandra.
52) Nêu sự khác biệt giữa Spark SQL và Hql
SparkSQL là một thành phần thiết yếu trên công cụ Spark Core. Nó hỗ trợ SQL và Hive Query Language mà không cần thay đổi cú pháp của nó.
Những câu hỏi phỏng vấn này cũng sẽ giúp ích cho bài thi viva(orals) của bạn