在创建书库之前,我们首先看看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中进行授权。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程