One possibility is that your hadoop is not running. I ran into this same problem when doing a simple one node hadoop cluster on my local. Each time you start up your computer you have to manually start your hadoop nodes before hive can connect to them.
Try running $HADOOP_HOME/bin/stop-all.sh
If the output says there were no nodes to stop, that means your hadoop wasn't up, in this case, run
$HADOOP_HOME/bin/start-all.sh
and then hive and you should be good to go.
(this was using the default derby database. Apparently if you are using mysql then you can also get this error from some connector configuration (see other answer)).
EDIT:
Actually another thing I discovered is that Hive needs to create a metastore_db directory whenever you start hive, but it creates it in the path that hive was run from. You can encounter the above error if you don't have write permission in the directory that you run hive from. To fix this, there's a config you can set in hive-site.xml to make this directory absolute rather than relative.
See here:
metastore_db created wherever I run Hive