Primeiro, alguns detalhes sobre métricas:
As métricas "memória usada" e "memória disponível" da UI do YARN que você mencionou indicam o uso de memória nos processos YARN, não os hosts usados pelos ResourceManagers do YARN.
você tem 3 nós no cluster, com mais de 64 GB cada (bc 64 * 3 < 214) digamos 128 GB, no entanto, o YARN é configurado para usar ~ 71 GB (214/3). (Sugiro que os números estão incorretos, mas é apenas um exemplo). Para cada nó, todos os processos nele usam cerca de 50% da RAM, no entanto, seu aplicativo usa quase toda a RAM disponível para o YARN no cluster.
Segundo:
É totalmente aceitável usar o máximo possível de memória do cluster, a menos que seu cluster atenda às suas necessidades e você não planeje fazer mais carga sem a reconfiguração do cluster. É necessário apenas monitorar as métricas reais dos hosts abaixo, porque a execução de JVMs também precisa de RAM de host livre para sobrecarga, armazenamento fora do ar e assim por diante.
Em terceiro lugar, sugestões sobre o seu caso:
parece que seus nós não são muito usados (carregados). Em comum, 80% de uso é o que você deseja obter para sua infraestrutura (RAM, CPU, etc). Então, você poderia considerar mover para nós menores, mas com um pouco mais deles. Nós menores terminariam com menos quantidade de dados, maior paralelismo e provavelmente acelerando o processamento por menos dinheiro.