Nội dung bài viết
#

Hive là gì? Cấu trúc và các modes của Hive

Nội dung bài viết

    Để xử lý các dữ liệu có cấu trúc và nửa cấu trúc, các nhà phát triển sẽ sử dụng các loại công cụ lưu trữ dữ liệu trên Hadoop. Cụ thể đó là Hive – một cơ sở dữ liệu cung cấp ngôn ngữ truy vấn linh hoạt giúp xử lý dữ liệu hiệu quả. Hãy cùng BKHOST tìm hiểu chi tiết về cấu trúc và chế độ của Hive trong bài viết dưới đây.

    Hive là gì?

    Hive la gi

    Hive là một công cụ lưu trữ dữ liệu được triển khai dựa trên Hadoop Distributed File System. Hệ thống này hỗ trợ Hive thực hiện nhiều công việc khác nhau như đóng gói dữ liệu, truy vấn đặc biệt và phân tích khối dữ liệu lớn.

    Hive có những đặc điểm nổi bật nào?

    Một số đặc điểm quan trọng của Hive bao gồm:

    • Tất cả các bảng và cơ sở dữ liệu của Hive điều được triển khai trước để lưu trữ dữ liệu.
    • Kho dữ liệu của Hive chỉ chịu trách nhiệm quản lý các dữ liệu có cấu trúc được lưu trữ trong bảng của nó.
    • Framework Hive có khả năng tối ưu hóa các truy vấn giúp cải thiện hiệu suất rất tốt.
    • Hive sử dụng ngôn ngữ được triển khai dựa trên SQL giúp đơn giản hóa lập trình Map Reduce. Ngoài ra, nó còn sử dụng một số kỹ thuật trong RDB như bảng, hàng, cột và Schema.
    • Lập trình của Hadoop hoạt động trên Flat File cho phép Hive có thể sử dụng cấu trúc thư mục để phân vùng dữ liệu. Điều này giúp cải thiện hiệu suất đối với một số truy vấn.
    • Metastore là thành phần quan trọng của Hive hoạt động trong RDB được sử dụng để lưu trữ thông tin Schema. Người dùng có thể tương tác với Hive thông qua GUI web hoặc JDBC.
    • CLI hỗ trợ người dùng viết các truy vấn Hive bằng HQL.
    • Tương tự như SQL, HQL cũng được sử dụng để phân tích các dữ liệu. Chẳng hạn như với truy vấn Select * from hiển thị tất cả các bản ghi có trong bảng Hive.
    • Hive hỗ trợ bốn định dạng tệp phổ biến đó là TEXTFILE, SEQUENCEFILE, ORC và RCFILE.
    • Hive sử dụng cơ sở dữ liệu Derby để lưu trữ siêu dữ liệu cá nhân và sử dụng MYSQL để lưu trữ siêu dữ liệu công cộng.

    Các đặc điểm khác của Hive

    • HQL và SQL hoạt động trên cơ sở dữ liệu truyền thống còn truy vấn Hive hoạt động trên cơ sở hạ tầng của Hadoop.
    • Việc thực thi các truy vấn Hive tương tự như việc tạo các Job MapReduce tự động.
    • Hive hỗ trợ phân vùng và Bucket cho phép người dùng có thể truy xuất dữ liệu dễ dàng trong quá trình truy vấn của máy khách.
    • Hive cho phép người dùng có thể tùy chỉnh UDF nhằm loại bỏ và lọc các dữ liệu.

    Hive so với RDB

    Hive được triển khai các tính năng mới mà RDB không có. Chẳng hạn như Hive có thể truy vấn và xử lý dữ liệu có kích thước lớn tính bằng petabyte một cách linh hoạt và hiệu quả. Một số điểm khác giữa Hive và RDB như sau:

    • RDB là Schema on READ and Schema on Write hoạt động bằng cách tạo bảng cho phép người dùng thực hiện nhiều công việc như chèn, cập nhật và chỉnh sửa.
    • Hive là Schema on READ only không hỗ trợ các thao tác như RDB bởi nó là truy vấn chạy trên nhiều Data Node.
    • Hive cũng hỗ trợ mô hình READ Many WRITE Once cho phép người dùng có thể cập nhật các bảng dữ liệu trong phiên bản Hive mới nhất.

    Cấu trúc của Hive

    Cau truc cua Hive

    Cấu trúc của Hive gồm có ba thành phần chính đó là Hive Client, Hive Service và Hive Storage and Computing. Cụ thể như sau:

    Hive Client

    Với mỗi một loại ứng dụng thì Hive sẽ cung cấp một trình điều khiển tương ứng với nó. Chẳng hạn như đối với các ứng dụng dựa trên Thrift thì Hive sẽ cung cấp ứng dụng Thrift Client để tương tác, hoặc với ứng dụng của Java thì Hive cung cấp trình điều khiển JDBC.

    Hive Service

    Hive Service hỗ trợ người dùng dễ dàng tương tác với Hive. Cụ thể, nó cho phép người dùng thực hiện các hành vi liên quan đến truy vấn trong Hive. Tương tự như Hive Service, CLI cũng được sử dụng để hỗ trợ DDL.

    Các trình điều khiển trong Hive Service có thể tương tác với JDBC, ODBC và các ứng dụng Client khác. Nó có nhiệm vụ xử lý các yêu cầu của ứng dụng trên Meta Store và Field System.

    Hive Storage and Computing

    Một số Hive Service như Meta store, File system và Job Client lần lượt giao tiếp với Hive Storage và thực hiện các hành động sau:

    • Thông tin siêu dữ liệu trên các bảng của Hive được lưu trữ trong Metadata Information.
    • Các kết quả truy vấn và dữ liệu trong bảng của Hive được lưu trữ trong Hadoop Cluster trên HDFS.

    Quy trình Job Execution

    Quy trinh Job Execution

    Quá trình thực thi Job Execution trong Hive bao gồm các bước sau:

    • Thực thi truy vấn từ UI.
    • Trình điều khiển tương tác với trình biên dịch để nhận kế hoạch thực thi truy vấn và thu thập thông tin siêu dữ liệu.
    • Trình biên dịch triển khai kế hoạch cho công việc được thực thi và tương tác với Meta Store để nhận yêu cầu siêu dữ liệu.
    • Meta Store gửi thông tin siêu dữ liệu cho trình biên dịch.
    • Trình biên dịch tương tác với trình điều khiển để thực hiện các truy vấn theo kế hoạch được đề xuất.
    • Trình điều khiển gửi kế hoạch thực thi cho công cụ thực thi.
    • Hive và Hadoop thực hiện xử lý truy vấn dựa trên EE. Còn đối với DFS thì EE có nhiệm vụ như sau:
      • EE đi tới Name Node sau đó là Data Node để nhận các giá trị được lưu trữ trong bảng.
      • EE thu thập các bản ghi dữ liệu thực tế từ Data Node và lấy thông tin siêu dữ liệu cho truy vấn từ Name Node.
      • EE có khả năng giao tiếp hai chiều với Meta Store trong Hive hỗ trợ các hoạt động DDL như CREATE, DROP, ALTERING Table và cơ sở dữ liệu được thực hiện.
    • EE tương tác lần lượt với các Daemon Hadoop như Name Node, Data Node và Job Tracker để thực hiện các truy vấn trên Hadoop.
    • Thu thập các kết quả từ trình điều khiển.
    • Gửi kết quả đến công cụ thực thi, sau đó các dữ liệu từ Data Node sẽ được chuyển đến EE. Cuối cùng, EE sẽ trả kết quả cho trình điều khiển và UI.
    • Hive tương tác với hệ thống tệp Hadoop và các Daemon của nó thông qua công cụ thực thi. Trong đó, ký hiệu mũi tên chấm trong quy trình Job Execution thể hiện việc công cụ thực thi giao tiếp với Daemon Hadoop.

    Các chế độ phổ biến của Hive

    Hive hiện có hai chế độ hoạt động phổ biến được sử dụng nhiều nhất hiện nay là Local và Map reduce. Trong đó, hai chế độ này được phân biệt bằng cách dựa vào kích thước của Data Node trong Hadoop. Ngoài ra, tùy vào trường hợp để sử dụng Local và Map reduce. Cụ thể như sau:

    Local mode

    • Local mode hoạt động trong trường hợp Hadoop được cài đặt ở chế độ ảo và có Data Node.
    • Local mode phù hợp với các dữ liệu có kích thước nhỏ hơn so với giới hạn lưu trữ của máy chủ cục bộ.
    • Local mode có thể xử lý các tập dữ liệu một cách nhanh chóng và hiệu quả.

    Map reduce mode

    • Map reduce mode khả thi trong trường hợp Hadoop có nhiều Data Node và các dữ liệu được phân phối trên nhiều Node khác nhau.
    • Map reduce mode có thể xử lý số lượng lớn tập dữ liệu với hiệu suất cao. Ngoài ra, nó còn giúp thực thi song song các truy vấn trên Hadoop một cách dễ dàng.

    Trong Hive, chế độ Map Reduce và chế độ Local được thiết lập bằng cách cài đặt: SET mapred.job.tracker=local;. Trong đó, từ phiên bản Hive 0.7 đã hỗ trợ một trong hai chế độ trên nhằm giảm thiểu công việc của Map Reduce trong chế độ.

    Hive Server2 (HS2) là gì?

    HiveServer2 (HS2) là một loại giao diện máy chủ được sử dụng với các công việc như sau:

    • HiveServer2 cho phép Client từ xa thực hiện các truy vấn đối với Hive trong Hadoop.
    • HiveServer2 có thể thu thập các kết quả của truy vấn đã được thực thi trước đó.
    • Các phiên bản HiveServer2 mới được bổ sung các tính năng nâng cao dựa trên Thrift RPC như Multi-client concurrency và Authentication.

    Tổng kết

    Hive là một trong những công cụ lưu trữ và xử lý các truy vấn dữ liệu trên Hadoop tốt nhất hiện nay. Không chỉ hỗ trợ thực hiện các hoạt động DDL mà nó còn cung cấp ngôn ngữ truy vấn linh hoạt như HQL. Hy vọng thông qua bài chia sẻ này bạn đọc đã nắm được các thông tin liên quan đến cấu trúc và chế độ Hive cũng như có các phương pháp triển khai nó hiệu quả nhất.

    Nếu còn gặp bất cứ vướng mắc gì về Hive, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

    P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

    Mua Cloud VPS Cao Cấp tại BKHOST

    Giảm giá cực sâu, chất lượng hàng đầu. Đăng ký ngay hôm nay:

    mua máy chủ ảo

    Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
    Bình luận
    Trượt lên đầu trang
    Miễn phí cước gọi
    Bạn đã hài lòng với trải nghiệm trên Bkhost.vn?
    Cảm ơn lượt bình chọn của bạn, Chúc bạn 1 ngày tốt lành !