Trong thời gian qua, công nghệ xung quanh việc phân tích và tính toán của Dữ liệu lớn đang ngày càng phát triển. Kể từ khi khái niệm Dữ liệu lớn (và những thứ xung quanh nó) ngày càng trở nên phổ biến, nhiều công ty liên quan đến khái niệm này (và các khái niệm tương tự như học máy, phát triển AI, v.v.) liên tục tìm kiếm những người thành thạo sử dụng công nghệ và phần mềm liên quan đến Dữ liệu lớn. Spark là một trong những phần mềm nổi tiếng và phổ biến hơn cả trong phân tích Dữ liệu lớn, do vậy việc có kiến thức về Spark rất có lợi. Để giúp bạn có được công việc mơ ước, hướng dẫn Spark Tutorial này sẽ cung cấp các câu hỏi phỏng vấn Apache Spark mà bạn có thể gặp trong cuộc phỏng vấn xin việc!
Mục lục
- 1. Kiến thức ban đầu về Spark
- 1.1. Câu hỏi 1: Spark là gì?
- 1.2. Câu hỏi 2: Một số tính năng nổi bật của Apache Spark là gì?
- 1.3. Câu hỏi 3: ‘’SCC’’ là gì?
- 1.4. Câu hỏi 4: ‘RDD’ là gì?
- 1.5. Câu hỏi 5: ‘immutability’ là gì?
- 1.6. Câu hỏi 6: YARN là gì?
- 1.7. Câu hỏi 7:Ngôn ngữ lập trình nào được sử dụng phổ biến nhất trong Apache Spark?
- 1.8. Câu hỏi 8: Có bao nhiêu trình quản lý cụm có sẵn trong Spark?
- 1.9. Câu hỏi 9: Trách nhiệm của công cụ Spark là gì?
- 1.10. Câu hỏi 10: ‘lazy evaluations’ là gì?
- 1.11. Câu hỏi 11: Bạn có thể giải thích ‘’Polyglot’’ là gì, xét về khía cạnh Spark không?
- 1.12. Câu hỏi 12: Lợi ích của Spark so với MapReduce là gì?
- 1.13. Câu hỏi 13: Nếu Spark tốt hơn MapReduce, vậy chúng ta không nên học MapReduce?
- 1.14. Câu hỏi 14: Tính năng ‘Multiple formats’ là gì?
- 1.15. Câu hỏi 15: Giải thích ‘Real-time Computation’
- 2. Các câu hỏi đòi hỏi kinh nghiệm về Apache Spark
- 2.1. Câu hỏi 1: ‘partitions’ là gì?
- 2.2. Câu hỏi 2: Spark Streaming được sử dụng làm gì?
- 2.3. Câu hỏi 3: Chạy tất cả các quy trình trên một nút cục bộ có phải là bình thường không?
- 2.4. Câu hỏi 4: ‘SparkCore’ được sử dụng làm gì?
- 2.5. Câu hỏi 5: Tệp hệ thống API có cách sử dụng trong Spark không?
- 3. Tóm tắt
Kiến thức ban đầu về Spark
Các bạn có thể thấy rất nhiều câu hỏi có một công thức chúng - có thể là so sánh, định nghĩa hoặc dựa trên ý kiến, yêu cầu bạn cung cấp các ví dụ, v.v.
Ưu đãi mới nhất đang hoạt động ngay bây giờ:
GET 50% OFF
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a 50% discount. Enroll now for way less!
Thông thường nhất, bạn sẽ gặp các tình huống thực tế xảy ra trong công ty. Ví dụ, chẳng hạn một tuần trước cuộc phỏng vấn, công ty có một vấn đề lớn cần giải quyết. Vấn đề đó đòi hỏi một số kiến thức tốt về Apache Spark và cần một ai đó là chuyên gia về các câu hỏi phỏng vấn của Spark. Công ty đã giải quyết vấn đề, và sau đó trong cuộc phỏng vấn muốn hỏi bạn sẽ làm gì trong tình huống như thế. Trong kịch bản này, nếu bạn cung cấp một câu trả lời hữu hình, hợp lý và kỹ lưỡng mà không ai trong công ty có thể nghĩ đến, rất có thể bạn sẽ được cân nhắc uyển dụng.
Vậy ý ở đây chính là hãy chú ý đến những chi tiết nhỏ nhất. Những câu hỏi đầu tiên thuộc cấp độ giới thiệu không có nghĩa là chúng bị bỏ qua.
Câu hỏi 1: Spark là gì?
Điều đầu tiên có lẽ họ sẽ muốn biết bạn giải thích Spark là gì theo cách hiểu của bạn.
Đây là ví dụ tuyệt vời về Apache Spark cho dạng câu hỏi “dựa trên định nghĩa”. Đừng chỉ đưa ra một câu trả lời kiểu Wikipedia mà hãy cố gắng hình thành các định nghĩa bằng từ của riêng bạn. Điều này cho thấy bạn diễn đạt bằng suy nghĩ của mình, chứ không phải chỉ ghi nhớ từng từ của một định nghĩa chung chung như một robot.
Apache Spark là một framework nguồn mở được sử dụng chủ yếu phân tích Dữ liệu lớn, học máy và xử lý thời gian thực. Framework này cung cấp một giao diện đầy đủ chức năng cho các lập trình viên và nhà phát triển - giao diện này thực hiện rất tốt công việc hỗ trợ lập trình cụm phức tạp khác nhau và các nhiệm vụ học máy.
Câu hỏi 2: Một số tính năng nổi bật của Apache Spark là gì?
Đây là một trong những câu hỏi phỏng vấn Apache Spark dựa trên ý kiến nhiều hơn - bạn không cần liệt kê tất cả tính năng theo bảng chữ cái, hãy chọn một số trong đó và giải thích hay mô tả chúng.
Ví dụ, tôi đã chọn ba tính năng sau, ba tốc độ, hỗ trợ đa định dạng và các thư viện sẵn có.
Vì cần có một lượng mạng tối thiểu xử lý dữ liệu, công cụ Apache Spark có thể đạt được tốc độ đáng kinh ngạc, đặc biệt là khi so sánh với Hadoop.
Ngoài ra, Apache Spark hỗ trợ rất nhiều nguồn dữ liệu (vì nó sử dụng SparkSQL để tích hợp chúng) và có rất nhiều thư viện mặc định khác nhau mà các nhà phát triển Dữ liệu lớn có thể tận dụng.
Câu hỏi 3: ‘’SCC’’ là gì?
Mặc dù từ viết tắt này ít được sử dụng (do đó dẫn đến các câu hỏi phỏng vấn Apache Spark khá khó), bạn vẫn có thể gặp một câu hỏi như vậy.
SCC là viết tắt của cụm từ ‘’Spark Cassandra Connector’’. Nó là một công cụ mà Spark sử dụng để truy cập thông tin (dữ liệu) trong các cơ sở dữ liệu Cassandra khác nhau.
Câu hỏi 4: ‘RDD’ là gì?
RDD là viết tắt của ‘’Resilient Distribution Datasets” (bộ dữ liệu phân phối khả năng phục hồi). Đây là các yếu tố hoạt động, khi được bắt đầu, chúng chạy song song với nhau. Có hai loại RDD đã biết - bộ sưu tập song song và bộ dữ liệu Hadoop. Nhìn chung, RDD hỗ trợ hai loại hoạt động - hành động và biến đổi.
Câu hỏi 5: ‘immutability’ là gì?
Như cái tên đã giải thích phần nào, khi một vật là bất biến, nó không thể bị thay đổi hoặc biến đổi theo bất kỳ cách nào một khi nó hoàn toàn được tạo ra và được gán giá trị.
Đây là một trong những câu hỏi phỏng vấn Apache Spark đòi hỏi sự chi tiết, bạn cũng có thể thêm theo mặc định, Spark (dưới dạng framework) có tính năng này. Tuy nhiên, điều này không áp dụng cho các quy trình thu thập dữ liệu - chỉ cho các giá trị được chỉ định mà thôi.
Câu hỏi 6: YARN là gì?
YARN là một trong những tính năng cốt lõi của Apache Spark, chủ yếu liên quan đến quản lý tài nguyên, nhưng cũng được sử dụng để vận hành trên các cụm Spark - điều này là do nó có thể mở rộng.
Câu hỏi 7:Ngôn ngữ lập trình nào được sử dụng phổ biến nhất trong Apache Spark?
Một ví dụ câu hỏi về Apache Spark mà bạn không cần động não quá nhiều. Mặc dù có rất nhiều nhà phát triển thích sử dụng Python, Scala vẫn là ngôn ngữ được sử dụng phổ biến nhất cho Apache Spark.
Câu hỏi 8: Có bao nhiêu trình quản lý cụm có sẵn trong Spark?
Theo mặc định, có ba trình quản lý cụm mà bạn có thể sử dụng trong Spark. Chúng tôi đã nói về một trong số chúng ở câu hỏi phỏng vấn Apache Spark trước đó - YARN. Hai trình còn lại là Apache Mesos và standalone deployments (các triển khai độc lập).
Câu hỏi 9: Trách nhiệm của công cụ Spark là gì?
Nhìn chung, công cụ Spark liên quan đến việc thiết lập, phân tán (phân phối) và sau đó là giám sát các bộ dữ liệu khác nhau trải rộng xung quanh các cụm khác nhau.
Câu hỏi 10: ‘lazy evaluations’ là gì?
Loại đánh giá này bị trì hoãn cho đến khi giá trị của vật trở nên cần thiết để được sử dụng. Hơn nữa, các đánh giá lười “lazy evaluations’’ chỉ được thực hiện một lần - không có đánh giá lặp lại.
Câu hỏi 11: Bạn có thể giải thích ‘’Polyglot’’ là gì, xét về khía cạnh Spark không?
Như đã đề cập, sẽ có một số điểm khi xem xét các câu hỏi phỏng vấn Apache Spark sẽ giúp bạn rất nhiều trong việc có được vị trí đó. Polyglot là một tính năng của Apache Spark cho phép nó cung cấp các API cấp cao bằng các ngôn ngữ lập trình Python, Java, Scala và R.
Câu hỏi 12: Lợi ích của Spark so với MapReduce là gì?
- Spark nhanh hơn rất nhiều so với Hadoop MapReduce vì thực hiện xử lý nhanh hơn khoảng 10 đến 100 lần.
- Spark cung cấp các thư viện đính kèm để thực hiện nhiều nhiệm vụ từ cùng một lõi. Đó có thể là Steaming, học máy, xử lý hàng loạt, truy vấn SQL tương tác.
- Spark có khả năng thực hiện tính toán nhiều lần trên cùng một tập dữ liệu.
- Spark thúc đẩy bộ nhớ đệm và lưu trữ dữ liệu trong bộ nhớ và không phụ thuộc vào đĩa.
Câu hỏi 13: Nếu Spark tốt hơn MapReduce, vậy chúng ta không nên học MapReduce?
Việc biết thêm về MapReduce vẫn trở nên có giá trị khi trả lời các câu hỏi phỏng vấn về Apache Spark. Đây là một mô hình được sử dụng bởi nhiều công cụ dữ liệu bao gồm cả Spark. MapReduce trở nên đặc biệt quan trọng khi nói đến dữ liệu lớn.
Câu hỏi 14: Tính năng ‘Multiple formats’ là gì?
Tính năng này có nghĩa là Spark hỗ trợ nhiều nguồn dữ liệu như JSON, Cassandra, Hive và Parquet. API nguồn dữ liệu cung cấp một cơ chế có thể cắm để truy cập dữ liệu có cấu trúc qua Spark SQL.
Câu hỏi 15: Giải thích ‘Real-time Computation’
Apache Spark có một ’Tính toán thời gian thực’ và có độ trễ ít hơn vì tính toán trong bộ nhớ của nó. Nó đã được tạo ra với khả năng mở rộng lớn và các nhà phát triển đã ghi lại những người dùng của hệ thống đang chạy các cụm sản xuất với hàng ngàn nút và hỗ trợ một số mô hình tính toán.
Các câu hỏi đòi hỏi kinh nghiệm về Apache Spark
Đến điểm này của hướng dẫn Spark Tutorial, bạn đã biết thế Spark là gì và các dạng câu hỏi phỏng vấn Apache Spark như thế nào. Bây giờ hãy chuyển sang các câu hỏi khó hơn dành cho các nhà phát triển Dữ liệu lớn đã có kinh nghiệm.
Thực tế, các phiên bản nâng cao của những câu hỏi này sẽ gần giống với các câu hỏi cơ bản phía trên. Sự khác biệt duy nhất là các phiên bản nâng cao sẽ đòi hỏi một chút kiến thức và nghiên cứu nhiều hơn về Apache Spark.
Nếu bạn đã nghiên cứu Apache Spark khá nhiều, những câu hỏi này cũng sẽ không làm khó được bạn. Cho dù bạn chưa bắt đầu tìm hiểu về Apache Spark hay bạn đã là một chuyên gia về nó - những câu hỏi và câu trả lời phỏng vấn Apache Spark này cho phép các nhà phát triển có kinh nghiệm mở rộng và nâng cao kiến thức.
Câu hỏi 1: ‘partitions’ là gì?
Một partition (phân vùng) là một phần siêu nhỏ của một khối dữ liệu lớn hơn. Các phân vùng dựa trên logic - chúng được sử dụng trong Spark để quản lý dữ liệu sao cho đạt được mức tối thiểu của mạng.
Bạn cũng có thể thêm rằng quá trình phân vùng partitioning được sử dụng để lấy các phần dữ liệu nhỏ được đề cập trước đó từ các khối lớn hơn, do đó tối ưu hóa mạng để chạy ở tốc độ cao nhất có thể.
Câu hỏi 2: Spark Streaming được sử dụng làm gì?
Bạn cần chuẩn bị tốt với một vài câu hỏi phỏng vấn Apache Spark vì đây là một tính năng khá phổ biến của chính Spark.
Spark Streaming chịu trách nhiệm cho các quy trình truyền dữ liệu có thể mở rộng và không bị gián đoạn. Nó là một phần mở rộng của chương trình Spark chính và thường được sử dụng bởi các nhà phát triển và lập trình viên Dữ liệu lớn.
Câu hỏi 3: Chạy tất cả các quy trình trên một nút cục bộ có phải là bình thường không?
Câu trả lời là không. Đây là một trong những lỗi phổ biến nhất mà các nhà phát triển Apache Spark mắc phải - đặc biệt là khi họ mới bắt đầu. Bạn nên luôn luôn cố gắng phân phối luồng dữ liệu - điều này sẽ đẩy nhanh quá trình và làm cho quá trình nó trở nên trơn tru hơn.
Câu hỏi 4: ‘SparkCore’ được sử dụng làm gì?
Một trong những câu hỏi phỏng vấn Apache Spark cần thiết và đơn giản. SparkCore là công cụ chính chịu trách nhiệm cho tất cả các quá trình xảy ra trong Spark. Hãy ghi nhớ điều này vì bạn sẽ không còn cảm thấy ngạc nhiên khi biết rằng nó có một loạt các nhiệm vụ - giám sát, quản lý bộ nhớ và lưu trữ, lên lịch nhiệm vụ, v.v...
- Dễ sử dụng
- Cung cấp nội dung chất lượng
- Minh bạch giá cả
- Chứng chỉ miễn phí sau hoàn thành
- Tập trung vào các kỹ năng khoa học dữ liệu
- Thời gian học tập linh hoạt
- Thiết kế đơn giản (không có thông tin không cần thiết)
- Khóa học chất lượng cao (ngay cả khóa miễn phí)
- Đa dạng tính năng
- Chương trình nanodegree
- Phù hợp với doanh nghiệp
- Chứng chỉ hoàn thành trả phí
- Được tạo dựng tốt trong ngành
- Đa dạng các tính năng để lựa chọn
- Các khóa học trình độ đại học
- Các khóa học trình độ đại học
- Phù hợp với doanh nghiệp
- Trả phí cho chứng chỉ hoàn thành
Câu hỏi 5: Tệp hệ thống API có cách sử dụng trong Spark không?
Thực tế là có. API cụ thể này cho phép Spark đọc và soạn dữ liệu từ các khu vực lưu trữ (thiết bị) khác nhau.
Bạn có biết?
Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?
Tóm tắt
Cố gắng đừng căng thẳng và làm quá sức trước cuộc phỏng vấn. Bạn cũng không ứng tuyển cho vị trí phát triển Spark mà không biết Spark là gì đúng không? Hãy thư giãn. Cố gắng tập trung tất cả sự chú ý vào những câu hỏi phỏng vấn Apache Spark trong hướng dẫn Spark Tutorial này sẽ giúp bạn hiểu được một số tính năng chính, Spark Streaming và một số điều khác nữa.
Khi đã trong buổi phỏng vấn, hãy suy nghĩ kỹ trước khi trả lời. Căng thẳng chỉ làm bạn trả lời nhầm lẫn hoặc lan man. Hãy tin tưởng vào kỹ năng của mình và giữ một cái đầu cân bằng. Một lời khuyên là hãy thử trả lời các câu hỏi trong hướng dẫn Spark Tutorial này trước theo cách ngắn gọn và đơn giản nhất có thể, và sau đó giải thích bằng hai ba câu tiếp theo - điều này sẽ giúp cho nhà tuyển dụng biết rằng bạn không chỉ biết cách trả lời mà còn có kiến thức bổ sung về chủ đề.