Hive là gì
Thuật ngữ Big Data được sử dụng cho các bộ tập dữ liệu khổng lồ bao gồm khối lượng lớn, tốc độ cao và nhiều loại dữ liệu đang tăng lên từng ngày. Sử dụng các hệ thống quản lý dữ liệu truyền thống, rất khó để xử lý Big data. Do đó, Quỹ phần mềm Apache (Apache Software Foundation) đã giới thiệu một framework tên là Hadoop để giải quyết các thách thức quản lý và xử lý Big data.
Bạn đang xem: Hive là gì
Hadoop là một framework open-source để lưu trữ và xử lý Big data trong môi trường phân tán. Nó chứa hai mô-đun, một là MapReduce và một mô-đun khác là Hệ thống tệp phân tán Hadoop (Hadoop Distributed File System - HDFS).
MapReduce: Đây là mô hình lập trình song song để xử lý một lượng lớn dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc trên các cụm lớn của phần cứng thương mại (commodity hardware).HDFS: Hệ thống tệp phân tán Hadoop là một phần của framework Hadoop, được sử dụng để lưu trữ và xử lý các bộ dữ liệu. Nó cung cấp một hệ thống tập tin chịu lỗi để chạy trên phần cứng thương mại.Hệ sinh thái Hadoop chứa các sub-project (tool) khác nhau như Sqoop, Pig và Hive được sử dụng để trợ giúp các mô-đun Hadoop.
Sqoop: Nó được sử dụng để nhập và xuất dữ liệu đến và đi giữa HDFS và RDBMS.Pig: Đây là một nền tảng ngôn ngữ thủ tục được sử dụng để phát triển tập lệnh cho các hoạt động của MapReduce.Xem thêm: Chỉ Báo Alligator - Của Bill Williams
Hive: Đây là một nền tảng được sử dụng để phát triển các tập lệnh loại SQL để thực hiện các hoạt động MapReduce.
Chú ý: Có nhiều cách khác nhau để thực hiện các hoạt động MapReduce:
Cách tiếp cận truyền thống sử dụng chương trình Java MapReduce cho dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc.Cách tiếp cận dùng câu lệnh cho MapReduce để xử lý dữ liệu có cấu trúc và bán cấu trúc bằng Pig.Ngôn ngữ truy vấn Hive (HiveQL hoặc HQL) cho MapReduce để xử lý dữ liệu có cấu trúc bằng Hive.Hive là gì?Hive là một công cụ cơ sở hạ tầng kho dữ liệu để xử lý dữ liệu có cấu trúc trong Hadoop. Nó nằm trên đỉnh Hadoop để tóm tắt Dữ liệu lớn và giúp truy vấn và phân tích dễ dàng.
Ban đầu Hive được phát triển bởi Facebook, sau đó Quỹ Phần mềm Apache đã lấy và phát triển nó thành một nguồn mở dưới tên Apache Hive. Nó được sử dụng bởi các công ty khác nhau. Ví dụ: Amazon sử dụng nó trong Amazon Elastic MapReduce.
Hive không phải là:Một CSDL quan hệMột thiết kế để xử lý giao dịch Online (OnLine Transaction Processing - OLTP)Một ngôn ngữ cho các truy vấn thời gian thực và cập nhật cấp hàngĐặc trưng của HiveNó lưu trữ lược đồ trong cơ sở dữ liệu và xử lý dữ liệu vào HDFS.Nó được thiết kế cho OLAP.Nó cung cấp ngôn ngữ kiểu SQL để truy vấn được gọi là HiveQL hoặc HQL.Nó là quen thuộc, nhanh chóng, có khả năng mở rộng.Kiến trúc của HiveSơ đồ sau đây mô tả kiến trúc của Hive:

Sơ đồ sau mô tả quy trình làm việc giữa Hive và Hadoop.

Cách Hive tương tác với framework Hadoop:
Thực thi query: Giao diện Hive như Command line hoặc Giao diện người dùng web gửi truy vấn đến Trình điều khiển (bất kỳ trình điều khiển cơ sở dữ liệu nào như JDBC, ODBC, v.v.) để thực thi.Nhận kế hoạch: Trình điều khiển có sự trợ giúp của trình biên dịch truy vấn để phân tích cú pháp truy vấn để kiểm tra cú pháp và kế hoạch truy vấn hoặc yêu cầu của truy vấn.Nhận metadata: Trình biên dịch gửi yêu cầu metadata đến Metastore (bất kỳ cơ sở dữ liệu nào).Gửi metadata: Metastore gửi metadata như một phản hồi cho trình biên dịch.Gửi kế hoạch: Trình biên dịch kiểm tra yêu cầu và gửi lại kế hoạch cho trình điều khiển. Đến đây, việc phân tích cú pháp và biên dịch một truy vấn đã hoàn tất.Kế hoạch thực hiện: Trình điều khiển gửi kế hoạch thực hiện đến công cụ thực thi.Thực thi công việc: Trong nội bộ, quá trình thực thi công việc là một công việc MapReduce. Công cụ thực thi gửi công việc đến JobTracker, trong node Name và nó gán công việc này cho TaskTracker, trong node Data. Ở đây, truy vấn thực thi công việc MapReduce.Xem thêm: C# Wpf Là Gì - C (Programming Language)
Hoạt động metadata: Trong khi thực hiện, công cụ thực thi có thể thực thi các hoạt động metadata với Metastore.Lấy kết quả: Công cụ thực thi nhận kết quả từ các node Data.Gửi kết quả: Công cụ thực thi gửi các giá trị kết quả đó đến trình điều khiển.Gửi kết quả: Trình điều khiển gửi kết quả đến Giao diện Hive.