Trong một cụm có Hive được cài đặt, các metastore và namenode có những gì? tôi hiểu rằng Metastore có tất cả các lược đồ bảng và các chi tiết phân vùng và siêu dữ liệu. Siêu dữ liệu này là gì? thì nút tên có gì? và đâu là metastore hiện diện trong một cụm?Nút di chuyển và tên nút làm gì trong một cụm?
Trả lời
Dữ liệu Hive (không phải siêu dữ liệu) được trải rộng trên các máy chủ DataDode của Hadoop HDFS. Thông thường, mỗi khối dữ liệu được lưu trữ trên 3 DataNodes khác nhau. NameNode theo dõi các DataNodes nào có khối dữ liệu thực.
Đối với môi trường sản xuất Hive, dịch vụ metastore sẽ chạy trong một JVM bị cô lập. Các quy trình Hive có thể giao tiếp với dịch vụ metastore bằng cách sử dụng Tiết kiệm. Dữ liệu di động Hive được lưu giữ trong cơ sở dữ liệu ACID như Oracle DB hoặc MySQL. Bạn có thể sử dụng SQL để tìm hiểu những gì có trong metastore Hive:
Dưới đây là các bảng trong metastore Hive:
SQL> select table_name from user_tables;
DBS
DATABASE_PARAMS
SEQUENCE_TABLE
SERDES
TBLS
SDS
CDS
BUCKETING_COLS
TABLE_PARAMS
PARTITION_KEYS
SORT_COLS
SD_PARAMS
COLUMNS_V2
SERDE_PARAMS
Bạn có thể mô tả cấu trúc của mỗi bảng:
SQL> describe partition_keys;
TBL_ID NUMBER
PKEY_COMMENT VARCHAR2(4000)
PKEY_NAME VARCHAR2(128)
PKEY_TYPE VARCHAR2(767)
INTEGER_IDX NUMBER(10)
Và tìm nội dung của mỗi bảng:
SQL> select * from partition_keys;
Vì vậy, nếu bạn sống "CREATE TABLE xxx (...) PARTITIO NED BY (...) "dữ liệu phân vùng Hive được lưu trữ vào cơ sở dữ liệu di động (Oracle, MySQL ...).
Ví dụ, trong Hive nếu bạn tạo một bảng như thế này:
hive> create table employee_table (id bigint, name string) partitioned by (region string);
Bạn sẽ tìm thấy điều này trong metastore:
SQL> select tbl_id,pkey_name from partition_keys;
TBL_ID PKEY_NAME
------ ---------
8 region
SQL> select tbl_name from tbls where tbl_id=8;
TBL_NAME
--------
employee_table
Khi bạn chèn dữ liệu vào employee_table, dữ liệu sẽ được được lưu trữ trong HDFS trên Hadoop DataNodes và NameNode sẽ theo dõi các DataNodes nào có dữ liệu.
NameNode giữ cây thư mục của tất cả các tệp trong hệ thống tệp và theo dõi nơi lưu trữ dữ liệu tệp trên toàn cụm. Nó cũng theo dõi tất cả các DataNode (Dead + Live) thông qua cơ chế nhịp tim. Nó cũng giúp khách hàng đọc/ghi bằng cách nhận yêu cầu của họ và chuyển hướng họ đến DataNode thích hợp.
Các siêu dữ liệu mà metastore cửa hàng chứa những thứ như:
ID của Cơ sở dữ liệu
ID của Bàn
ID của Index
Thời điểm tạo ra một Index
Các thời điểm tạo Bảng
ID của vai trò gán cho một người dùng cụ thể
InputFormat sử dụng cho một Bảng
OutputFormat sử dụng cho một bảng vv vv
Đây có phải là điều bạn muốn biết không?
Và không bắt buộc phải có metastore trong chính cụm đó. Bất kỳ máy nào (bên trong hoặc bên ngoài cụm) có một cơ sở dữ liệu tuân thủ JDBC có thể được sử dụng cho metastore.
HTH
Tái bút: Bạn có thể tìm ra E/R diagram của metastore hữu ích.
Metastore - Cơ sở dữ liệu lưu trữ siêu dữ liệu a.k.a tất cả chi tiết về các bảng bạn tạo trong HIVE. Theo mặc định, HIVE đi kèm và sử dụng cơ sở dữ liệu Derby. Nhưng bạn có thể sử dụng bất kỳ cơ sở dữ liệu nào khác như MySQL hoặc Oracle.
Sử dụng Metastore: Bất cứ khi nào bạn kích hoạt truy vấn từ Hive CLI, công cụ Execution tập hợp tất cả các chi tiết liên quan đến bảng và tạo kế hoạch thực hiện (công việc). Những chi tiết này đến từ Metastore. Cuối cùng, công cụ Execution gửi Job đến Hadoop. Từ đây, công cụ Hadoop Map Reduce Job phổ biến được thực hiện và kết quả sẽ được gửi trở lại Hive. Nút Name giao tiếp với Execution engine để thực thi thành công MR Job.
Sơ đồ trên là cách tuyệt vời để hiểu thông tin liên lạc Hive và hadoop.
Về Hive-Metastore (không hadoop - metastore):
Nó không phải là cần thiết/bắt buộc phải có metastore trong môi trường hadoop của bạn vì nó chỉ là cần thiết nếu bạn đang sử dụng Hive trên HDFS của bạn cụm.
Metastore là kho lưu trữ siêu dữ liệu chỉ HIVE và được sử dụng bởi HIVE để lưu trữ thông tin meta của đối tượng cơ sở dữ liệu đã tạo (không phải dữ liệu thực, đã có trong HDFS vì HIVE không lưu trữ dữ liệu.
Việc triển khai Hive yêu cầu dịch vụ di chuyển bằng bất kỳ RDBMS nào.
Về Namenode (hadoop -namenode):
lõi phần của Hadoop, mà cư xử như metastore cho cluster.
Không phải là RDBMS. Lưu trữ thông tin meta hệ thống tệp chỉ trong Hệ thống tệp.
- 1. XSLT: Di chuyển nút một cấp lên
- 2. Nút di chuyển vào Div
- 3. cụm nút với socket.io và expressjs
- 4. Di chuyển nút XML khi nút con đáp ứng một số yêu cầu
- 5. Trong một cụm Mnesia, nút nào được truy vấn?
- 6. Akka: Cách tìm các nút hiện tại trong một cụm?
- 7. Nút `--harmony` làm gì?
- 8. Di chuyển các nút cố định trong D3
- 9. Chạy nhiều nút cassandra (một cụm) từ cùng một máy?
- 10. TreeView Di CheckBox bởi một số nút
- 11. Di chuyển nút rõ ràng (màu xám x) ở bên phải của UISearchBar khi hủy bỏ nút khai thác
- 12. Di chuyển nút "gốc" hoặc nút cha - tiện ích mở rộng Doctrine NestedSet
- 13. Chỉ chạy tác vụ @Scheduled trên một nút cụm WebLogic?
- 14. Làm thế nào để chạy một phương pháp theo lịch trong một cụm cho một nút và cho tất cả?
- 15. jQuery Sắp xếp di chuyển nút lên/xuống
- 16. Nút khó xử chuyển đi khi di chuột qua Javascript?
- 17. Di chuyển nút TreeView đã chọn sang chế độ xem
- 18. nút di chuyển khi thêm nhiều dòng văn bản
- 19. Nút tùy chỉnh nút chuyển đổi Android
- 20. Chuyển hướng nút Javascript
- 21. framework di cư nút-mongo-native
- 22. Yêu cầu chi tiết về nút cạnh trong cụm
- 23. Làm thế nào để phát hiện chuột di chuyển trong khi nút trái xuống?
- 24. Bao nhiêu dữ liệu cho mỗi nút trong cụm Cassandra?
- 25. Làm cách nào để di chuyển nút rõ ràng trong UITextField?
- 26. Làm thế nào để chèn/di chuyển/xóa các nút trong xml bằng Groovy?
- 27. cách chính xác để di chuyển một nút bằng cách kéo trong javafx 2?
- 28. Tên nút trong Mẫu đầu bếp?
- 29. SimpleXML Reading nút với một tên hyphenated
- 30. Java: Hình ảnh làm nút chuyển đổi
Tôi xin lỗi ... Tôi vẫn chưa rõ .... Vì vậy, mỗi bảng chúng tôi tạo trong Hive, cấu trúc/lược đồ bảng của nó sẽ được lưu trong metastore? Vậy siêu dữ liệu này được lưu trữ trong siêu dữ liệu là gì .. Siêu dữ liệu về những gì có trong Metastore? – DrewRose
@DrewRose, nếu tôi hiểu chính xác, Siêu dữ liệu (DDL = tạo/thả/đổi tên bảng, v.v.)) được lưu trữ trong metastore; dữ liệu được lưu trữ trong HDFS. Có, đó là siêu dữ liệu của dữ liệu. Nhưng siêu dữ liệu loại DDL này khác với siêu dữ liệu mà các cửa hàng tên miền lưu trữ. – RainDoctor
Cảm ơn! Mặc dù tôi hiểu nó, HDFS chỉ là một trong nhiều nơi mà dữ liệu cơ bản có thể cư trú.Hast metastore hỗ trợ ba backend thực thi: Spark, Tez và MapReduce, và Spark chắc chắn có thể sử dụng nhiều hệ thống tập tin và nguồn dữ liệu, hoặc thậm chí làm việc chủ yếu hoặc hoàn toàn từ bộ nhớ thông qua sự trừu tượng mới tuyệt vời của Bộ dữ liệu phân tán (RDD) – nealmcb