一.什么是Hive?
基于Hadoop的数据仓库工具,可将结构化数据文件映射为一张表,并提供类SQL查询功能
用于解决海量结构化日志的数据统计
本质是将HQL转化为MapReduce程序
1. Hive处理的数据存储在HDFS
2. Hive分析数据底层的实现是MapReduce
3. 执行程序运行在Yarn上
二.优缺点
a. 优点:
1. 类SQL语法(简单、易上手)
2. 避免写MapReduce,减少开发人员学习成本
3. Hive执行延迟较高,适用于处理大量数据和对实时性要求不高的数据
4. 可自定义函数,根据需求定义函数
b.缺点:
1. 表达能力有限 (迭代式算法无法表达、数据挖掘方面不擅长)
2. 效率较低(不够智能化、调优较困难)
三. Hive架构原理
四. Hive 与 数据库的比较
hive采用了类似SQL的查询语言 Hive QL (Hive Query Language), 因此容易将HIve理解为数据库
但除查询语言外,再无类似之处。
对比项 | Hive | MySQL |
---|---|---|
查询语言 | Hive QL | SQL |
数据存储位置 | HDFS | 本地 或 块设备 |
数据格式 | 用户定义 | 系统决定 |
数据更新 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
执行延迟 | 高 | 低 |
可扩展性 | 高 | 低 |
数据规模 | 大 | 小 |