Xử lý dữ liệu lớn với HBase Phần 6: Kết thúc


Đỗ Kiên Trung
6 năm trước
Hữu ích 2 Chia sẻ Viết bình luận 0
Đã xem 9371

Đây là blog thứ sáu và cuối cùng trong phần giới thiệu về Apache HBase . Trong phần thứ năm , chúng ta đã học những điều cơ bản về thiết kế lược đồ trong HBase và một số kỹ thuật bạn có thể sử dụng để giúp quét và lọc dữ liệu hiệu quả hơn. Chúng tôi cũng đã thấy hai sơ đồ thiết kế cơ bản khác nhau ("rộng" và "cao") để lưu trữ thông tin về cùng một thực thể và chạm nhẹ vào các chủ đề nâng cao hơn như thêm tìm kiếm toàn văn bản và chỉ mục phụ. Trong phần này, chúng tôi sẽ kết thúc bằng cách tóm tắt những điểm chính và sau đó liệt kê (nhiều) điều chúng tôi không đề cập đến trong phần giới thiệu này về loạt HBase.

HBase là một cơ sở dữ liệu phân tán cung cấp khả năng mở rộng vốn có, hiệu suất và khả năng chịu lỗi trên các cụm máy chủ hàng hóa có khả năng lớn. Nó cung cấp các phương tiện để lưu trữ và quét hiệu quả các luồng dữ liệu lớn. Chúng tôi đã xem xét trình bao HBase để tương tác cơ bản, bao trùm kiến ​​trúc HBase cấp cao và xem xét sử dụng API Java để tạo, nhận, quét và xóa dữ liệu. Chúng tôi cũng đã xem xét cách thiết kế bảng và khóa hàng để truy cập dữ liệu hiệu quả.

Một điều bạn chắc chắn nhận thấy khi làm việc với API Java HBase là nó ở mức thấp hơn nhiều so với các API dữ liệu khác mà bạn có thể được sử dụng để làm việc với, ví dụ như JDBC hoặc JPA. Bạn có được những điều cơ bản về CRUD cộng với việc quét dữ liệu và đó là về nó. Ngoài ra, bạn làm việc trực tiếp với các mảng byte ở mức độ thấp như khi bạn cố lấy thông tin từ kho dữ liệu.

Nếu bạn đang cân nhắc có nên sử dụng HBase hay không, bạn thực sự nên suy nghĩ kỹ về mức độ lớn của dữ liệu, tức là ứng dụng của bạn có cần để chứa được khối lượng dữ liệu ngày càng tăng không? Nếu đúng như vậy, thì bạn cần suy nghĩ kỹ về dữ liệu đó trông như thế nào và các mẫu truy cập dữ liệu có khả năng nhất sẽ như thế nào, vì điều này sẽ thúc đẩy thiết kế lược đồ và các truy cập dữ liệu của bạn. Ví dụ: nếu bạn đang thiết kế lược đồ cho dự án thu thập thời tiết, bạn sẽ muốn xem xét sử dụng thiết kế lược đồ "cao" sao cho số đọc cảm biến cho mỗi cảm biến được chia thành các hàng trái ngược với thiết kế "rộng" trong đó bạn tiếp tục thêm các cột vào một họ cột trong một hàng. Không giống như các mô hình quan hệ mà bạn làm việc chăm chỉ để bình thường hóa dữ liệu và sau đó sử dụng SQL như một cách linh hoạt để tham gia dữ liệu theo nhiều cách khác nhau, với HBase, bạn cần suy nghĩ kỹ hơn về các mẫu truy cập dữ liệu, bởi vì truy xuất bằng khóa hàng và quét bảng là hai cách duy nhất để truy cập dữ liệu. Nói cách khác, không có sự tham gia nào trên nhiều bảng HBase và chiếu ra các cột bạn cần. Khi bạn truy xuất dữ liệu, bạn chỉ muốn hỏi HBase về dữ liệu chính xác mà bạn cần.

Những điều chúng tôi không bao gồm

