Hive 简介 流程 架构

Hive

Apache Hive数据仓库软件可以使用SQL进编写和管理分布式存在系统中大型数据集,提供一个命令行工 具和JDBC驱动程序来连

hive 官网:hive.apache.org

Hive:是由Facebook开源用于解决海量结构化日志的数据分析统计工具

ps:结构化通俗讲就是用行有列 --> 表 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并且提供类似于SQL语 言进行查询,修改,删除,增加等功能,这个语言不是SQL名字叫做HQL这才是hive的语言

Hive本质

将HQL转换成MapReduce程序

MapReduce需要有一定java功底,学习成本比较高,而Hive是类似于SQL语言,所以比较见到容易入门

Hive→数据仓库

Hive是基于Hadoop之上构建的数据仓库

  • Hive同样支持不同计算框架 hive on MapReduce 或 Hive  on  spark
  • Hive同样支持不同压缩格式: Gzip,BZIP2,LZO,Snappy 等等
  • Hive同样支持不同文件存储格式 :TextFile ,SequenceFile ,RCFile ,ORC, Parquet(默认格式)
  • Hive同样支持自定义函数 UDF  和 UDAF 

Hive优点

  • 操作接口采用类似于SQL的语言,提高上手容易度
  • 避免了去写复杂MapReduce程序,减少开发人员学习成本
  • Hice的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合   ps:离线数据分析hive 是现在的市场出现了一个新的概念实时数据仓库(现在落地的少....)
  • Hive的优势是处理大数据,对于处理小数据没有优势(小文件).
  • Hive支持自定义函数,用户可以根据自身需要实现函数开发(编程)

Hive缺点

  • Hive的HQL表达式能有限
  1. 无法进行迭代计算
  2. 计算引擎是MapReduce那么在数据挖掘方向会比较弱(效率不高)
  • Hive执行效率低
  1. Hive受限于MapReduce计算程序,所以执行比较慢
  2. Hive调优比较难

Hive流程

Hive 简介 流程 架构_第1张图片

  1. Hive处理的数据存储在HDFS上
  2. hive分析数据的底层处理逻辑是MapReduce
  3. 执行运行在Yarn上执行

Hive架构

Hive 简介 流程 架构_第2张图片

1、用户连接主要三个接口

CLI(命令行接口)、Client、JDBC连接

最常用的是Clinet和CLI连接,开发的时候常用CLI连接

CLI启动的时候会启动一个Hive副本

Client连接是客户端,需要使用Hive Server在Client模式(需要判定Server的节点所在)

JDBC是第三方服务连接

2、Hive中最重要的是元数据,Hive会将元数据保存在对应数据库中

元数据中保存什么:表名,表列,分区,分区属性,表是否是外部表或内部表,表的数据所在目录

3、driver解释器,编译器,优化器完成HQL查询语句的词法分析,语法分析,编译,优化以及查询生成的计划

生成的计划存储在HDFS上,并在随后使用MapReduce调用执行

4、Hive的数据是存在HDFS中,大部分的查询,计算是由MapReduce完成。ps:只有一个语句不会触发MapReduce——"select * from 表名"

 

 

你可能感兴趣的:(Hive)