栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive 简明使用教程

Hive 简明使用教程

1.简介

The Apache Hive ™ data warehouse software facilitates reading, writing, and managing large datasets residing in distributed storage using SQL. Structure can be projected onto data already in storage. A command line tool and JDBC driver are provided to connect users to Hive.

Hive是一个基于 Hadoop的数据仓库软件,其核心在于存储和分析数据。

Hive可以存储大数据量(PB级)的结构化数据,同时支持绝大部分 SQL语法。可以在命令行直接使用 SQL分析数据,也可以使用 Spark程序或者 Java程序来操作其中的数据。

更多权威内容见官网:Apache Hive TM

2.名词解释

Beeline

Beeline是 Hive 0.11版本引入的新命令行客户端工具,它是基于 SQLLine CLI的 JDBC客户端。

Hive metastore Server

​ 元数据服务,负责提供 hive里面创建的数据库、表、分区和数据存储目录等元数据。元数据默认存储在自带的 derby数据库中,但是 生产上一般使用 MySQL来进行存储。

HiveServer2

HiveServer2(HS2)是一个服务端接口,使远程客户端可以执行对 hive的查询并返回结果。 启动 hiveServer2服务后,就可以使用jdbc,odbc,或者 thrift的方式连接。

MapReduce

MapReduce是一种大数据量处理的编程模型,也是 hive默认的执行引擎,其他的执行引擎还有 spark。

Partition

分区,为了更加快速的过滤数据,生产上一般都会给表分区,比较常见的分区方式有按天、按月和按批次分区。

3.Hive命令行

使用 beeline就可以进入 hive的命令行,如下:

也可以直接指定服务器地址和账户信息,如下:

beeline -u jdbc:hive2://:10000 -n  -p 

退出命令行:

# 为了避免丢失 hive历史命令,建议使用此命令退出
!exit
4.数据库及表操作 4.1 数据库操作

首先使用 beeline命令进入到 hive的命令行。

    查看现有的数据库

    show databases;
    

    切换数据库

    use db2;
    
    

    创建数据库

    # --1.直接创建数据库,若数据库已存在会报错
    create database db5;
    
    # --2.先判断数据库是否存在,不存在则创建,反之什么都不做
    create database if not exists db5;
    
    

    删除数据库

    drop database db5;
    
    
4.2 表操作

下面的命令均需要在 hive命令行中操作。

    查看表

    # 先切换到目标数据库
    use db5;
    show tables;
    
    

    创建表

    # --1.创建普通表,同样支持 if not exists命令
    # 常用的数据类型有:string,int,date,float
    create table table2(
      field1 string,
      field2 int
    );
    
    # --2.创建分区表
    # 首先开启分区
    set hive.exec.dynamic.partition=true; 
    set hive.exec.dynamic.partition.mode=nonstrict;
    # 建表
    create table table3(
      field1 string,
      field2 date 
    )partitioned by(day string)
    row format delimited fields terminated by 't';
    
    # --3.从现有表创建一张新表,两张表的 schema信息完全一样
    create table table5 like table3;
    
    

    删除表

    drop table table3;
    

    修改表

    alter table table2 rename to table002;
    

    清空表数据

    truncate table table2;
    
    
5.查询和插入数据 5.1 查询数据

通过 SQL查询 hive表中的数据:

# 查询某张表的 10条数据(与 MySQL的语法十分接近)
select * from table2 limit 10;

# 查询表中数据量
select count(*) from table2;

通过 HDFS命令查看 hive表所占的存储空间:

# /user/hive/warehouse/是 hive数据在 hdfs上存储的默认路径
# testdb01是数据库名,table2是目标表的名称
hdfs dfs -du -s -h /user/hive/warehouse/testdb01.db/table2
#6.6 G  19.7 G  /user/hive/warehouse/testdb01.db/table2
5.2 插入数据
# 往普通表插入数据
insert into table table2 values("hello",2022);

# 往分区表插入数据
insert into table table3 PARTITION(day='20220118') values("hello",2022);
6.导入和导出数据 6.1 导入数据
# 从本地磁盘导入数据到 hive表里面
# 此命令需要在 hive命令行里面执行
# 普通表
load data local inpath '/opt/test.csv' into table testdb01.table3;

# 分区表
load data local inpath '/opt/test.csv' into table testdb01.table3 PARTITION (day='20220118');
6.2 导出数据
# 将 hive表里面的数据以 MapReduce任务的方式导出到本地磁盘
# 此命令需要在 hive命令行里面执行
insert overwrite local directory '/tmp/table3-export' select * from testdb01.table3;
7.角色授权

一般情况下 hive账户拥有最高权限,因此可以使用 hive账户给其他账户赋权限。

# 给 root用户赋予管理员权限
create role admin;
grant all on server server1 to role admin;
grant role admin to group root;
8.总结

本文的目标是简单介绍 hive,给出 hive常见的操作,希望不了解 hive的人也能根据本文把 hive用起来。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/712663.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号