大数据,机器学习,人工智能大数据 爬虫Python AI Sql玩转大数据

Hive基础篇

2019-11-05  本文已影响0人  BitGuo

Hadoop生态系统
底层是HDFS存储系统,在此之上是HBase和MapReduce,再往上是Pig和Hive。
Pig适用于流处理,应用场景为ETL工具。Hive是适用于批处理,应用场景一般为BI报表。
Hive借助HDFS来完成存储数据,Hive将sql语句转化为Mapreduce作业,借助Mapreduce完成对数据的操作。

Hive基础架构

Hive包含三个重要模块

Hive HA的基本原理

高可用性
HAProxy ,用户访问的时候先通过HAProxy来访问Hive,对外来讲表现为一个统一的Hive,但是内部具有多个Hive实例。HAProxy会依次去询问底层的Hive是否可用,依次执行逻辑可用性测试判断是否可用。对不能通过逻辑可用性测试的Hive,HAProxy会将其加入黑名单。每隔一段时间会对黑名单中的Hive重新进行逻辑可用性测试,移除通过测试的Hive。

SQL转化为MapReduce作业的原理

Hive中将SQL转化为MapReduce的流程

驱动模块接受命令或查询编译器,对该命令进行解析编译,该命令或查询通过执行器进行执行,由优化器对该命令或查询进行优化计算。

输入 ——>1.Parser ——>2.Semantic Analyzer ——>3.Logical Plan Generator ——>4.Logical Optimizer ——>5.Physical Plan Generator ——>6.Physical Optimizer

1.Pareser:由Hive驱动模块的编译器将用户的SQL进行词法语法解析,转化为抽象的语法树。
2.Semantic Analyzer :把复杂抽象语法书转化为查询块
3.Logical Plan Generator:把查询块转化为逻辑查询计划,里面包含了许多逻辑操作符。
4.Logical Optimizer :重写逻辑查询计划,进行优化合并多余操作,减少MapReduce任务数量
5.Physical Plan Generator :将逻辑操作符转化为需要执行的具体的MapReduce任务
6.Physical Optimizer:对生成的MapReduce任务进行优化生成最终的MapReduce任务执行计划。

Hive本身不生成MapReduce程序,需要通过一个“Job执行计划”的XML文件驱动执行内置的原生的Mapper和Reducer模块。

上一篇 下一篇

猜你喜欢

热点阅读