2013-04-27 25 views
6

Tôi đã thiết lập cụm Hadoop (sử dụng bản phân phối Cloudera thông qua Trình quản lý Cloudera) và tôi đang chạy một số truy vấn Hive bằng giao diện Hue, sử dụng Beeswax bên dưới.Làm thế nào để làm mới/xóa DistributedCache khi sử dụng Hue + sáp ong để chạy truy vấn hive xác định UDF tùy chỉnh?

Tất cả truy vấn của tôi chạy tốt và thậm chí tôi đã triển khai thành công UDF tùy chỉnh.

Nhưng, trong khi triển khai UDF, tôi gặp phải vấn đề về phiên bản rất bực bội. Trong phiên bản ban đầu của lớp UDF của tôi, tôi đã sử dụng lớp thứ 3 gây ra một số StackOverflowError.

Tôi đã khắc phục lỗi này và sau đó xác minh rằng UDF có thể được triển khai và sử dụng thành công từ dòng lệnh hive.

Sau đó, khi tôi quay trở lại sử dụng Huế và sáp ong một lần nữa, tôi tiếp tục nhận được lỗi tương tự. Tôi có thể sửa lỗi này chỉ bằng cách thay đổi tên lớp java UDF của tôi. (Từ Lower đến Lower2).

Bây giờ, câu hỏi của tôi là, cách thích hợp để xử lý các loại vấn đề phiên bản này là gì?

Từ những gì tôi hiểu, khi tôi thêm lọ bằng cách sử dụng các trường biểu mẫu tiện dụng ở bên trái, chúng sẽ được thêm vào bộ nhớ cache được phân phối. Vì vậy, làm cách nào để làm mới/xóa bộ nhớ cache được phân phối? (Tôi không thể có được LIST JARS; vv để chạy từ bên trong Hive/Sáp ong. Nó mang lại cho tôi một lỗi cú pháp.)

+0

Bạn đã giải quyết vấn đề này chưa? – yatul

+0

Bạn có thể xem xét việc gửi một lỗi. –

Trả lời

2

Kể từ khi các lớp được nạp vào máy chủ Sáp ong JVM (cùng đi với HiveServer1 và HiveServer2 JVM), triển khai một phiên bản mới của lọ có thể thường yêu cầu khởi động lại các dịch vụ này để tránh các vấn đề tải lớp như vậy.

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