IMHO, SQL trên HDFS và SQL trên Hadoop giống nhau. Sau khi tất cả Hadoop là HDFS + MapReduce. Vì vậy, khi chúng ta nói SQL trên HDFS, nó được hiểu rằng đó là SQL trên Hadoop.
Quay lại câu hỏi thực tế, Impala cung cấp phản hồi nhanh hơn khi sử dụng MPP
(xử lý song song) không giống Hive sử dụng MapReduce dưới mui xe, bao gồm một số chi phí ban đầu (như Charles sir đã chỉ định). Xử lý song song lớn là một loại máy tính sử dụng nhiều CPU riêng biệt chạy song song để thực thi một chương trình duy nhất mà mỗi CPU có bộ nhớ riêng của nó. Thực tế là Impala, dựa trên MPP, không liên quan đến chi phí của một công việc MapReduce viz. thiết lập công việc và tạo, phân bổ vùng, tạo phân chia, tạo bản đồ, v.v.
Nhưng điều đó không có nghĩa là Impala là giải pháp cho mọi vấn đề của bạn. Có dung lượng bộ nhớ cao (MPP), nó không phù hợp cho các tác vụ yêu cầu các thao tác dữ liệu nặng như join, vv vì bạn không thể vừa với mọi thứ trong bộ nhớ. Đây là nơi Hive phù hợp hơn.
Vì vậy, nếu bạn cần thời gian thực, truy vấn đặc biệt trên một tập hợp con dữ liệu của bạn đi cho Impala. Và nếu bạn có nhu cầu xử lý hàng loạt các loại dữ liệu lớn, hãy truy cập Hive.
HTH
Cảm ơn Charles vì lời giải thích này. "Impala không cung cấp khả năng chịu lỗi so với Hive", có nghĩa là nếu một nút đi trong khi truy vấn đang xử lý thì nó không thành công. Bạn đã có một số kịch bản khác trong tâm trí. – techuser
@Integrator Từ một cuộc phỏng vấn vào tháng 5 năm 2013, một trong những người quản lý sản phẩm tại Cloudera đã xác nhận rằng trong quá trình thực hiện hiện tại, nếu nút không truy vấn trung bình, truy vấn đó sẽ bị hủy và người dùng sẽ cần phát hành lại truy vấn đó (http: //www.datanami.com/datanami/2013-05-01/cloudera_releases_impala_into_the_wild.html) –
Cảm ơn bạn đã trả lời. – techuser