zl程序教程

您现在的位置是:首页 >  Python

当前栏目

Hive的基本知识(一)

2023-04-18 12:44:19 时间

Hive架构

Hive 组件 用户接口:包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行; Hive中的Thrift服务器允许外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是 通过浏览器访问Hive。 元数据存储:通常是存储在关系数据库如 mysql/derby中。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 Driver驱动程序,包括语法解析器、计划编译器、优化器、执行器 : 完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在 HDFS 中,并在随后有执行引擎调用执行。 执行引擎:Hive本身并不直接处理数据文件。而是通过执行引擎处理。当下Hive支持MapReduce、 Tez、Spark3种执行引擎。 Hive基本使用 链接方式: 1.使用hive本地连接 2.开启hiveserver2远程服务,使用beeline连接 3.使用hive参数执行任务 hive -e ‘执行语句’ hive -f ‘执行脚本文件’

数据存储格式

Hive中提供了多种文件存储格式:TextFile、SequenceFile、RCFile、ORC、Parquet等。不同的文件存

储格式具有不同的存储特点,有的可以降低存储空间,有的可以提高查询性能等,可以用来实现不同场景下的数据存储,以提高对于数据文件的读写效率。

TextFile:

TextFIle是Hive中默认的文件格式,存储形式为按行存储。

insert into table t_all_hero_part_dynamic partition(role) select 

tmp.*,tmp.role_main from t_all_hero tmp; 

–分桶表建表语句

CREATE [EXTERNAL] TABLE [db_name.]table_name 

[(col_name data_type, ...)] 

CLUSTERED BY (col_name) 

INTO N BUCKETS; 

set hive.enforce.bucketing=true;

SequenceFile:

SequenceFile是Hadoop里用来存储序列化的键值对即二进制的一种文件格式。

Parquet:

Parquet是一种支持嵌套结构的列式存储文件格式。

ORC:

ORC文件格式也是一种Hadoop生态圈中的列式存储格式。

Hive中压缩配置

Hive中的压缩就是使用了Hadoop中的压缩实现的,所以Hadoop中支持的压缩在Hive中都可以直接使用。