Добавление распределения по ключу раздела должно решить проблему:
insert into database1.table1 PARTITION(trans_date) select * from database1.table2
distribute by trans_date;
distribute by trans_date
запустит шаг редуктора, и каждый редуктор обработает один раздел, что уменьшит нагрузку на память. Когда каждый процесс записывает много разделов, он сохраняет слишком много буферов для ИЛИ C в памяти.
Также рассмотрите возможность добавления этого параметра, чтобы контролировать, сколько данных будет обрабатывать каждый редуктор:
set hive.exec.reducers.bytes.per.reducer=67108864; --this is example only, reduce the figure to increase parallelism