提示:文章内容为上课记录,常见问题在配置过程中就已经记录
目录
前言
Hive概述
之前的定义:Hive是由Facebook实现并开源,是基于Hadoop的一个数据仓库工具,底层依赖于HDFS存储数据,利用MapReduce进行计算,可以将结构化的数据映射为一张数据库表,并提供HQL。Hive的本质是将 SQL 语句转换为 MapReduce 任务运行。Hive提供了三种协议访问 Hive数据:Thrift RPC、JDBC、ODBC。
注意:以上是Hive之前的定义。如今随着大数据的发展Hive逐步舍弃了MR。Hive2.X版本已经建议不再使用MR,而在新出来的Hive3.X版本中,直接舍弃了使用MR作为底层运行机制,改为使用Tez。
后来由于Spark的出现,许多公司开始使用Spark代替MapReduce作为Hive的执行引擎,使Hive运行在Spark上。也就是Hive on Spark。
Hive的优缺点
优点:
可扩展性强,支持横向扩展。因为其底层依赖于HDFS存储数据,支持集群扩展。Hive可以自由的扩展集群的规模,一般情况下不需要重启服务。
延展性强。支持自定义函数。
良好的容错性。底层依赖于HDFS,有副本机制。
缺点:
查询起来很慢。
不支持事务。主要用来做OLAP(联机分析处理),而不是OLTP(联机事务处理)。
之前版本的Hive不支持删改操作的,但是新出来的3.0版本是支持的。
数据库与数据仓库
数据库:传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
数据仓库:数据仓库系统的主要应用主要是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。
数据库是面向事务的设计,数据仓库是面向主题设计的,一般存储在线交易数据。
数据仓库存储的一般是历史数据。
提示:以下是本篇文章正文内容,下面案例可供参考