Two-phased commits are when you write a partial record to the DB and then cleanup the transaction. When they complete succesfully, they are a complete transaction, but during a failure they are not atomic through the database because it takes extra application logic to cleanup.
Partition tolerance is not when one node goes offline, it is when critical nodes (master) or up to n/2 fail.
For CAP, you can optimize for just Consistancy, Availabilty, or Partition tolerance. But you can also pick two - you just can not do all three.
I did not know Facebook went to Hbase and why it do so - can you provide a link?