目录
1.数据库操作
2.表操作
3.hive属性介绍
4.管理表
hive下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2/apache-hive-1.2.2-bin.tar.gz
-
hive介绍
hive的出现是为了那些不熟悉hadoop的人群开发的,实际上hive的hsq会用xml转换成对应的mapReduse大数据之上的简化处 理模型
-
hive基本操作
1.数据库操作
1)列出所有的数据库 show databases;
2)列出所有已h开头的数据库 show databases LIKE ‘h.*’
3)创建数据库 CREATE DATABASE db; CREATE DATABASE IF NOT EXISTS db;
4)删除数据库下面所有的表,因为数据下面有表的话是删不掉的。加上CASCADE就可以删除。
DROP DATABASE IF EXISTS db CASCADE;
5)进入数据库 use database;(database 是具体的数据名)
6)即使我们不在那个数据库下,也可以列举出来数据库下面的表
SHOW TABLES IN db;
7)显示数据库所在的位置信息
describe database employees;
2.表操作
1)查看表的详细表结构信息 都可以查看
DESCRIBE EXTENDED table; DESCRIBE FORMATTED table;(推荐)列出来的信息更详细。
2)创建表 CREATE TABLE x (a int);
3)查询表 SELECT * FORM x;
4)删除表 DROP TABLE x;
5) 复制一张表,只复制表结构不复制数据 create table if not exists wuzi_xwh2 like wuzi_xwh
6) 数据在本地模式插入数据
load data local inpath '/root/employees.csv' into table employees;
7)表重新命名
ALTER TABLE log_message RENAME TO messages;
8)修改hive列信息
修改之前表中列的信息
hive> alter table employees CHANGE COLUMN //
> salary salary_update int //salary 字段修改成 salary_update 数据类型修改成int
> comment 'update' //添加的注释
> after name; // after 修改后的字段放到name的后面 还可以 frist 放到第一个位置
修改后的样子
9)增加列
alter table employees add columns (salary float);
10)删除或者替换列
alter table employees replace columns (name string);
执行语句之前
执行语句之后
这个语句可以将表中,除了columns 字段后面不指定的字段全部移除,只是修改元数据信息。
11)修改表的存储属性 参考大神文章: textfile,sequencefile和rcfile的使用与区别详解
3.hive属性介绍
本地模式下的配置:
1) hive.metastore.warehouse.dir 告诉hive在本地文件系统中使用那个路径来存储hive表中的数据。(这个值会追 加到Hadoop配置文件中的属性fs.default.name的值)
2) hive.metastore.local 默认值是true
3) Javax.jbo.option.ConnectionURL 这个属性告诉hive如何连接matestore server,默认情况下,它使用当前的工
作目录作为属性值字符串中的databaseName部分
其他属性:
1) set Hive.cli.print.current.db=true,开启这个属性可以在CLI提示符前打印数据库的名称,可以在hive命令行使用
2)修改创建的数据库在hdfs上面的位置,默认是在配置文件中配置的位置hive.metastore.warehouse.dir
CREATE DATABASE db LOCATION ‘/my/preferred/directory’;
4.管理表:
1)创建外部表(管理表就是外部表)
CREATE EXTERNAL TABLE IF NOT EXISTS stocks(
exchange STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’
LOCATION ‘/data/stocks’;
关键字EXTERNAL告诉这个表示外部表。LOCATION 告诉hive数据存放在hdfs那个路径下面。
如果不加 EXTERNAL创建出来的就是管理表。