Assuming that you have a fast and reliable network, lots of smaller hosts is recommended over fewer beefier hosts. One might argument that the latter would provide a better performance since elasticsearch nodes (you'll need more then one per host with a 384gb, it would ~6 nodes per host) will be communicating locally, but if you have a fast and reliable network, then it won't compensate the following disadvantages:
- Availability is worse. It's 2 nodes, so if you loose one, half of your cluster is down.
- Management problems. It's harder to manage many processes in a single host, specially elasticsearch nodes. You'll would need to use things like cgroups and other special configurations because without it troubleshooting problems will become a nightmare.
- Bottlenecks. With a single host, hardware resources will be shared. Even though 384gb is lots of ram, what about CPU cores and I/O bus for example? You'll need lot's of elasticsearch nodes and elasticsearch is very resource hungry, so they will be fighting those shared resources and if you don't configure properly you will hit bottlenecks (also related to item 2).