HBase
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> HBase

HBase và Hive - Tốt hơn cùng nhau

Bài đăng trên blog này đã được xuất bản trên Hortonworks.com trước khi hợp nhất với Cloudera. Một số liên kết, tài nguyên hoặc tham chiếu có thể không còn chính xác.

Máy tính ngày càng thông minh hơn còn chúng tôi thì không.

–Tim Berners Lee, Nhà phát triển web

Google, Amazon và Netflix đã điều chỉnh chúng tôi. Với tư cách là người tiêu dùng, chúng tôi mong đợi các ứng dụng thông minh có thể dự đoán, đề xuất và đoán trước mọi động thái của chúng tôi. Chúng tôi muốn họ sàng lọc hàng triệu khả năng và chỉ đề xuất một vài khả năng phù hợp với nhu cầu của chúng tôi. Chúng tôi muốn các ứng dụng đưa chúng tôi vào một cuộc hành trình được cá nhân hóa thông qua một thế giới vô tận.

Những hành trình được cá nhân hóa này yêu cầu hệ thống phải lưu trữ và hiểu được khối lượng dữ liệu khổng lồ trong một khoảng thời gian có thể chấp nhận được. Đây là điểm mạnh của Hadoop kể từ ngày đầu tiên.

Cung cấp hành trình cũng yêu cầu các ứng dụng tích hợp trực tiếp với phân tích sâu. Đây vẫn là một thách thức vì hầu hết các hệ thống hoạt động chạy bên ngoài Hadoop, đặt dữ liệu hoạt động và phân tích trong các silo riêng biệt.

Các công nghệ như Apache Hadoop YARN và Apache Slider đang bắt đầu phá vỡ các silo này. YARN cung cấp các kiểm soát cách ly tài nguyên Hadoop giúp có thể phân tích sâu dữ liệu ứng dụng tại chỗ trong khi cung cấp câu trả lời trong khung thời gian có thể chấp nhận được. Và Apache Slider giúp dễ dàng triển khai các hệ thống hoạt động lâu dài vào Hadoop.

YARN là trung tâm kiến ​​trúc của Hadoop cho phép nhiều công cụ xử lý dữ liệu như SQL tương tác, phát trực tuyến thời gian thực, khoa học dữ liệu và xử lý hàng loạt để xử lý dữ liệu được lưu trữ trong một nền tảng duy nhất, mở ra một phương pháp phân tích hoàn toàn mới. Điều này cung cấp sự tích hợp liền mạch giữa các hệ thống hoạt động và phân tích, đồng thời là nền tảng để doanh nghiệp có thể xây dựng Kiến trúc dữ liệu hiện đại (MDA).

Hiện đại nghệ thuật ở Hadoop

Ngày nay, có thể kết hợp hoạt động và phân tích với nhau trong Hadoop và trên thực tế, chúng tôi thấy nhiều khách hàng của mình đang làm điều đó.

Các phần bạn cần đã có trong Hadoop:

  • Apache HBase là cơ sở dữ liệu NoSQL cho Hadoop và rất hữu ích khi cập nhật nhanh và truy cập dữ liệu có độ trễ thấp.
  • Apache Phoenix (do Salesforce tiên phong) là một giao diện SQL cho dữ liệu trong HBase. Phoenix hiện đang điều tra việc tích hợp với các nhà quản lý giao dịch như Tephra (từ Cask).
  • Apache Hive là công cụ SQL trên thực tế dành cho Hadoop cung cấp phân tích SQL sâu nhất và hỗ trợ cả các mẫu truy vấn hàng loạt và tương tác. Xem bài đăng gần đây của chúng tôi trên Stinger.Next để biết những tiến bộ như Hive LLAP.

