Both Pig and Hive are higher level languages and provide abstraction over MapReduce. They have many features in common (such as joins, sorting, ordering, UDFs, various data structures etc)
Pig is more of a procedural language and comes very handy and is powerful when you are doing data pipeline/data flow kind of processing. It is very easy to learn as well (The book "Programming Pig" by Alan Gates is great resource to learn it) In Pig the data structure us defined during execution time.
Hive on other part is SQL interface to Hadoop if your data is more around relational structure and most of your data processing can be done with few SQLs (using joins etc) then Hive is great option too. In Hive the data structure is predefined (in Table formats)