2011-08-04 16 views
5

2 câu hỏi cơ bản mà rắc rối cho tôi:Làm thế nào để hive/hadoop đảm bảo rằng mỗi trình ánh xạ hoạt động trên dữ liệu cục bộ cho nó?

  • Làm thế nào tôi có thể chắc chắn rằng mỗi người trong 32 file hive sử dụng để lưu trữ bảng của tôi ngồi trên máy tính độc đáo của nó?
  • Nếu điều đó xảy ra, làm thế nào tôi có thể chắc chắn rằng nếu tổ ong tạo ra 32 người lập bản đồ, mỗi người trong số họ sẽ làm việc trên dữ liệu cục bộ của nó? Hadoop/hdfs có đảm bảo phép thuật này hay tổ chức làm ứng dụng thông minh đảm bảo rằng nó sẽ xảy ra?

Bối cảnh: Tôi có một cụm hive của 32 máy, và:

  • Tất cả các bảng của tôi được tạo ra với "CLUSTERED BY(MY_KEY) INTO 32 BUCKETS"
  • tôi sử dụng hive.enforce.bucketing = true;
  • tôi xác minh và thực sự mỗi bảng được lưu trữ dưới dạng 32 tệp trong người dùng/hive/warehouse
  • Tôi đang sử dụng hệ số nhân rộng HDFS của 2

Cảm ơn!

Trả lời

5
  1. Vị trí dữ liệu được xác định bởi HDFS. Nó sẽ cố gắng cân bằng byte trên máy. Do sao chép mỗi tệp sẽ có trên hai máy, có nghĩa là bạn có hai máy ứng cử viên để đọc dữ liệu cục bộ.
  2. HDFS biết nơi lưu trữ từng tệp và Hadoop sử dụng thông tin này để đặt những người lập bản đồ trên cùng một máy chủ khi dữ liệu được lưu trữ. Bạn có thể xem các quầy cho công việc của bạn để xem số lượng bản đồ "dữ liệu cục bộ" và "giá địa phương". Đây là một tính năng của Hadoop mà bạn không cần phải lo lắng.
+0

Theo mặc định HDFS sao chép chặn ba lần (cùng một nút và hai nút khác, tốt nhất là ở giá khác). – cftarnas

+1

ok, cảm ơn, trong ánh sáng của câu trả lời của bạn Tôi rephrased và hỏi một câu hỏi mới mô tả tốt hơn vấn đề của tôi: http://stackoverflow.com/questions/6953383/is-a-collocated-join-a-la-netezza-theoretically -possible-in-hive – ihadanny

+0

@SpikeGronim bạn có thể cung cấp thông tin chi tiết về câu hỏi Hadoop này không? [Có thể hạn chế công việc MapReduce truy cập dữ liệu từ xa không?] (Http://stackoverflow.com/q/31789176/320399) – blong

1

Không có tham gia, thông thường Bản đồ Hadoop Giảm cơ chế cho địa phương dữ liệu được sử dụng (được mô tả trong câu trả lời của Spike).
Cụ thể cho tổ ong tôi sẽ đề cập đến Bản đồ tham gia. Có thể nói cho tổ ong biết kích thước tối đa của bảng cho Bản đồ chỉ tham gia là gì. Khi một trong các bảng đủ nhỏ thì Hive sẽ nhân bản bảng này cho tất cả các nút bằng cách sử dụng cơ chế bộ nhớ cache phân tán và đảm bảo rằng tất cả quá trình nối diễn ra cục bộ với dữ liệu. Có giải thích tốt về quy trình: http://www.facebook.com/note.php?note_id=470667928919

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