Ngày nay, chúng tôi thấy khách hàng của mình sử dụng những phần này để xây dựng các ứng dụng với phân tích sâu, chẳng hạn như một mẫu rất phổ biến mà chúng tôi thấy bao gồm:

  • Sử dụng HBase làm kho lưu trữ dữ liệu hoạt động trực tuyến để cập nhật nhanh chóng dữ liệu nóng như phân vùng hiện tại cho giờ, ngày, v.v.
  • Thực thi các truy vấn hoạt động trực tiếp với HBase bằng Apache Phoenix.
  • Dữ liệu về độ tuổi trong bảng HBase đến Hive sử dụng các mẫu ETL tiêu chuẩn.
  • Thực hiện phân tích SQL sâu bằng Hive

Điều này hoạt động nhưng nó tạo ra một số phức tạp cho các nhà phát triển. Ví dụ:

  • Tôi sử dụng giao diện SQL nào và khi nào? Tôi có sử dụng Hive cung cấp SQL sâu nhưng TPS thấp không? Hay tôi sử dụng Phoenix với TPS cao và SQL cơ bản? Hay tôi sử dụng cả hai?
  • Nếu tôi sử dụng cả hai, làm cách nào để chia sẻ dữ liệu giữa Hive và HBase?
  • Làm cách nào để điều chỉnh cụm của tôi để tôi có thể đồng định vị thành công HBase và Hive trong khi đáp ứng SLA của mình?

Những câu hỏi này cho thấy cần phải tích hợp sâu hơn để đơn giản hóa việc xây dựng ứng dụng với phân tích sâu trên Hadoop.

HBase và Hive:Tốt hơn cùng nhau

Những cơ hội nào tồn tại để hội nhập sâu rộng hơn? Hiện tại, khách hàng đang đưa ra các giải pháp tận dụng HBase, Phoenix, Hive, v.v. để xây dựng một hệ thống vòng kín riêng biệt cho dữ liệu hoạt động và phân tích SQL. Chúng tôi cảm thấy có cơ hội để cung cấp tích hợp ngoài hộp dễ sử dụng và các khả năng bổ sung như giao dịch, chuyển đổi dự phòng trung tâm dữ liệu chéo, v.v.

Hive, HBase và Phoenix đều có cộng đồng các nhà phát triển rất tích cực và được sử dụng trong sản xuất ở vô số tổ chức. Đây là những khả năng hoạt động vững chắc, đã được chứng minh có thể là nền tảng và tương lai của quá trình xử lý giao dịch trên Hadoop.

Vì vậy, sử dụng cách tiếp cận tương tự như Sáng kiến ​​Stinger thành công, Hortonworks mong muốn đầu tư hơn nữa vào các dự án cốt lõi này và xây dựng động lực thay vì từ bỏ chúng và bắt đầu lại. Chúng tôi có kế hoạch đầu tư vào các cải tiến nhằm nâng cao trải nghiệm hoạt động và phân tích tích hợp thông qua Hive và HBase được tích hợp chặt chẽ. Điều này giải quyết các trường hợp sử dụng thực tế và thú vị theo cách duy trì các khoản đầu tư và mang lại giá trị thực cho khách hàng.

Chúng tôi nhận thấy bốn lĩnh vực phát triển chính để giúp hiện thực hóa tầm nhìn của các ứng dụng thông minh:

1. Lớp SQL hợp nhất với Hive

Các nhà phát triển xây dựng các ứng dụng SQL không nên phải lựa chọn giữa các giải pháp SQL khác nhau, mỗi giải pháp có điểm mạnh và điểm yếu riêng. Chúng tôi hình dung một lớp SQL thống nhất, được kích hoạt bởi bộ phận hỗ trợ của Hive cho SQL:2011, sử dụng công cụ thích hợp một cách rõ ràng dựa trên mẫu truy cập truy vấn.

Sự kết hợp này cung cấp một phương ngữ SQL duy nhất và một trình kết nối duy nhất. Kiến trúc sư dữ liệu và DBA có thể xác định nơi dữ liệu nên được lưu trữ dựa trên các kiểu sử dụng mà không tạo gánh nặng cho các ứng dụng của người dùng với nhu cầu kết nối với nhiều hệ thống.

