Câu hỏi: BDI302c Dữ liệu lớn – Bộ ôn tập cuối kỳ số 2
74 câu trắc nghiệm kèm lời giải của môn BDI302c - Dữ liệu lớn, xếp đúng thứ tự trong đề. Trang 4/4 — câu 61–74.
Danh sách câu hỏi
74/74 câuHết danh sách
AYes
BNo
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "No". K-Means bắt đầu bằng việc chọn ngẫu nhiên k tâm cụm ban đầu, rồi lặp hai bước: gán mỗi điểm vào tâm gần nhất và tính lại tâm bằng trung bình các điểm trong cụm, cho tới khi hội tụ. Thuật toán chỉ bảo đảm hội tụ về một cực tiểu cục bộ của tổng bình phương khoảng cách trong cụm, và cực tiểu đó phụ thuộc vào tâm khởi tạo, nên hai lần chạy với khởi tạo ngẫu nhiên khác nhau có thể cho cách phân cụm khác nhau. Vì vậy trong thực hành người ta chạy nhiều lần rồi chọn kết quả có tổng sai số nhỏ nhất, hoặc dùng k-means++ để khởi tạo tốt hơn. "Yes" chỉ đúng khi cố định hạt giống ngẫu nhiên hoặc dùng cùng một bộ tâm khởi tạo, điều mà câu hỏi không giả định.
ATo provide machine learning capabilities.
BTo manage distributed graph computation.
CTo process structured data using SQL queries.
DTo perform real-time streaming analytics.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "To process structured data using SQL queries.". Spark SQL là mô-đun của Apache Spark để xử lý dữ liệu có cấu trúc: nó cung cấp DataFrame và Dataset, cho phép viết truy vấn SQL hoặc dùng API tương đương, đọc nhiều nguồn như Parquet, JSON, Hive, JDBC, và dùng bộ tối ưu Catalyst để lập kế hoạch thực thi hiệu quả. "To provide machine learning capabilities." là việc của MLlib, thư viện học máy của Spark. "To manage distributed graph computation." là việc của GraphX (hoặc GraphFrames), mô-đun tính toán đồ thị phân tán. "To perform real-time streaming analytics." là việc của Spark Streaming và Structured Streaming; Structured Streaming dựng trên nền Spark SQL nhưng mục đích chính của Spark SQL vẫn là truy vấn dữ liệu có cấu trúc, còn phân tích dòng là mô-đun khác.
AHive
BSpark
CPig
DSqoop
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Spark". Apache Spark là động cơ xử lý hợp nhất: phần lõi với RDD và DataFrame xử lý theo lô (batch), còn Spark Streaming chia luồng dữ liệu thành các lô nhỏ (micro-batch) và Structured Streaming xử lý luồng trên cùng API DataFrame, nên một nền tảng chạy được cả hai kiểu, dùng chung mã và bộ nhớ đệm. "Hive" sai vì là kho dữ liệu truy vấn bằng HiveQL, dịch thành các tác vụ theo lô trên MapReduce, Tez hoặc Spark, không xử lý luồng thời gian thực. "Pig" sai vì Pig Latin cũng được biên dịch thành các tác vụ theo lô, dùng cho biến đổi dữ liệu kiểu ETL. "Sqoop" sai vì nó chỉ chuyển dữ liệu hàng loạt giữa Hadoop và cơ sở dữ liệu quan hệ, không phải nền tảng xử lý.
AJSON
BParquet
CCSV
DTXT
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Parquet". Parquet là định dạng lưu trữ theo cột (columnar) của hệ sinh thái Hadoop: giá trị của cùng một cột được đặt liền nhau, nén rất tốt vì cùng kiểu dữ liệu, và khi truy vấn chỉ cần vài cột thì hệ thống chỉ đọc đúng các cột đó, kèm thống kê theo khối để bỏ qua dữ liệu không thỏa điều kiện; vì vậy nó tối ưu cho tải đọc nhiều, phân tích nhiều, ghi một lần. "JSON" là định dạng văn bản bán cấu trúc lưu theo từng bản ghi, lặp lại tên trường ở mọi bản ghi và phải phân tích cú pháp toàn bộ khi đọc, nên chậm và tốn chỗ. "CSV" cũng là văn bản theo dòng, không có kiểu dữ liệu, không nén theo cột, muốn lấy một cột vẫn phải đọc hết từng dòng. "TXT" là văn bản thuần không có cấu trúc, không hỗ trợ đọc chọn lọc hay lược đồ nên kém nhất cho truy vấn phân tích.
AExecution model, Latency, Scalability, Programming Language, Fault Tolerance
BCoordination, Latency, Productivity, Speed, Fault Tolerance
CExecution model, Speed, Scalability, Flexibility, Fault Tolerance
DCoordination, Latency, Productivity, Flexibility, Fault Tolerance
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Execution model, Latency, Scalability, Programming Language, Fault Tolerance". Khi so sánh các hệ xử lý dữ liệu lớn như MapReduce, Spark, Flink, Storm, người ta xét năm tiêu chí: mô hình thực thi (theo lô, theo luồng, cách biểu diễn luồng xử lý), độ trễ (thời gian từ khi dữ liệu vào tới khi có kết quả), khả năng mở rộng (thêm máy để xử lý nhiều dữ liệu hơn), ngôn ngữ lập trình được hỗ trợ (Java, Scala, Python, SQL) và khả năng chịu lỗi (khôi phục khi nút hỏng). Phương án "Coordination, Latency, Productivity, Speed, Fault Tolerance" lẫn vào phối hợp, năng suất và tốc độ, trong đó tốc độ trùng ý với độ trễ. Phương án "Execution model, Speed, Scalability, Flexibility, Fault Tolerance" thay độ trễ bằng tốc độ và thay ngôn ngữ lập trình bằng tính linh hoạt, là những khái niệm chung chung. Phương án "Coordination, Latency, Productivity, Flexibility" lại bỏ mất mô hình thực thi và khả năng mở rộng, hai tiêu chí quan trọng nhất.
66Why is Hadoop not a good platform for machine learning as mentioned in lecture? (Choose 4)6 lựa chọn
ARequires nodes and multiple machines.
BBottleneck using HDFS.
CMap and Reduce Based Computation.
DUnable to support machine learning.
ENo interactive shell and streaming.
FJava support only.
Lời giải
Mở trang câu hỏi này →Đáp án đúng gồm bốn ý: "Bottleneck using HDFS.", "Map and Reduce Based Computation.", "No interactive shell and streaming." và "Java support only.". Học máy thường dùng thuật toán lặp, đọc lại cùng dữ liệu qua nhiều vòng; với Hadoop MapReduce, mỗi vòng phải đọc từ HDFS và ghi kết quả trung gian xuống đĩa, gây nghẽn vào ra. Mô hình chỉ gồm hai pha Map và Reduce cứng nhắc nên khó diễn đạt thuật toán nhiều bước. Hadoop không có shell tương tác để thử nghiệm, khám phá dữ liệu, không hỗ trợ xử lý luồng, và API gốc gắn chủ yếu với Java; đó là những lý do Spark ra đời. "Requires nodes and multiple machines." không phải nhược điểm riêng: mọi nền tảng phân tán kể cả Spark đều chạy trên cụm nhiều nút, và đó chính là cách mở rộng quy mô. "Unable to support machine learning." quá tuyệt đối, vì Hadoop vẫn chạy được học máy, ví dụ với thư viện Mahout, chỉ là chạy kém hiệu quả.
AProject, Ship, Reduce
BProject, Decompose, Send
CIndex, Join, Display
DQuery, Join, Display
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Project, Ship, Reduce". Semi-join (nửa phép nối) là kỹ thuật giảm lượng dữ liệu truyền qua mạng khi nối hai quan hệ R và S nằm ở hai trạm khác nhau của cơ sở dữ liệu phân tán. Bước Project chiếu R lên các thuộc tính nối để có tập giá trị khoá gọn nhẹ; bước Ship gửi tập giá trị này sang trạm chứa S; bước Reduce dùng nó để lọc S, chỉ giữ các bộ có giá trị khớp, rồi chỉ phần S đã thu gọn mới phải gửi đi để hoàn tất phép nối. "Project, Decompose, Send" có bước phân rã (decompose) không thuộc semi-join, vốn không tách quan hệ ra. "Index, Join, Display" mô tả quy trình truy vấn chung là lập chỉ mục, nối rồi hiển thị, không có bước gửi giá trị nối sang trạm khác. "Query, Join, Display" chỉ là trình tự chạy một truy vấn, bỏ qua đúng bước gửi và thu gọn làm nên semi-join.
68Spark runs on which computing engine?4 lựa chọn
AYARN
BFlume
CSqoop
DZookeeper
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "YARN". Spark có thể chạy ở nhiều chế độ quản lý cụm như standalone, Mesos, Kubernetes, và phổ biến nhất trong hệ sinh thái Hadoop là chạy trên YARN: khi đó Spark xin container từ ResourceManager để khởi chạy các executor trên những NodeManager, dùng chung tài nguyên với các ứng dụng Hadoop khác và đọc dữ liệu ngay trên HDFS. "Flume" sai vì nó là dịch vụ thu thập và chuyển dữ liệu log, sự kiện vào HDFS, không cấp tài nguyên tính toán. "Sqoop" sai vì nó chỉ chuyển dữ liệu giữa Hadoop và cơ sở dữ liệu quan hệ. "Zookeeper" sai vì nó cung cấp dịch vụ điều phối như lưu cấu hình, đồng bộ, bầu chọn nút chủ cho hệ phân tán, chứ không phải nơi phân bổ CPU, bộ nhớ để chạy tác vụ Spark.
AYes
BNo: lines have to be converted into row.
CNo: RDD’s needed to be made relational first.
DNo: RDD’s cannot be converted into DataFrames.
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "No: lines have to be converted into row.". DataFrame trong Spark SQL là tập dữ liệu có lược đồ, mỗi phần tử là một đối tượng Row với các cột có tên và kiểu; một RDD đọc từ tệp văn bản chỉ là tập các chuỗi, nên phải dùng map để tách mỗi dòng thành các trường và đóng gói thành Row, sau đó mới gọi createDataFrame hoặc toDF để có DataFrame. "Yes" sai vì RDD các dòng thô chưa có cấu trúc cột, Spark không tự suy ra được lược đồ. "No: RDD’s needed to be made relational first." diễn đạt mơ hồ: không có bước biến RDD thành quan hệ nào riêng, việc cần làm cụ thể là chuyển từng dòng thành Row. "No: RDD’s cannot be converted into DataFrames." sai vì Spark hỗ trợ chuyển RDD sang DataFrame, cả bằng cách suy luận lược đồ từ Row lẫn bằng cách khai báo lược đồ tường minh qua StructType.
70Which of the following is not a Big Data tool?4 lựa chọn
AExcel
BHadoop
CSpark
DPig
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Excel". Công cụ dữ liệu lớn được thiết kế để lưu trữ và xử lý dữ liệu phân tán trên nhiều máy, mở rộng theo chiều ngang khi dữ liệu tăng; Excel là bảng tính chạy trên một máy, giới hạn khoảng một triệu dòng mỗi trang tính và không có cơ chế phân tán hay chịu lỗi, nên không thuộc nhóm này. "Hadoop" là nền tảng gồm hệ tệp phân tán HDFS, bộ quản lý tài nguyên YARN và mô hình lập trình MapReduce, chính là xương sống của hệ sinh thái dữ liệu lớn. "Spark" là động cơ xử lý phân tán trong bộ nhớ với RDD, Spark SQL, MLlib, nhanh hơn MapReduce nhiều lần ở bài toán lặp. "Pig" là công cụ trong hệ sinh thái Hadoop, cho viết luồng xử lý bằng ngôn ngữ kịch bản Pig Latin rồi biên dịch thành các job MapReduce chạy trên cụm.
AFast and Simple
BAccurate and Consistent
CFast and Complex
DAccurate and Memory Efficient
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Fast and Simple". Dữ liệu dòng (streaming data) đến liên tục và không có điểm kết thúc, nên thuật toán phân tích dòng phải xử lý mỗi phần tử ngay khi nó tới, thường chỉ nhìn một lần, với thời gian rất ngắn để theo kịp tốc độ dữ liệu đổ vào; vì vậy chúng được thiết kế nhanh và đơn giản, chẳng hạn đếm, cộng dồn hay cập nhật cửa sổ trượt. "Accurate and Consistent" không đúng vì phân tích dòng thường chấp nhận kết quả xấp xỉ để đổi lấy tốc độ, và dữ liệu có thể đến trễ, sai thứ tự. "Fast and Complex" tự mâu thuẫn: thuật toán phức tạp tốn nhiều phép tính trên mỗi phần tử nên không theo kịp dòng. "Accurate and Memory Efficient" đúng một nửa, vì tiết kiệm bộ nhớ quả là yêu cầu khi không thể lưu cả dòng, nhưng chính xác tuyệt đối thường phải hy sinh, nên đây không phải đặc trưng được nêu.
72Which aspect of managing big data involves ensuring data is accurate, consistent, and reliable?4 lựa chọn
AData ingestion
BData quality
CData operations
DData scalability
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Data quality". Chất lượng dữ liệu (data quality) là mảng quản lý dữ liệu lớn lo cho dữ liệu chính xác, nhất quán giữa các nguồn và đáng tin cậy, thông qua kiểm tra, làm sạch, loại trùng, chuẩn hoá định dạng và giám sát liên tục. "Data ingestion" là khâu nạp dữ liệu từ nguồn vào hệ thống, quan tâm số lượng nguồn, tốc độ và định dạng đầu vào; có thể kiểm tra sơ bộ khi nạp nhưng mục tiêu chính không phải bảo đảm tính đúng. "Data operations" là các thao tác vận hành trên dữ liệu như lọc, gộp, biến đổi, truy vấn. "Data scalability" là khả năng hệ thống lưu trữ và xử lý mở rộng theo khối lượng dữ liệu tăng, chẳng hạn bằng cách thêm máy, liên quan đến dung lượng và hiệu năng chứ không phải độ chính xác.
AData format
BData accuracy/trustworthiness
CData size
DData transfer rate
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Data accuracy/trustworthiness". Veracity (tính xác thực) là một trong các chữ V của dữ liệu lớn, chỉ mức độ chính xác, đáng tin cậy và chất lượng của dữ liệu: dữ liệu có bị nhiễu, thiếu, mâu thuẫn hay đến từ nguồn không tin được hay không. Dữ liệu lớn gom từ nhiều nguồn khác nhau nên veracity thường thấp và phải làm sạch, đối chiếu trước khi phân tích. "Data format" thuộc về variety (tính đa dạng), tức dữ liệu có nhiều dạng như bảng, văn bản, ảnh, đồ thị. "Data size" là volume (khối lượng), độ lớn tính bằng terabyte hay petabyte. "Data transfer rate" gần với velocity (tốc độ), tức tốc độ dữ liệu được sinh ra và phải xử lý. Ba chữ V đó mô tả quy mô và hình thức, không nói gì về việc dữ liệu đúng hay sai.
ASqoop
BFlume
CHive
DHDFS
Lời giải
Mở trang câu hỏi này →Đáp án đúng: "Flume". Apache Flume là dịch vụ phân tán dùng để thu thập, gom và chuyển liên tục khối lượng lớn dữ liệu dòng như log máy chủ, sự kiện ứng dụng vào HDFS hoặc HBase gần như theo thời gian thực, với kiến trúc source, channel, sink. "Sqoop" dùng để chuyển dữ liệu theo lô giữa cơ sở dữ liệu quan hệ và Hadoop, mỗi lần chạy là một đợt nhập hoặc xuất, không phải thu thập liên tục. "Hive" là công cụ kho dữ liệu cho phép truy vấn dữ liệu trên Hadoop bằng ngôn ngữ giống SQL (HiveQL), thuộc tầng phân tích chứ không thu thập dữ liệu. "HDFS" là hệ thống tệp phân tán của Hadoop, nơi lưu dữ liệu sau khi đã được thu về, chứ bản thân nó không đi lấy dữ liệu từ nguồn bên ngoài.