Hive数据库的存储位置 & DDL

1. Hive数据库&表在HDFS中的存储位置

Hive对应的database 和 table都是对应分布式文件系统的一个路径:

  • /user/hive/warehouse【即hive.metastore.warehouse.dir的文件夹路径地址】
  • 在hive中默认有一个数据库:default
  • 库、表、分区表 都是在hive.metastore.warehouse.dir这个目录下
(-) 默认数据库default 非default数据库
数据库位置 (-) /user/hive/warehouse/数据库名字.db
新创建的表位置 /user/hive/warehouse/表名 /user/hive/warehouse/数据库名字.db/表名

在这里插入图片描述

2. Hive元数据metadata在mysql数据库中的存储位置

mysql> use myhive; // 在hive-site.xml配置的mysql数据库库名。
mysql> show tables;
+-------------------------------+
| Tables_in_myhive              |
+-------------------------------+
| aux_table                     |
| bucketing_cols                |
| cds                           |
| columns_v2                    |
| compaction_queue              |
| completed_compactions         |
| completed_txn_components      |
| ctlgs                         |
| database_params【存放元数据参数配置】              |
| db_privs                      |
| dbs     【存放metadata元数据】                  |
| delegation_tokens             |
| func_ru                       |

3.Hive的DDL操作

3.1.CREATE(新增)

语法:
CREATE [REMOTE] (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[MANAGEDLOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, …)];

[] :可有可无
(DATABASE|SCHEMA) N选1操作

  • 普通创建 & 数据库存储路径
[xiaofeng@maggie101 ~]$ beeline.sh
// 切换到hiveserver2下面创建myhive_test1.db数据库
0: jdbc:hive2://localhost:10000/> Create database myhive_test1;

// 查看/user/hive/warehouse/路径下的文件
[xiaofeng@maggie101 ~]$ hadoop fs -ls /user/hive/warehouse/
	Found 3 items
	drwxr-xr-x   - xiaofeng supergroup          0 2022-11-26 00:17 /user/hive/warehouse/myhive_test1.db
	drwxr-xr-x   - xiaofeng supergroup          0 2022-11-25 01:51 /user/hive/warehouse/test.db
	drwxr-xr-x   - xiaofeng supergroup          0 2022-11-25 11:04 /user/hive/warehouse/test_user
  • 普通再次创建 & IF NOT EXISTS
0: jdbc:hive2://localhost:10000/> Create database myhive_test1;
Error: Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Database myhive_test1 already exists (state=42000,code=1)

0: jdbc:hive2://localhost:10000/> Create database IF NOT EXISTS myhive_test1;
	No rows affected (0.03 seconds)
  • 创建库的时候,同时指定LOCATION
0: jdbc:hive2://localhost:10000/>  Create database myhive_test3 LOCATION '/user/hive/myhive_test3';

  • 创建库的时候,添加备注COMMENT
 Create database myhive_test4 COMMENT 'maggie创建的Hive测试数据库';
 
 Create database myhive_test5 COMMENT 'maggie创建的Hive测试数据库5' WITH DBPROPERTIES ('cretor'='maggie', 'date'='2022-11-26');
  • 查看数据库
0: jdbc:hive2://localhost:10000/> show databases;
+----------------+
| database_name  |
+----------------+
| default        |
| myhive_test1   |
| myhive_test2   |
| myhive_test3   |
| myhive_test4   |
| myhive_test5   |
| test           |
+----------------+
7 rows selected (0.088 seconds)

0: jdbc:hive2://localhost:10000/> show databases like 'myhive*';
+----------------+
| database_name  |
+----------------+
| myhive_test1   |
| myhive_test2   |
| myhive_test3   |
| myhive_test4   |
| myhive_test5   |
+----------------+
5 rows selected (0.047 seconds)
  • 查看元数据信息matadata
0: jdbc:hive2://localhost:10000/> desc database myhive_test1;
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值