Ngân hàng câu hỏi của chương

Câu hỏi: BDI302c - Phần 3: Hadoop và nền tảng lập trình cho dữ liệu lớn

31 câu trắc nghiệm kèm lời giải của môn BDI302c - Dữ liệu lớn, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/31 câuCòn 11
AFlume
BSqoop
CPig
DHive
Lời giải
Đáp án đúng: "Sqoop". Sqoop (ghép từ SQL-to-Hadoop) là công cụ hệ sinh thái Hadoop chuyên chuyển dữ liệu hàng loạt (bulk transfer) giữa Hadoop và cơ sở dữ liệu quan hệ: lệnh import đọc bảng từ MySQL, Oracle qua JDBC rồi ghi vào HDFS, Hive hoặc HBase, lệnh export đẩy kết quả ngược về bảng quan hệ, và bên dưới nó chạy thành các tác vụ MapReduce song song. "Flume" cũng đưa dữ liệu vào Hadoop nhưng dành cho dữ liệu luồng như log sự kiện, gom từ nhiều nguồn sinh liên tục chứ không đọc bảng quan hệ. "Pig" là nền tảng xử lý với ngôn ngữ dòng dữ liệu Pig Latin, dùng để biến đổi dữ liệu đã nằm trong Hadoop chứ không phải cầu nối với cơ sở dữ liệu quan hệ. "Hive" là kho dữ liệu cho phép truy vấn dữ liệu trên HDFS bằng HiveQL giống SQL; nó thường là đích mà Sqoop nạp dữ liệu vào, bản thân không chuyên chuyển dữ liệu từ cơ sở dữ liệu quan hệ.
Mở trang câu hỏi này →
2What does SaaS provide?3 lựa chọn
AComputing Environment
BHardware Only
CSoftware On-Demand
Lời giải
Đáp án đúng: "Software On-Demand". SaaS (Software as a Service, phần mềm như một dịch vụ) là tầng trên cùng của mô hình dịch vụ đám mây: nhà cung cấp lo toàn bộ hạ tầng, nền tảng lẫn ứng dụng, người dùng chỉ việc dùng phần mềm hoàn chỉnh qua trình duyệt hoặc API khi cần và trả tiền theo thuê bao, ví dụ Gmail hay Salesforce. "Computing Environment" là thứ PaaS (Platform as a Service) cung cấp: hệ điều hành, runtime, cơ sở dữ liệu, công cụ phát triển để lập trình viên tự triển khai ứng dụng của mình. "Hardware Only" ứng với IaaS (Infrastructure as a Service), nơi người dùng chỉ thuê máy ảo, lưu trữ, mạng rồi tự cài mọi thứ phía trên. Thứ tự từ dưới lên IaaS, PaaS, SaaS cho thấy càng lên cao người dùng càng ít phải tự quản lý.
Mở trang câu hỏi này →
AExcel
BHadoop
CSpark
DPig
Lời giải
Đá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.
Mở trang câu hỏi này →
ASqoop
BFlume
CHive
DPig
Lời giải
Đáp án đúng: "Flume". Apache Flume là dịch vụ phân tán chuyên thu gom, tổng hợp và nạp (ingest) khối lượng lớn dữ liệu log từ nhiều máy chủ vào kho lưu trữ tập trung như HDFS hay HBase, theo mô hình source, channel, sink chạy liên tục. "Sqoop" cũng là công cụ nạp dữ liệu nhưng dành cho dữ liệu có cấu trúc: chuyển bảng qua lại giữa cơ sở dữ liệu quan hệ như MySQL, Oracle và Hadoop theo lô, không thiết kế cho dòng log phát sinh liên tục. "Hive" là kho dữ liệu trên Hadoop cho phép truy vấn bằng HiveQL giống SQL trên dữ liệu đã nằm trong HDFS, tức là khâu phân tích chứ không phải khâu nạp. "Pig" là nền tảng xử lý với ngôn ngữ kịch bản Pig Latin để biến đổi dữ liệu đã lưu, cũng không làm nhiệm vụ thu gom log.
Mở trang câu hỏi này →
5What is Pig Latin?4 lựa chọn
AA language used for NLP
BA high-level dataflow language
CA machine learning tool
DA protocol
Lời giải
Đáp án đúng: "A high-level dataflow language". Pig Latin là ngôn ngữ của Apache Pig, mô tả việc xử lý dữ liệu như một dòng dữ liệu (dataflow): mỗi câu lệnh như LOAD, FILTER, GROUP, JOIN, FOREACH nhận một quan hệ và sinh ra quan hệ mới, rồi Pig biên dịch chuỗi bước đó thành các tác vụ MapReduce (hoặc Tez, Spark) chạy trên Hadoop, giúp người dùng khỏi viết mã Java cấp thấp. "A language used for NLP" sai vì Pig Latin không dùng để xử lý ngôn ngữ tự nhiên; cái tên chỉ là cách chơi chữ với trò nói lái trong tiếng Anh. "A machine learning tool" sai vì Pig chỉ biến đổi và tổng hợp dữ liệu; học máy trên Hadoop thuộc về các thư viện như Mahout hay Spark MLlib. "A protocol" sai vì Pig Latin là ngôn ngữ lập trình xử lý dữ liệu, không phải giao thức truyền thông hay quy ước trao đổi giữa các hệ thống.
Mở trang câu hỏi này →
6MapReduce was popularized by:4 lựa chọn
AAmazon
BFacebook
CGoogle
DMicrosoft
Lời giải
Đáp án đúng: "Google". MapReduce là mô hình lập trình xử lý song song dữ liệu lớn trên cụm máy, chia việc thành pha Map (biến mỗi bản ghi thành các cặp khoá, giá trị) và pha Reduce (gộp các giá trị cùng khoá). Google công bố mô hình này năm 2004 trong bài báo của Jeffrey Dean và Sanjay Ghemawat, dùng để xây chỉ mục web, và chính bài báo đó truyền cảm hứng cho Hadoop mã nguồn mở. "Amazon" phổ biến hoá điện toán đám mây qua AWS và có dịch vụ Elastic MapReduce, nhưng đó là dịch vụ chạy Hadoop chứ không phải nơi đưa ra mô hình. "Facebook" là người dùng lớn của Hadoop và tạo ra Hive để viết truy vấn kiểu SQL thay cho mã MapReduce. "Microsoft" có hệ thống riêng như Dryad và sau này đưa Hadoop vào HDInsight, nhưng không phải bên làm MapReduce trở nên phổ biến.
Mở trang câu hỏi này →
AMongoDB
BRedis
CHBase
DNeo4j
Lời giải
Đáp án đúng: "HBase". HBase là cơ sở dữ liệu NoSQL họ cột (wide-column), mô phỏng Bigtable của Google và chạy trên HDFS: dữ liệu được tổ chức theo khoá hàng, các họ cột (column family) được lưu riêng, mỗi hàng có thể có số cột khác nhau, phù hợp truy cập ngẫu nhiên đọc ghi theo thời gian thực trên bảng rất lớn. "MongoDB" là cơ sở dữ liệu hướng tài liệu (document), lưu bản ghi dạng BSON giống JSON lồng nhau, không tổ chức theo họ cột. "Redis" là kho key-value trong bộ nhớ, ánh xạ khoá tới giá trị hoặc cấu trúc như danh sách, tập hợp, dùng nhiều cho bộ đệm và hàng đợi. "Neo4j" là cơ sở dữ liệu đồ thị, lưu nút, quan hệ và thuộc tính, truy vấn bằng Cypher, mạnh ở bài toán đi theo quan hệ chứ không phải lưu trữ theo cột.
Mở trang câu hỏi này →
AAggregates output
BSorts input
CMaps keys to values
DStores data
Lời giải
Đáp án đúng: "Aggregates output". Trong MapReduce, hàm map biến mỗi bản ghi đầu vào thành các cặp khoá–giá trị trung gian; sau pha shuffle and sort, mọi giá trị cùng khoá được gom về một reducer, và hàm reduce tổng hợp danh sách giá trị đó thành kết quả cuối, ví dụ trong bài đếm từ nó cộng các số 1 của cùng một từ để ra tổng số lần xuất hiện. "Sorts input" sai vì việc sắp xếp theo khoá do framework làm trong pha shuffle and sort, trước khi reduce được gọi, chứ không phải nhiệm vụ của hàm reduce. "Maps keys to values" là mô tả của hàm map, bước sinh ra các cặp khoá–giá trị. "Stores data" sai vì lưu trữ thuộc về HDFS; reduce chỉ ghi kết quả của nó ra hệ thống tệp ở bước cuối, bản thân nó là phép tính tổng hợp.
Mở trang câu hỏi này →
ALow level deals with storage and scheduling while high level deals with interactivity
BLow level deals with interactivity while high level deals with storage and scheduling
Lời giải
Đáp án đúng: "Low level deals with storage and scheduling while high level deals with interactivity". Hệ sinh thái Hadoop được nhìn như các tầng: tầng thấp lo hạ tầng gồm lưu trữ phân tán (HDFS) và quản lý, lập lịch tài nguyên (YARN), còn tầng cao gồm các giao diện người dùng tương tác trực tiếp như Hive với truy vấn kiểu SQL, Pig với Pig Latin hay các công cụ phân tích, giúp người dùng làm việc mà không phải lo chi tiết phân tán. Các tầng trên dựa vào tầng dưới: Hive biên dịch truy vấn thành job chạy trên YARN và đọc dữ liệu từ HDFS. Phương án "Low level deals with interactivity while high level deals with storage and scheduling" đảo ngược vai trò hai tầng: lưu trữ và lập lịch là phần nền mà mọi thứ khác dựa vào nên phải nằm thấp nhất, còn sự tương tác với người dùng là thứ đặt ở trên cùng, xa phần cứng nhất.
Mở trang câu hỏi này →
ASqoop
BFlume
CHive
DHDFS
Lời giải
Đá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.
Mở trang câu hỏi này →
AMap -> Reduce -> Shuffle and Sort
BShuffle and Sort -> Reduce -> Map
CMap -> Shuffle and Sort -> Reduce
DShuffle and Sort -> Map -> Reduce
Lời giải
Đáp án đúng: "Map -> Shuffle and Sort -> Reduce". Một tác vụ MapReduce chạy ba bước: Map đọc từng phần dữ liệu đầu vào trên các nút và phát ra các cặp khoá–giá trị trung gian; Shuffle and Sort chuyển các cặp đó qua mạng, gom mọi giá trị cùng khoá về cùng một reducer và sắp xếp theo khoá; cuối cùng Reduce tổng hợp danh sách giá trị của mỗi khoá thành kết quả. "Map -> Reduce -> Shuffle and Sort" sai vì reduce cần dữ liệu đã được gom theo khoá, nên không thể chạy trước bước trộn và sắp xếp. "Shuffle and Sort -> Reduce -> Map" sai vì chưa có map thì chưa có cặp khoá–giá trị nào để trộn. "Shuffle and Sort -> Map -> Reduce" sai vì shuffle tồn tại chính để nối đầu ra của map với đầu vào của reduce, nên nó phải nằm giữa hai bước đó.
Mở trang câu hỏi này →
AGuaranteed hardware support.
BLess software choices to choose from.
CQuick prototyping, deploying, and validating of projects.
DQuick prototyping, deploying, and guaranteed bug free.
Lời giải
Đáp án đúng: "Quick prototyping, deploying, and validating of projects.". Ảnh dựng sẵn (pre-built image) như máy ảo Cloudera QuickStart đóng gói sẵn Hadoop, HDFS, YARN, Hive, Pig, Spark đã cấu hình tương thích nhau, nên người dùng khởi động là có môi trường chạy được ngay, tiết kiệm công cài đặt và cho phép dựng mẫu, triển khai, kiểm chứng dự án nhanh. "Guaranteed hardware support." sai vì ảnh là gói phần mềm, không quyết định hay bảo đảm phần cứng nào được hỗ trợ; máy yếu vẫn chạy chậm hoặc không chạy được. "Less software choices to choose from." không phải lợi ích mà là một hạn chế, ảnh cố định sẵn một bộ phiên bản nên bớt linh hoạt. "Quick prototyping, deploying, and guaranteed bug free." có vế đầu đúng nhưng vế sau sai: không phần mềm nào được bảo đảm hết lỗi, ảnh dựng sẵn chỉ giảm lỗi cấu hình chứ không loại trừ lỗi.
Mở trang câu hỏi này →
APrevents network connection failure
BMuch faster than a traditional super computer
CPrevents individual component failures
DEnables fault tolerance
Lời giải
Đáp án đúng: "Enables fault tolerance". Cụm máy phổ thông (commodity cluster) gồm nhiều máy tính rẻ tiền nối mạng; vì linh kiện rẻ nên hỏng hóc là chuyện thường, và phần mềm như Hadoop được thiết kế để chịu lỗi (fault tolerance): HDFS nhân bản mỗi khối dữ liệu ra nhiều nút, tác vụ hỏng được giao lại cho nút khác, nên cả hệ vẫn chạy khi vài máy chết. "Prevents network connection failure" sai vì cụm không ngăn được sự cố mạng; nó chỉ chịu đựng được khi sự cố xảy ra. "Much faster than a traditional super computer" sai vì từng máy phổ thông yếu hơn và mạng chậm hơn siêu máy tính; ưu thế là chi phí thấp và khả năng mở rộng ngang, không phải tốc độ tuyệt đối. "Prevents individual component failures" sai vì cụm không làm linh kiện bớt hỏng, ngược lại nó giả định hỏng hóc sẽ xảy ra và xử lý bằng dư thừa.
Mở trang câu hỏi này →
14What is the job of the NameNode?3 lựa chọn
ACoordinate operations and assigns tasks to Data Nodes
BListens from DataNode for block creation, deletion, and replication.
CFor gene sequencing calculations.
Lời giải
Đáp án đúng: "Coordinate operations and assigns tasks to Data Nodes". NameNode là nút chủ của HDFS: nó giữ không gian tên (namespace) gồm cây thư mục, tên tệp, quyền truy cập và bản đồ mỗi tệp gồm những khối nào nằm trên DataNode nào, từ đó điều phối mọi thao tác như mở, đóng, đổi tên tệp và chỉ thị DataNode tạo, xoá hay nhân bản khối. "Listens from DataNode for block creation, deletion, and replication." mô tả ngược vai trò: chính DataNode là nút thực hiện tạo, xoá, nhân bản khối theo lệnh của NameNode; DataNode gửi heartbeat và báo cáo khối (block report) lên NameNode, NameNode có nhận các báo cáo đó nhưng chức năng của nó là ra chỉ thị chứ không phải chờ lệnh từ DataNode. "For gene sequencing calculations." sai vì giải trình tự gen chỉ là một ứng dụng có thể chạy trên Hadoop, không liên quan tới vai trò quản lý siêu dữ liệu của NameNode.
Mở trang câu hỏi này →
15HDFS stores data in:4 lựa chọn
AObjects
BFiles
CTables
DBlocks
Lời giải
Đáp án đúng: "Blocks". HDFS (Hadoop Distributed File System, hệ thống tệp phân tán của Hadoop) cắt mỗi tệp lớn thành các khối (block) kích thước cố định, mặc định 128 MB từ Hadoop 2 trở đi, rồi rải các khối lên nhiều DataNode và sao chép mỗi khối thành ba bản để chịu lỗi; NameNode chỉ giữ siêu dữ liệu cho biết khối nào nằm ở đâu. Chia khối giúp lưu được tệp lớn hơn một ổ đĩa và cho phép xử lý song song từng khối. "Files" là đơn vị người dùng nhìn thấy, nhưng ở tầng lưu trữ vật lý HDFS không giữ nguyên một tệp trên một máy. "Objects" là mô hình của kho đối tượng như Amazon S3. "Tables" là cách tổ chức của cơ sở dữ liệu quan hệ hoặc của Hive, HBase xây phía trên HDFS.
Mở trang câu hỏi này →
AHDFS
BPig
CHive
DExcel
ECassandra
FKafka
Lời giải
Đáp án đúng gồm bốn ý: "HDFS", "Pig", "Hive" và "Cassandra". HDFS là tầng lưu trữ phân tán nền tảng của Hadoop; Hive đặt lược đồ bảng lên dữ liệu trong HDFS và cho truy vấn bằng HiveQL kiểu SQL; Cassandra là cơ sở dữ liệu NoSQL dạng cột rộng phân tán, vừa lưu vừa truy vấn bằng CQL. Pig không tự lưu dữ liệu mà là ngôn ngữ xử lý Pig Latin chạy trên dữ liệu đã nằm trong HDFS, nên được tính vào nhóm công cụ truy vấn và xử lý của hệ lưu trữ đó. "Kafka" dễ bị nhầm vì có giữ thông điệp trên đĩa một thời gian, nhưng nó là nền tảng truyền thông điệp và luồng sự kiện theo kiểu publish subscribe, dùng để vận chuyển dữ liệu giữa các hệ thống chứ không phải công cụ lưu trữ và truy vấn, nên bị loại. "Excel" là bảng tính trên máy cá nhân, mỗi trang tính giới hạn khoảng một triệu dòng, không chịu được quy mô dữ liệu lớn.
Mở trang câu hỏi này →
17The master node in YARN is called:4 lựa chọn
AResourceManager
BDataNode
CNodeManager
DJobTracker
Lời giải
Đáp án đúng: "ResourceManager". YARN (Yet Another Resource Negotiator, bộ điều phối tài nguyên) có kiến trúc chủ–tớ: ResourceManager chạy trên nút chủ, nắm toàn bộ tài nguyên của cụm và dùng bộ lập lịch (scheduler) để cấp container cho từng ứng dụng; mỗi ứng dụng có một ApplicationMaster riêng xin tài nguyên từ ResourceManager. "DataNode" sai vì đó là nút tớ của HDFS, lưu các khối dữ liệu, thuộc tầng lưu trữ chứ không phải YARN. "NodeManager" là nút tớ của YARN chạy trên từng máy, khởi tạo và giám sát container rồi báo cáo về ResourceManager, nên không phải nút chủ. "JobTracker" là nút chủ của MapReduce thế hệ đầu (Hadoop 1), gộp cả quản lý tài nguyên lẫn theo dõi tác vụ; YARN ra đời chính để tách vai trò đó thành ResourceManager và ApplicationMaster.
Mở trang câu hỏi này →
18Which component stores data in HDFS?4 lựa chọn
ANameNode
BDataNode
CZookeeper
DFlume
Lời giải
Đáp án đúng: "DataNode". HDFS (Hadoop Distributed File System) chia mỗi tệp thành các khối (block), mặc định 128 MB, và các khối này được lưu thật sự trên đĩa của các DataNode, mỗi khối được sao chép thường là ba bản trên các máy khác nhau; DataNode cũng phục vụ yêu cầu đọc ghi khối và gửi heartbeat định kỳ báo còn sống. "NameNode" chỉ giữ siêu dữ liệu (metadata) như cây thư mục, tên tệp và bảng ánh xạ khối nào nằm ở DataNode nào, chứ không chứa nội dung dữ liệu. "Zookeeper" là dịch vụ điều phối phân tán dùng cho bầu chọn leader, quản lý cấu hình và khoá, ví dụ hỗ trợ NameNode dự phòng, không lưu dữ liệu người dùng. "Flume" là công cụ thu thập và chuyển dữ liệu dòng vào HDFS, tức đứng ở phía nạp dữ liệu chứ không phải nơi lưu trữ.
Mở trang câu hỏi này →
19What is the role of YARN?4 lựa chọn
AAllows various applications to run on the same Hadoop cluster.
BEnables large-scale data across clusters.
CImplementation of MapReduce.
DNone of the above
Lời giải
Đáp án đúng: "Allows various applications to run on the same Hadoop cluster.". YARN tách việc quản lý tài nguyên khỏi mô hình lập trình: ResourceManager cấp container cho bất kỳ ứng dụng nào có ApplicationMaster, nhờ vậy MapReduce, Spark, Tez, Giraph có thể cùng chạy và chia sẻ tài nguyên trên một cụm Hadoop, cùng dùng dữ liệu trên HDFS, thay vì mỗi framework phải dựng cụm riêng. "Enables large-scale data across clusters." là câu mơ hồ, mô tả chung việc trải dữ liệu lớn trên cụm, vốn là việc của HDFS chứ không phải vai trò điều phối tài nguyên của YARN. "Implementation of MapReduce." sai vì MapReduce chỉ là một trong nhiều ứng dụng chạy trên YARN; ở Hadoop 1 MapReduce tự quản lý tài nguyên, còn YARN ra đời để gỡ sự gắn chặt đó. "None of the above" sai vì đã có một phát biểu đúng về vai trò của YARN.
Mở trang câu hỏi này →
AHDFS
BMapReduce
CYARN
DSpark
Lời giải
Đáp án đúng: "YARN". Hadoop 2 có ba thành phần cốt lõi: HDFS lo lưu trữ, YARN lo quản lý tài nguyên và lập lịch, MapReduce lo mô hình xử lý. YARN gồm ResourceManager trên nút chủ theo dõi CPU, bộ nhớ của cả cụm và cấp container, cùng NodeManager trên mỗi nút giám sát tài nguyên tại chỗ. "HDFS" sai vì đó là hệ thống tệp phân tán, chia tệp thành khối và nhân bản trên các DataNode, thuộc tầng lưu trữ. "MapReduce" sai vì từ Hadoop 2 nó chỉ là mô hình lập trình xử lý dữ liệu chạy trên YARN, không còn tự quản lý tài nguyên như thời JobTracker. "Spark" là động cơ xử lý dữ liệu trong bộ nhớ, có thể chạy trên YARN như một ứng dụng, chứ không phải thành phần của Hadoop chịu trách nhiệm cấp phát tài nguyên.
Mở trang câu hỏi này →