设为首页 加入收藏

TOP

Hive的基础知识
2018-11-13 14:55:38 】 浏览:52
Tags:Hive 基础知识
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Mrzhangjwei/article/details/66969321

Hive中的数据库和表 详细讲解文章

Hive操作数据库语句总结

一、Hive中的数据库(Database)和表(Table)

1. Hive在HDFS上的默认存储路径

HDFS是Hadoop分布式文件系统

Hive的数据都是存储在HDFS上的,默认有一个根目录,在hive-site.xml中,由参数hive.metastore.warehouse.dir指定。默认值为/user/hive/warehouse

2. Hive中的数据库(Database)

  • 进入Hive命令行,执行show databases;命令,可以列出hive中的所有数据库,默认有一个default数据库,进入Hive-Cli之后,即到default数据库下。
  • 使用use databasename; 可以切换到某个数据库下,同mysql;
hive> show databases;
OK
default
lxw1234
usergroup_mdmp
userservice_mdmp
Time taken: 0.442 seconds, Fetched: 4 row(s)
hive> use lxw1234;
OK
Time taken: 0.023 seconds
hive>
  • Hive中的数据库在HDFS上的存储路径为:
    ${hive.metastore.warehouse.dir}/dataabasename.db

    比如,名为lxw1234的数据库存储路径为:
    /user/hive/warehouse/lxw1234.db

  • 创建Hive数据库
    使用HDFS超级用户,进入Hive-Cli,语法为:
CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name
[COMMENT database_comment]
[LOCATION hdfs_path]
[WITH DBPROPERTIES (property_name=property_value, ...)];

比如,创建名为zjwei的数据库:

CREATE DATABASE IF NOT EXISTS zjwei
COMMENT 'zjwei的Hive练习'
localtion 'hdfs://namenode/user/lxw1234/lxw1234.db/';

创建时候可以指定数据库在HDFS上的存储位置。

注意:使用HDFS超级用户创建数据库后,该数据库在HDFS上的存储路径的属主为超级用户,如果该数据库是为某个或者某些用户使用的,则需要修改路径属主,或者在Hive中进行授权。

  • 修改数据库

修改数据库属性:

ALTER (DATABASE|SCHEMA) database_name

SET DBPROPERTIES (property_name=property_value, …);

修改数据库属主:

ALTER (DATABASE|SCHEMA) database_name

SET OWNER [USER|ROLE] user_or_role;
  • 删除数据库
DROP (DATABASE|SCHEMA) [IF EXISTS] database_name

[RESTRICT|CASCADE];

默认情况下,Hive不允许删除一个里面有表存在的数据库,如果想删除数据库,要么先将 数据库中的表全部删除,要么可以使用CASCADE关键字,使用该关键字后,Hive会自己将数据库下的表全部删除。RESTRICT关键字就是默认情 况,即如果有表存在,则不允许删除数据库。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java调用Hive的操作 下一篇hive(一)--hql摘要

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目