为什么提出hive
通过 Hadoop ,已经实现了 存储数据 和 计算,但实现 计算较困难,需要写 MapReduce 程序
很多时候,HDFS存储的数据是 行列 的,与 关系型数据库(mysql、oracle) 存储的数据相同,但是通过 编写 MapReduce 程序进行查询统计,复杂且慢
于是想到了 操作 关系型数据库(mysql、oracle)的语言:SQL
一句话理解
Hive可以通过 类似 SQL 的语句,查询、统计分析 Hadoop中的文件(必须有固定格式)
底层是将 HSQL 转化成 MapReduce 程序,运行在 Yarn 上
主要功能
创建表、删除表、select查询数据(不需要编写 MapReduce 程序)
百度百科
hive是 基于Hadoop 的一个 数据仓库工具,可以 存储、查询 和 分析 Hadoop中的大数据
hive数据仓库工具能将 结构化的数据 文件 映射 为一张 数据库表,并提供 类似SQL 查询功能,将 类似SQL 语句转变成 MapReduce任务 来执行。
官网:
优点
学习成本低,可以通过 类似SQL语句 实现快速 MapReduce统计
避免开发 MapReduce 应用程序
Hive适合对数据仓库进行 统计分析
适合应用在基于 大量、不可变 的数据
可伸缩(在Hadoop的集群上动态添加设备)、可扩展、容错、输入格式的松散耦合
缺点
不适合用于联机(online)事务处理
不提供实时查询功能
执行速度较慢,因为 MapReduce 慢
Hive on Spark
从 hive2 开始,不建议在 MapReduce 上运行,推荐 Spark 作为计算引擎