Hive应用场景及架构原理

Hive是基于Hadoop的数据仓库工具,用于对海量数据进行离线分析。其优点包括易上手的HQL、可扩展性和元数据管理。常见应用场景包括日志分析和结构化数据离线分析。Hive的工作原理是将SQL查询转换为MapReduce任务在Hadoop上执行。其架构包括用户接口、元数据存储和解释器、编译器、优化器。Hive支持多种数据类型,包括基本和复杂类型,并提供了类型转化功能。
摘要由CSDN通过智能技术生成

Hive背景介绍

    Hive最初是Facebook为了满足对海量社交网络数据的管理和机器学习的需求而产生和发展的。大数据是现在互联网的趋势,而hadoop就是大数据时代里的核心技术,但是hadoop的mapreduce操作专业性太强,所以facebook在这些基础上开发了hive框架,毕竟世界上会sql的人比会java的人多的多,hive可以说是学习hadoop相关技术的一个突破口。

Hive简介

简单的说:hive是基于hadoop的数据仓库。

那么为什么说hive是基于Hadoop的呢?

之所以说hive是构建在Hadoop之上的数据仓库,简单的说是因为:

①数据存储在hdfs上

②数据计算用mapreduce

下面我们来深入分析一下:

    Hive是一种建立在Hadoop文件系统上的数据仓库架构,并对存储在HDFS中的数据进行分析和管理;它可以将结构化的数据文件映射为一张数据库表,并提供完整的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运行,通过自己的 SQL 去 查询分析需要的内容,这套 SQL 简称 Hive SQL(HQL),使不熟悉 MapReduce 的用户也能很方便地利用 SQL 语言对数据进行查询、汇总、分析。同时,这个语言也允许熟悉 MapReduce 开发者们开发自定义的mappers和reducers来处理内建的mappers和reducers无法完成的复杂的分析工作。Hive还允许用户编写自己定义的函数UDF,用来在查询中使用。Hive中有3种UDF:User Defined Functions(UDF)、User Defined Aggregation Functions(UDAF)、User Defined Table Generating Functions(UDTF)。也就是说对存储在HDFS中的数据进行分析和管理,我们不想使用手工,我们建立一个工具吧,那么这个工具就可以是hive。

Hive常见的应用场景

(1)日志分析:大部分互联网公司使用hive进行日志分析,包括百度、淘宝等。

1)统计网站一个时间段内的pv、uv

2)多维度数据分析

(2)海量结构化数据离线分析

Hive的特点(优缺点)

(一)hive的优点

(1)简单容易上手:提供了类SQL查询语言HQL

(2)可扩展:为超大数据集设计了计算/扩展能力(MR作为计算引擎,HDFS作为存储系统)

一般情况下不需要重启服务Hive可以自由的扩展集群的规模。

(3)提供统一的元数据管理

(4)延展性:Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

(5)容错:良好的容错性,节点出现问题SQL仍可完成执行

(二)hive的缺点(局限性)

(1)hive的HQL表达能力有限

1)迭代式算法无法表达,比如pagerank

2)数据挖掘方面,比如kmeans

(2)hive的效率比较低

1)hive自动生成的mapreduce作业,通常情况下不够智能化

2)hive调优比较困难,粒度较粗

3)hive可控性差

Hive 工作原理

        Hive 工作原理如下图所示。

Hive构建在Hadoop之上

(1)HQL中对查询语句的解释、优化、生成查询计划是由Hive完成的

(2)所有的数据都是存储在Hadoop中

(3)查询计划被转化为MapReduce任务,在Hadoop中执行(有些查询没有MR任务,如:select * from table)

(4)Hadoop和Hive都是用UTF-8编码的

Hive编译器的组成:

Hive编译流程如下

Hive和数据库的异同

由于Hive采用了SQL的查询语言HQL,因此很容易将Hive理解为数据库。其实从结构上来看,Hive和数据库除了拥有类似的查询语言,再无类似之处。数据库可以用在Online的应用中,但是Hive是为数据仓库而设计的,清楚这一点,有助于从应用角度理解Hive的特性。

Hive和数据库的比较如下表:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值