Start with a small prototype that is hosted on a cloud provider (IAAS if you're confident with your system administrator skills, else a PAAS provider). Having lots of users 'Is a nice problem to have', but don't optimize for it too early, you might be surprised where your scale pain points are and where they aren't.
If you're using the Java stack I recommend using JMeter and some BDD/ATDD style tests to hammer your proof of concept to see where the scale pain points might be.
I'd be a little more flexible in your technology choices, you're restricting yourself to what you currently know (and trust me, Hibernate or any other ORM is going to slow you down at a large scale). It's Horses for courses and some of what you list above may not be appropriate further down the road.
You need an engineer that is familiar with distributed and messaging architectures who also knows about multi-threaded/concurrent development programming paradigms. It also sounds like you'll need an engineer who rally understands web protocols and how to design a web based solution that is efficient and well balanced between client and server.
These types of engineers are very hard to find (you only have to look at Google et al battling over hiring them). So you might find that you're going to have to learn about a lot of this yourself, but that's all part of the fun right! :D