2015-03-26 13 views
6

Tôi mới sử dụng Hadoop và tôi mới bắt đầu làm việc trên Hive, tôi hiểu rằng nó cung cấp một ngôn ngữ truy vấn để xử lý dữ liệu trong HDFS. Với HiveQl chúng ta có thể tạo các bảng và tải dữ liệu vào nó từ HDFS.Hive lưu trữ bảng của nó ở đâu?

Vì vậy, câu hỏi của tôi là: các bảng đó được lưu trữ ở đâu? Cụ thể là nếu chúng ta có 100 GB tệp trong HDFS của chúng tôi và chúng tôi muốn tạo bảng hive ra khỏi dữ liệu đó, kích thước của bảng đó và nó được lưu trữ ở đâu?

Nếu hiểu biết của tôi về khái niệm này là sai hãy sửa lại cho tôi ..

Trả lời

3

Nếu bảng là 100GB bạn nên xem xét một Hive Bảng bên ngoài (như trái ngược với một "bảng quản lý", cho sự khác biệt, xem this) .

Với bảng ngoài, bản thân dữ liệu sẽ vẫn được lưu trên HDFS trong đường dẫn tệp mà bạn chỉ định (lưu ý rằng bạn có thể chỉ định thư mục tệp miễn là chúng đều có cùng cấu trúc), nhưng Hive sẽ tạo một bản đồ của nó trong siêu lưu trữ trong khi bảng được quản lý sẽ lưu trữ dữ liệu "trong Hive".

Khi bạn thả bảng được quản lý, nó sẽ giảm dữ liệu cơ bản trái ngược với việc giảm bảng bên ngoài mà chỉ giảm siêu dữ liệu từ siêu lưu trữ tham chiếu đến dữ liệu đó.

Dù bằng cách nào bạn chỉ đang sử dụng 100 GB khi người dùng xem và đang tận dụng ưu thế của HDFS mặc dù trùng lặp dữ liệu.

+1

Ý bạn là "tải toàn bộ bảng vào bộ nhớ và ánh xạ nó trong siêu lưu trữ"? Hive không làm bất cứ điều gì như thế khi bạn tạo một bảng được quản lý. –

+0

Sau đó, những gì đang thực sự happing có trong khi chúng tôi tải dữ liệu vào một bảng hive? – talin

+0

@JeremyBeard Nếu ngữ nghĩa của tôi sai, vui lòng chỉnh sửa bài đăng. Nếu toàn bộ khái niệm là sai, tôi rất muốn biết đâu là sự hiểu biết của tôi không chính xác, vì vậy tôi khuyến khích bạn gửi câu trả lời – mlegge

1

hive sẽ tạo thư mục trên hdfs.if bạn không chỉ định bất kỳ vị trí nào, nó sẽ tạo một thư mục trên/user/hive/warehouse folder trên hdfs.after load lệnh các tệp được chuyển đến thư mục/warehouse/tablename.you cũng có thể trỏ đến thư mục hdfs nếu nó chứa phân vùng (nếu các tệp được phân đoạn) .hoặc sử dụng khái niệm bảng bên ngoài.

Các vấn đề liên quan