Hadoop学习笔记:数据分析引擎Hive

Hive是一个基于Hadoop的数据仓库工具,提供类SQL查询语言处理大规模数据。文章详细介绍了Hive的架构,包括用户接口、元数据存储、驱动器和计算引擎。此外,还讲解了Hive的访问方式、数据模型以及数据操作,如数据加载、查询和分区。Hive适合离线分析,不适合实时更新,其列存储格式ORC能有效减少IO,提高分析效率。
摘要由CSDN通过智能技术生成

概述

Hive是一个构建在Hadoop之上的数据仓库,和传统的数据仓库一样主要用来访问和管理数据,提供了类SQL查询语言;和传统数据仓库不一样的是可以处理超大规模的数据,可扩展性和容错性非常强。
在这里插入图片描述Hive是由FaceBook开源的分布式数据分析引擎,它把SQL语句转化成MapReduce作业提交到Hadoop上运行并返回结果。

Hive可以做日志分析(包括统计网站一个时间段内的pv、uv),海量结构化数据离线分析,支持多维度、低成本数据分析,不必编写MapReduce程序。

Hive不是一个OLTP系统,响应时间慢,无法实时更新数据;另外,Hive的表达能力有限,不支持机器学习的迭代式计算,有些复杂运算用SQL不易表达。

Hive架构

在这里插入图片描述
Hive 和HBase一样,只是管理数据,数据存储在HDFS上,Yarn管理计算。Hive的内核有MapReduce、Spark,也有其他的计算引擎,不过大多数还是使用MapReduce。
在这里插入图片描述
1)用户接口,包括 CLI,JDBC/ODBC,WebUI
2)元数据存储(Metastore),默认存储在自带的数据库derby中,线上使用时一般换为MySQL。Metastore存储数据库的Schema,包括字段名称、类型等,以及数据映射关系(数据库Table和HDFS文件夹的对应关系)。Metastore检查SQL的正确性。
3)驱动器(Driver)是一个解释器、编译器、优化器、执行器,使SQL转化为MapReduce,并将MapReduce作业提交到Yarn上运行。
4)Hadoop使用MapReduce进行计算,使用HDFS 进行存储。

Hive访问方式

  • 重客户端:
    所有的SQL翻译都在客户端进行,最后将MapReduce作业提交到HDFS上执行。客户端比较耗费资源,每个客户端都可以看做是一个Hive Server。

在这里插入图片描述
使用Hive CLI,在本地客户端输入“Hive”运行Hive,通过本地配置获取Metastore(借助第三方数据库存储)的位置,本地客户端使用Metastore来运行SQL,在本地翻译SQL为MapReduce作业,并提交到Hadoop上运行。系统可以启动多个Metastore,映射到MySQL,所以它是HA高可靠。

	hive
	hive -h <host> -p <port>
  • 轻客户端:
    类似于JDBC,Beeline,将请求提交到Hive Server上,由Hive Server将SQL翻译成MapReduce后提交到HDFS上运行。一般只需要一个Hiv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值