I had what I thought was the same issue, but it wasn't resolved by
invalidate metadata;
It turned out that my hive was accessing a local derby database, which impala could not see.
The smoking gun:
On the system where I had imported the table through hive, I had
cat /etc/hive/conf/hive-site.xml
[...]
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/var/lib/hive/metastore/metastore_db;create=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
[...]
The solution:
I re-deployed the hive client configuration from Cloudera Manager.
Afterwards:
cat /etc/hive/conf/hive-site.xml
[...]
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://[snipped-host-name]:[snipped-port]</value>
</property>
Apparently Cloudera Manager is supposed to deploy the client configuration but in some versions it sometimes fails to do so.