hive创建数据库并指定目录

2017年12月12日 10:44 | 1302次浏览

在创建书库之前,我们首先看看hive数据库和表的结构图,这样子初学者更能简单易懂。

一、Hive的数据库和表


从图上可以看出,Hive作为一个“数据库”,在结构上积极向传统数据库看齐,也分数据库(Schema),每个数据库下面有各自的表组成。

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

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}/databasename.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, ...)];

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

CREATE DATABASE IF NOT EXISTS lxw1234
COMMENT 'V型知识库-www.vxzsk.com'
localtion 'hdfs://namenode/user/lxw1234/lxw1234.db/';

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

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



感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程