2. Cải thiện HBase như một cửa hàng hoạt động

HBase đang nhanh chóng trưởng thành với tư cách là một cửa hàng hoạt động và sẽ có thể đảm nhận khối lượng công việc ngày càng khắt khe hơn. Trong năm qua, HBase đã thêm giao diện SQL, lập chỉ mục thứ cấp và tính khả dụng cao. Các tính năng này sẽ tiếp tục hoàn thiện và ngoài ra, HBase sẽ bổ sung thêm các tính năng cấp doanh nghiệp như đa bảng, giao dịch qua trung tâm dữ liệu và hơn thế nữa.

Các dự án như Omid (Yahoo), Tephra ( Cask), Trafodion (HP), v.v. cung cấp các phương thức khác nhau để đưa các giao dịch lên HBase. Facebook đã phát triển HydraBase, cho phép giao dịch qua các trung tâm dữ liệu. Facebook đã thử nghiệm HydraBase trên quy mô lớn và đang chuyển sang cung cấp nó trong HBase nguồn mở (Xem HBASE-12259). Khi các hệ thống này trưởng thành, HBase sẽ có khả năng đáp ứng các khối lượng công việc đòi hỏi nhiều nhất.

3. Danh mục siêu dữ liệu được chia sẻ và Trình quản lý giao dịch

Dữ liệu được tạo trong HBase sẽ tự động hiển thị trong Hive và ngược lại. Khả năng này làm cho việc chia sẻ dữ liệu giữa trực tuyến và phân tích trở nên hoàn toàn bình thường. Trình quản lý giao dịch được chia sẻ cho phép tính năng ACID mới của Hive và các giao dịch HBase nhiều bảng hoạt động liền mạch với nhau.

4. Hỗ trợ khối lượng công việc hỗn hợp được hỗ trợ YARN

Ngày nay, khách hàng thường triển khai HBase và Hive trong các cụm riêng biệt. Việc phát triển một hệ thống phân tích vòng kín đòi hỏi sự kết hợp hiệu quả giữa khối lượng công việc hoạt động và phân tích theo cách thức có nhiều người thuê. Với YARN, chúng ta có thể tạo một hệ thống đơn lẻ một cách hiệu quả bằng cách tận dụng tính năng cô lập tài nguyên và quản lý khối lượng công việc nguyên thủy trong YARN để hỗ trợ các hình thức truy cập dữ liệu khác nhau. Slider tận dụng những điều này khi triển khai HBase vào YARN, trong khi Hive LLAP &Tez là các ứng dụng YARN gốc, do đó đơn giản hóa quá trình chạy hệ thống phân tích vòng kín theo SLA có thể dự đoán được.

Kết luận

Các doanh nghiệp đang sử dụng các công nghệ hiện có sẵn trong HDP như Apache HBase, Apache Hive, Apache Phoenix, v.v. để xử lý các cập nhật nhanh chóng cho dữ liệu hiện tại và phân tích trên một loạt các tập dữ liệu, tất cả đều được lưu trữ trong HDFS để tạo ra một hệ thống phân tích vòng kín . Chúng tôi hy vọng sẽ tận dụng các mô hình tích hợp giống nhau để cung cấp trải nghiệm liền mạch cho khách hàng bằng cách làm cho Apache HBase và Apache Hive tốt hơn - tốt hơn cùng nhau, thay vì thuần các công nghệ mới để người dùng hiểu và sử dụng.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách thực hiện:Sử dụng Giao diện Tiết kiệm HBase, Phần 1

  2. Hadoop MapReduce Tutorial dành cho người mới bắt đầu

  3. Kiểm tra hiệu suất HBase bằng YCSB

  4. Giới thiệu về Vị trí dữ liệu trong Hadoop MapReduce

  5. Hadoop Mapper Class trong MapReduce là gì?