Hive学习笔记--概述简介

本文深入探讨Hive作为基于Hadoop的数据仓库工具,如何通过类SQL语句简化大数据的存储、查询及分析,适用于离线处理场景。涵盖Hive的起源、特性、体系结构及其与传统RDBMS的对比。

Hive学习笔记

概述

由来

  • 只能用java语言开发,如果是c语言或其他语言的程序员用Hadoop,存在语言门槛,需要对Hadoop底层原理,api比较了解才能做开发,开发调试比较麻烦;可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析Hive就是去解决该问题。

简介

  • Hive是基于Hadoop的一个数据仓库工具。具有读写以及管理大量数据的能力。
  • Hive使用的是类Sql语句,但是底层是基于SQL转化成MapReduce来执行的,所以效率很低,所以适合做离线处理;
  • 可以用来对数据进行数据提取、转化、加载(ETL),是一种处理Hadoop中大规模数据的存储、查询以及数据分析机制;
  • 类似于用来开发Sql类型脚本去执行MapReduce的作业。其本质是大数据离线分析工具;

与RDBMS相比
Hive存储的数据多样化:结构化、半结构化非结构化
数据来源多样;
传统数据库支持增删改查,Hive只提供曾和查的能力;
事务:Hive弱事务甚至没有事务
场景:RDBMS面向OLTP
HIve面向OLTP

体系结构

在这里插入图片描述用户接口

  1. CLI:最常用的模式。实际上在>hive 命令行下操作时,就是利用CLI用户接口。
  2. JDBC:通过Java代码操作,需要先启动HiveServer然后连接操作。

Metastore
Hive将元数据存储在数据库中,如Mysql,Derby(单用户使用)。
元数据包括:表的列,分区及其属性(是否为外部表),表的数据所在目录等。

解释器(complier)、优化器(optimizer)、执行器(executor)组件
这三个组件用于:HQL语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成
的查询计划存储在HDFS中,并在随后有MapReduce调用执行

Hadoop
Hive的数据存储在HDFS中,大部分的查询、计算由MapReduce完成

流程

在这里插入图片描述
从图中可以看出:

  • Hive在处理客户端命令的时候首先经过自身几个组件最后放入Hadoop中执行,完毕之后返回给客户端结果;
    详细流程
  • 客户端发送一条HQL语句
  • 通过Driver去调度
  • 将消息发送到Compiler:分析出hql要操作哪一张表;做出hql的解析;
  • 去metastore中获取出元数据,返回给compiler;
  • 在将解析后的hql(MapReduce),交给DRIVER
  • ExecutionEngine接受Driver 的MapReduce;将MapReduce发送给hadoop中监控执行;剩下就是MapShuffle ReduceShuffle过程;
  • 最后将处理的结果返回给ExecutionEngine;返回给driver–>返回给客户端;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值