Hive基础篇


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

Hive基础架构

Hive包含三个重要模块

  • 用户接口模块 (对外访问接口)

    • CLI 命令行工具
    • HWI Hive的web接口
    • JDBC和ODBC 开放数据库连接接口
    • Thrift Server,thrift架构开发的接口,允许外界通过这个接口实现对Hive仓库的RPC调用
  • 驱动模块 (包含编译器,优化器,执行器)

  • 元数据存储模块 Metastore
    是一个独立的关系型数据库,通过MySql数据库来存储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模块。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Hive是基于Hadoop的数据仓库工具,可对存储在HDFS上的文件中的数据集进行数据整理、特殊查询和分析处理,提...
    丨程序之道丨阅读 8,966评论 0 6
  • 1.Hive原理 Hive是构建在Hadoop上的数据仓库软件框架,支持使用SQL来读,写和管理大规模数据集合。H...
    samjinzhang阅读 12,219评论 0 22
  • 做为一个满世界找美食吃的人,说到澳洲的吃喝,那可是“积怨很深”,刚去到时动不动就被惊吓到,到后面的习以为常。 也有...
    Mora外宿中阅读 3,780评论 0 0
  • 早上好。我是沃伦,坐在我旁边的是查理。有很多事儿啊,查理做得都比我好,但是呢(此时拿起一盒喜诗糖果,...
    A江上渔者阅读 2,994评论 0 0