If the first thing you did after installing hive was run it, hive attempted to create/initialize the metastore_db, but apparently might not get it right. On that initial run, maybe that is why you saw the error:
Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)
Running hive, even though it fails, creates a metastore_db directory in the directory from which you execute hive:
ubuntu15-laptop: ~ $>ls -l |grep meta
drwxrwxr-x 5 testuser testuser 4096 Apr 14 12:44 metastore_db
So after that when you tried running:
ubuntu15-laptop: ~ $>schematool -initSchema -dbType derby
The metastore already existed, but not in complete form.
So, before you run hive for the first time, run
schematool -initSchema -dbType derby
If you have already executed hive and then you try running init Schema and it's failing,
I would suggest you to try this approach:
mv metastore_db metastore_db.tmp
Then, re-run:
schematool -initSchema -dbType derby
Finally, execute the hive again and it will work.
If you want more knowledge regarding Hive, then refer the following video tutorial: