Hive数据库的存储位置 & DDL

本文介绍了Hive数据库在HDFS的存储位置,包括default数据库及表的路径,并详细阐述了Hive元数据在MySQL中的存储。接着,重点讲解了Hive的DDL操作,包括CREATE、ALTER和DROP,提供了各种操作的语法示例,如创建数据库时指定存储位置、添加评论等。

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

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;

+---------------+----------+----------------------------------------------------+-------------+-------------+-------------+
|    db_name    | comment  |                      location                      | owner_name  | owner_type  | parameters  |
+---------------+----------+----------------------------------------------------+-------------+-------------+-------------+
| myhive_test1  |          | hdfs://maggie101:9000/user/hive/warehouse/myhive_test1.db | xiaofeng    | USER        |             |
+---------------+----------+----------------------------------------------------+-------------+-------------+-------------+
1 row selected (0.052 seconds)

0: jdbc:hive2://localhost:10000/> desc database extended myhive_test5;

+---------------+----------------------+----------------------------------------------------+-------------+-------------+-----------------------------------+
|    db_name    |       comment        |                      location                      | owner_name  | owner_type  |            parameters             |
+---------------+----------------------+----------------------------------------------------+-------------+-------------+-----------------------------------+
| myhive_test5  | maggie???Hive?????5  | hdfs://maggie101:9000/user/hive/warehouse/myhive_test5.db | xiaofeng    | USER        | {date=2022-11-26, cretor=maggie}  |
+---------------+----------------------+----------------------------------------------------+-------------+-------------+-----------------------------------+
1 row selected (0.036 seconds)
0: jdbc:hive2://localhost:10000/>

  • 在mysql中元数据存放位置和具体数值
mysql> desc dbs;
+-----------------+---------------+------+-----+---------+-------+
| Field           | Type          | Null | Key | Default | Extra |
+-----------------+---------------+------+-----+---------+-------+
| DB_ID           | bigint(20)    | NO   | PRI | NULL    |       |
| DESC            | varchar(4000) | YES  |     | NULL    |       |
| DB_LOCATION_URI | varchar(4000) | NO   |     | NULL    |       |
| NAME            | varchar(128)  | YES  | MUL | NULL    |       |
| OWNER_NAME      | varchar(128)  | YES  |     | NULL    |       |
| OWNER_TYPE      | varchar(10)   | YES  |     | NULL    |       |
| CTLG_NAME       | varchar(256)  | NO   | MUL | hive    |       |
+-----------------+---------------+------+-----+---------+-------+
7 rows in set (0.00 sec)

mysql> select * from dbs;
+-------+-----------------------+-----------------------------------------------------------+--------------+------------+------------+-----------+
| DB_ID | DESC                  | DB_LOCATION_URI                                           | NAME         | OWNER_NAME | OWNER_TYPE | CTLG_NAME |
+-------+-----------------------+-----------------------------------------------------------+--------------+------------+------------+-----------+
|     1 | Default Hive database | hdfs://maggie101:9000/user/hive/warehouse                 | default      | public     | ROLE       | hive      |
|     2 | NULL                  | hdfs://maggie101:9000/user/hive/warehouse/test.db         | test         | xiaofeng   | USER       | hive      |
|     6 | NULL                  | hdfs://maggie101:9000/user/hive/warehouse/myhive_test1.db | myhive_test1 | xiaofeng   | USER       | hive      |
|     7 | NULL                  | hdfs://maggie101:9000/user/hive/warehouse/myhive_test2.db | myhive_test2 | xiaofeng   | USER       | hive      |
|     8 | NULL                  | hdfs://maggie101:9000/user/hive/myhive_test3              | myhive_test3 | xiaofeng   | USER       | hive      |
|     9 | maggie???Hive?????    | hdfs://maggie101:9000/user/hive/warehouse/myhive_test4.db | myhive_test4 | xiaofeng   | USER       | hive      |
|    10 | maggie???Hive?????5   | hdfs://maggie101:9000/user/hive/warehouse/myhive_test5.db | myhive_test5 | xiaofeng   | USER       | hive      |
+-------+-----------------------+-----------------------------------------------------------+--------------+------------+------------+-----------+
7 rows in set (0.00 sec)

mysql>

  • 存放comment参数
mysql> desc database_params ;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| DB_ID       | bigint(20)    | NO   | PRI | NULL    |       |
| PARAM_KEY   | varchar(180)  | NO   | PRI | NULL    |       |
| PARAM_VALUE | varchar(4000) | YES  |     | NULL    |       |
+-------------+---------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

mysql> select * from database_params  ;
+-------+-----------+-------------+
| DB_ID | PARAM_KEY | PARAM_VALUE |
+-------+-----------+-------------+
|    10 | cretor    | maggie      |
|    10 | date      | 2022-11-26  |
+-------+-----------+-------------+
2 rows in set (0.00 sec)

3.2.ALTER(修改)

ALTER DATABASE myhive_test5 SET DBPROPERTIES ('updatetime'='30000101'); 

3.3.DROP(删除)

DROP DATABASE pk_hivedfasdfafasdfdasfas ;         【不存在的时候,会报错】
DROP DATABASE IF EXISTS pk_hivedfasdfafasdfdasfas ;     【加上IF EXISTS的时候,就不会报错】
DROP DATABASE IF EXISTS pk_hivedfasdfafasdfdasfas  CASCADE;  【CASCADE级联删除,有点危险】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值