您可以使用SQL来搜索表.示例:我想搜索名称从"Benchmark"开始的表我不知道其余部分.
输入HIVE CLI:
show tables like 'ben*'
Run Code Online (Sandbox Code Playgroud)
输出:
+-----------------------+--+
| tab_name |
+-----------------------+--+
| benchmark_core_month |
| benchmark_core_qtr |
| benchmark_core_year |
+-----------------------+--+
3 rows selected (0.224 seconds)
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用直线,则可以尝试以下命令
!tables
Run Code Online (Sandbox Code Playgroud)
注意:它仅适用于Beeline(基于JDBC客户端)
更多关于直线的信息:http://blog.cloudera.com/blog/2014/02/migrating-from-hive-cli-to-beeline-a-primer/
您还可以使用 hdfs 在所有数据库中查找表:
hive数据库的路径是:
/apps/hive/warehouse/
Run Code Online (Sandbox Code Playgroud)
所以,通过使用 hdfs :
hdfs dfs -find /apps/hive/warehouse/ -name t*
Run Code Online (Sandbox Code Playgroud)
您应该查询元存储。
您可以在其中找到连接属性hive-site.xml
巴什
<$HIVE_HOME/conf/hive-site.xml grep -A1 jdo
Run Code Online (Sandbox Code Playgroud)
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://127.0.0.1/metastore?createDatabaseIfNotExist=true</value>
--
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
--
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
--
<name>javax.jdo.option.ConnectionPassword</name>
<value>cloudera</value>
Run Code Online (Sandbox Code Playgroud)
在元存储中,您可以使用类似于以下内容的查询
mysql
select *
from metastore.DBS as d
join metastore.TBLS as t
on t.DB_ID =
d.DB_ID
where t.TBL_NAME like '% ... put somthing here ... %'
order by d.NAME
,t.TBL_NAME
;
Run Code Online (Sandbox Code Playgroud)