hive
2023-02-01 10:18:51 0 举报
hive
作者其他创作
大纲/内容
JDBC
本地模式
Compiler编译器
存储
WEBUI
将向关联的语句优化到一起-- 开启关联关系优化,默认为 falseSET hive.optimize.correlation=true;
Execution执行器
SET hive.exec.mode.local.auto=true;开启Job 的输入数据大小必须小于参数: hive.exec.mode.local.auto.inputbytes.max (默认 128M)Job 的 Map 数必须小于参数: hive.exec.mode.local.auto.tasks.max (默认 4)Job 的 Reduce 数必须小于或等于参数: mapred.reduce.tasks (默认 -1)。
期间
Hadoop
提高查询效率行存储适合查整条列存储适合查单列字段数据
压缩
内部表在拉取数据时,将数据拉到对应文件夹,元数据不会保存外部表外部表因为目录是共享的,所以不会影响元数据不会建目录,与原数据关联
MetaStore
并行执行
Hive 黑窗口
严格模式
Input :数据来源(数据输入)Transformation :中间计算(Map-->reduce)Output :最后的输出(数据输出)
Hive Server2
Hive框架
Hive : MapReduce客户端
Bzip 压缩70% ,可切分Snappy 压缩不能被切分,压缩率高,压缩解压缩快Lzo lz4可切片
-- 开启任务并行执行,默认为 falseSET hive.exec.parallel=true;-- 同一条 SQL 的并行化线程数,默认为 8SET hive.exec.parallel.thread.number=8;
Hive
client
关联优化
SQl Parser解析器
Hive SQL
元数据,数据的数据。元数据包括表名、表结构信息、表所属的数据库 元数据的存放一般需要借助于其他的数据载体(Derby 或 MySQL),默认存放在自带的 Derby 数据库( 元数据服务的作用是:客户端连接 MetaStroe 服务,MetaStroe 服务再去连接 MySQL 数据库来存取元数据。有了MetaStroe 服务,就可以有多个客户端同时连接,而且这些客户端不需要知道 MySQL 数据库的用户名和密码,只需要连接MetaStroe 服务即可。
谓词下推在查询时避免n*n问题,在连表时进行筛选
读取压缩的不可分割的大文件--->采用压缩数据含有大量无意义的数据----->空key过滤无法聚合中间结果,大量数据都需要经过 Shuffle 阶段的处理,引起数据倾斜---->2个作业执行后续进行聚合数据在计算时做多维数据集合,导致维度膨胀引起的数据倾斜。---->hive.new.job.grouping.set.cardinality(配置自动控制作业的拆解,该参数默认值是 30.)两表进行 JOIN,都含有大量相同的倾斜数据键。--->小 join 大然后2作业
O=R++:升级二进制键/值对组成的 flat 文件 ORC 大小最多减少 75%,数据处理速度大大提高。ORC:hive兼容性好;(二进制文件小,后续还可压缩Snappy)P:兼容性,多平台
ThriftServer
作用
GROUP BY
提交MapReduce
Set hive.groupby.skewindata=true (作业拆解成两个作业平均分配)
分类
解析器将 SQL 转换成MR的任务需要的对应的元数据等准备工作;将数据和表对应,检查表存在,对应数据行编译器进一步生成逻辑执行计划(MR任务的执行流程)对sql进行编译,检查sql逻辑,和MR流程优化器对逻辑执行计划进行优化。如果直接根据SQL生成执行计划的化,效率可能不高。对SQL流程进行优化,优化执行效率执行器真正触发MR任务的执行。把逻辑执行计划转换成可以运行的物理计划。对于 Hive 来 说,就是 MR/Spark。执行
Driver
Fetch模式
返回Map reduce结果
JOIN 优化
ORDER BY
Beeline client
1.查询时*比较多,还是指定列查询比较多 如果*查询比较多,行式存储 如果指定列查询比较多,列式存储⒉行式存储∶如果数据人也能看懂,采用文本,如果数据不考虑人可以读懂,只考虑机器,采用 Sequence File、Map File、Avro File3.列式存储∶都是采用二进制,Hive 平台自己用推荐ORC File,如果多平台用推荐Parquet File如果写出的数据只是作为存储,那就要看这个数据属于热数据还是冷数据,如果热数据,不压缩,一般使用Hadoop和Hive自己用Sequence File,如果多平台使用Avro File如果冷数据,压缩处理
ODBC
Hive与数据库区别Hive不支持修改和添加执行延迟高,可扩展高0.8版本后加入位图索引数据库支持修改和添加执行延迟低,可扩展低多种索引
MysqlOracle...
Hive client
HiveServer2
HIVE优化
数据倾斜
Hive操作
向量化查询
YARN 集群(MapReduce 分析计算)
使用
标准查询执行系统一次处理一行。矢量化查询执行可以一次性处理 1024 行的数据块SET hive.vectorized.execution.enabled=true;MR 计算引擎不支持,需要配置 Tez/Spark 计算引擎使用
所有 Map 端数据都进入一个 Reducer 中于sort by分层一起使用DISTRIBUTE BY deptno SORT BY sal(进行分层)
Query Optimizer优化器
压缩技术能够有效减少存储系统的读写字节数,提高网络带宽和磁盘空间的效率。
HDFS 集群(数据存储)
0 条评论
下一页