Tôi đang chạy một công việc Hadoop trên 1,5 TB dữ liệu với nhiều mẫu phù hợp. Tôi có một số máy với RAM 16GB mỗi, và tôi luôn luôn nhận được OutOfMemoryException
về công việc này với dữ liệu này (tôi đang sử dụng Hive).Làm thế nào để tránh OutOfMemoryException khi chạy Hadoop?
Tôi muốn biết cách tối ưu đặt tùy chọn HADOOP_HEAPSIZE
trong tệp hadoop-env.sh
vì vậy, công việc của tôi sẽ không thành công. Thậm chí có thể, để đặt tùy chọn này để công việc của tôi sẽ không thành công?
Khi tôi đặt HADOOP_HEAPSIZE
thành 1,5 GB và loại bỏ một nửa mẫu phù hợp khỏi truy vấn, công việc chạy thành công. Vì vậy, tùy chọn này là gì, nếu nó không giúp tránh thất bại công việc?
Tôi muốn làm thử nghiệm nhiều hơn với thiết lập tối ưu, nhưng vì những công việc đó mất> 10 giờ để chạy, tôi xin lời khuyên của bạn.
Điều gì khiến bạn nghĩ rằng 'HADOOP_HEAPSIZE' không * không * giúp tránh thất bại? Âm thanh như từ kinh nghiệm của bạn mà nó. Vì những lý do có thể được biết chỉ từ kiểm tra dữ liệu/công việc của bạn, tình huống của bạn yêu cầu kích thước heap ít nhất là lớn này. Bạn có thể tái cấu trúc công việc của bạn để nó không cần một đống lớn như vậy? –
Tôi đã sửa đổi công việc của mình, vì vậy nó không sử dụng một đống lớn như vậy, nhưng cũng tại thời điểm này tôi đã thay đổi 'HADOOP_HEAPSIZE'. Và tôi không thấy kết quả thực sự của chagne này, tôi có nghĩa là: Tại sao thiết lập heap nhỏ hơn: amount_of_my_RAM/number_of_mappers_or_reducers? – wlk