2013-09-26 38 views
10

Tôi có một số truy vấn hive mà hệ thống của tôi thực hiện thường xuyên. Khi bạn nhìn vào công việc theo dõi, họ hiển thị như là "lĩnh vực SELECT, other_field ..... (Stage-1)" và tương tự. Điều đó không đặc biệt hữu ích với tôi, vì vậy tôi đã thêm:

set mapred.job.name = more helpful name;
vào truy vấn. Bây giờ tôi có thể nói với họ tốt hơn. Tuy nhiên, bây giờ các truy vấn của tôi được chia thành nhiều giai đoạn, tất cả đều hiển thị dưới dạng tên giống nhau. Điều tôi lý tưởng thích nhất là thứ gì đó dọc theo các dòng

set mapred.job.name = more helpful name (Stage-%d);
trong đó% d sẽ được thay thế bằng số giai đoạn hiện tại.
Điều này có thể thực hiện được và không ai biết làm thế nào?Làm cách nào để kiểm soát tên công việc của tổ chức nhưng giữ thông tin về giai đoạn?

Trả lời

13

Tôi không chắc chắn có một cách để thực hiện chính xác những gì bạn muốn nhưng tôi có thể cung cấp cái gì khác.
Thay vì sử dụng set mapred.job.name bạn có thể thêm bình luận vào đầu truy vấn với một more helpful name như thế này:
-- this is a more helpful name
SELECT field, other_field ....

Sau đó, trong jobtracker bạn sẽ thấy -- this is a more helpful name ..... (Stage-%d) "

+0

Tôi đã cho bạn một upvote bởi vì, tốt, đó là thông minh, nhưng sẽ cố gắng giữ ra lâu hơn một chút về điều này. Cảm ơn ý tưởng. –

0

Tôi biết đây là câu trả lời rất muộn nhưng dù sao thì điều này cũng giúp tôi biết.

Điều này xảy ra vì HIVE không cho phép đặt các thông số nhất định trong thời gian chạy. Vẫn nếu bạn muốn đặt nó theo các bước sau:

  1. Đăng nhập vào giao diện người dùng Ambari làm quản trị viên.
  2. Đến hive Configs
  3. mở tùy chỉnh HiveSite.xml
  4. Add giá trị quan trọng sau cặp
    KEY: hive.security.authorization.sqlstd.confwhitelist.append
    GIÁ TRỊ: mapred.job.name
  5. dịch vụ
  6. Restart hive

bạn có thể bất kỳ cặp khóa-giá trị trong cấu hình này mà bạn nhận được lỗi runtime này

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