Bây giờ hãy thảo luận về một số điều chúng tôi đã không bao gồm. Đầu tiên, bộ đồng xử lý là một bổ sung chính cho HBase trong phiên bản 0.92 và được lấy cảm hứng từ việc Google thêm bộ đồng xử lý vào kho dữ liệu Bigtable của mình. Ở mức độ cao, bạn có thể nghĩ về các bộ đồng xử lý như trình kích hoạt hoặc các thủ tục được lưu trữ trong cơ sở dữ liệu quan hệ. Về cơ bản, bạn có thể có chức năng giống như kích hoạt thông qua người quan sát hoặc chức năng thủ tục được lưu trữ thông qua các điểm cuối RPC. Điều này cho phép nhiều thứ mới được hoàn thành theo kiểu thanh lịch, ví dụ như duy trì các chỉ số phụ thông qua quan sát các thay đổi đối với dữ liệu.

Chúng tôi đã cho thấy việc sử dụng API cơ bản, nhưng có thể sử dụng API nâng cao hơn. Ví dụ: bạn có thể bó dữ liệu và cung cấp hành vi lọc nâng cao hơn nhiều so với bộ lọc phân trang đơn giản như chúng tôi đã trình bày. Ngoài ra còn có khái niệm về bộ đếm , cho phép bạn thực hiện các số nguyên tử mà không yêu cầu khách hàng thực hiện khóa hàng rõ ràng. Và nếu bạn không thực sự thích Java, có các API bên ngoài có sẵn thông qua các cổng Thrift và REST. Thậm chí còn có một ứng dụng khách C / C ++ có sẵn và có DSL cho Groovy, Jython và Scala. Tất cả đều được thảo luận trên wiki HBase.

Thiết lập và cấu hình cụm hoàn toàn không được đề cập, cũng không phải điều chỉnh hiệu suất. Rõ ràng đây là những chủ đề cực kỳ quan trọng và các tài liệu tham khảo dưới đây là nơi khởi đầu tốt. Với HBase, bạn không chỉ cần lo lắng về việc điều chỉnh cấu hình HBase mà còn điều chỉnh Hadoop (hay cụ thể hơn là hệ thống tệp HDFS). Đối với các chủ đề này, chắc chắn bắt đầu với Hướng dẫn tham khảo HBase và cũng xem HBase: The Definitive Guide của Lars George.

Chúng tôi cũng không đề cập đến cách Lập bản đồ / Thu nhỏ bằng HBase. Về cơ bản, bạn có thể sử dụng khung Map / Giảm của Hadoop để truy cập các bảng HBase và thực hiện các tác vụ như tổng hợp theo kiểu Bản đồ / Thu nhỏ.

Cuối cùng là bảo mật (mà tôi cho là sẽ được dự kiến ​​sẽ đến cuối cùng cho một nhà phát triển, phải không?) Trong HBase. Có hai loại bảo mật mà tôi đề cập ở đây: đầu tiên là truy cập vào chính HBase để tạo, đọc, cập nhật và xóa dữ liệu, ví dụ như thông qua yêu cầu xác thực Kerberos để kết nối với HBase. Loại bảo mật thứ hai là các hạn chế truy cập dựa trên ACL. HBase khi viết bài này, bạn có thể hạn chế quyền truy cập thông qua ACL ở cấp độ bảng và cột. Tuy nhiên, HBase Cell Security mô tả cách các tính năng bảo mật cấp độ tế bào tương tự như Apache Accumulo được thêm vào HBase và dự kiến ​​sẽ được phát hành trong phiên bản 0.98 trong vấn đề này (phiên bản hiện tại của văn bản này là 0.96).

Tạm biệt!

Với nền tảng này, bây giờ bạn có thể xem xét liệu HBase có ý nghĩa đối với các dự án trong tương lai với Dữ liệu lớn và yêu cầu khả năng mở rộng cao hay không. Tôi hy vọng bạn thấy loạt bài viết này hữu ích khi giới thiệu về HBase.

Tài liệu tham khảo

Hữu ích 2 Chia sẻ Viết bình luận 0
Đã xem 9371