Hive 查找属性

博客介绍了查找Hive特定属性配置的命令,如使用“hive -S -e \set\ | grep warehouse”可查找相关配置,还指出Hive创建的表元数据默认存储目录。同时说明用户创建Hive数据库时,可通过“create database ts location '/user/my'”修改默认配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以使用如下命令查找特定的属性配置

hive -S -e "set" | grep warehouse

[hadoop@s201 ~]$hive -S -e "set" | grep warehouse
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/soft/apache-hive-2.1.0-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/soft/hbase-1.2.6/lib/phoenix-4.10.0-HBase-1.2-client.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/soft/hadoop-2.7.3/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
hive.metastore.warehouse.dir=/user/hive/warehouse
hive.warehouse.subdir.inherit.perms=true

说明hive创建的表元数据,默认的存储目录是/user/hive/warsehouse 目录下.

当然,用户创建hive数据库时,可以通过如下命令修改这个默认的配置

create  database ts  location  '/user/my'  

hive> create database ts
    > location '/user/my';
OK

此时,hdfs 目录会出现 my 这个目录.

 

 

### 如何在 Hive 数据库中询表的创建时间 在 Hive 中,虽然没有直接提供获取表创建时间的功能,但可以通过以下几种方式间接实现: #### 方法一:通过 `DESCRIBE FORMATTED` 看表元数据 Hive 提供了一个命令 `DESCRIBE FORMATTED`,用于显示表的详细信息,其中包括表的创建时间其他元数据。执行此命令后,可以在输出的结果中找到 **CreateTime** 字段。 ```sql DESCRIBE FORMATTED your_table_name; ``` 在此命令的输出中,会有一行类似于以下的内容展示表的创建时间: ``` CreateTime: Thu Jan 01 00:00:00 UTC 1970 ``` 这是表被创建的时间戳[^1]。 #### 方法二:访问 Hive 的元数据库(Metastore) Hive 使用一个关系型数据库作为其元数据库,默认情况下可能是 Derby、MySQL 或 PostgreSQL。在这个元数据库中,所有的表分区的信息都被存储在一个名为 `TBLS` 的表中。可以询该表中的字段 `CREATE_TIME` 来获取表的创建时间。 假设元数据库是 MySQL,可以使用如下 SQL 询: ```sql SELECT TBL_NAME, CREATE_TIME FROM TBLS WHERE TBL_NAME='your_table_name'; ``` 这里的 `CREATE_TIME` 是 Unix 时间戳格式,可能需要转换为可读的日期格式[^3]。 #### 方法三:检 HDFS 上的实际文件 由于 Hive 表的数据通常存储在 HDFS 文件系统中,因此可以直接看对应目录下的文件属性来推断表的创建时间。例如,如果知道某张表的数据存储路径 `/user/hive/warehouse/your_database.db/your_table_name`,则可以通过 Hadoop 命令列出这些文件并看它们的最后修改时间。 ```bash hdfs dfs -ls /user/hive/warehouse/your_database.db/your_table_name/ ``` 注意这实际上反映的是最近一次写入操作的时间而非真正的表创建时刻[^4]。 --- ### 注意事项 - 如果目标是一个外部表,则需要注意它的定义只是指向某些已存在的位置上的数据集合,并不存在传统意义上的“创建”动作。 - 不同版本的 Hive 可能会有细微差异,请确认所使用的具体版本支持哪些特性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值