It is possible but not advisable.
One of the main reasons to run a cluster is to provide redundancy: in order to enjoy the full benefits of this redundancy, each node should reside on a separate machine. If you place multiple nodes on a single machine and that machine fails, you lose all of those nodes.
Given that MySQL Cluster can be run on commodity hardware loaded with a low-cost (or even no-cost) operating system, it is well worth the expense of an extra machine or two in order to safeguard mission-critical data.
The requirements on data nodes are modest and should be accomplished depending on MySQL Cluster configuration: being it an in-memory architecture, RAM and hard drives should be dimensioned accordingly.
It also worth noting that the requirements for MySQL Cluster host running a management node are minimal: this task can be accomplished with sufficient RAM for the operating system plus a small amount of overhead for the ndb_mgmd and ndb_mgm processes.
Minimum recommended network requirement is 100Mbps and the overall architecture benefits from a dedicated network and high-speed interconnects.