У вас очень большое количество маленьких файлов, и это главная проблема. Когда вы выполняете запрос, преобразователь 1 выполняется для каждого файла, таким образом, существует много сопоставителей, которые запускают каждый преобразователь для небольшого фрагмента данных (по 1 файлу каждый), что означает, что они потребляют ненужные ресурсы из кластера и ждут завершения других.
Обратите внимание, что hadoop идеально подходит для больших файлов с большими данными.
Если бы вы выполняли тот же запрос для больших файлов, это дало бы гораздо лучшую производительность.
Попробуйте установитьнижеприведенные свойства
set mapred.min.split.size=100000000; // u can set max.split.size for optimal performance.
set hive.input.format=org.apache.hadoop.hive.ql.io.CombineHiveInputFormat;
set mapred.min.split.size=100000000;
Попробуйте настроить значения в свойствах, чтобы достичь оптимального числа картографов