1. 概念
Hive 是创建在 Hadoop 上的数据堆栈工具,旨在简化大规模数据集的查询与管理。它通过类 SQL 语言(HiveQL)将布局化数据映射为 Hadoop 的 MapReduce,得当离线批处置处罚,尤实在用于数据堆栈场景。
2. 数据模子
表(Table):逻辑数据单元,分为两种:
1.内部表(Managed Table):数据由 Hive 管理,删除表时数据及元数据均被扫除。
2.外部表(External Table):数据存储在 HDFS 的指定路径,删除表仅删除元数据,保留数据。
分区(Partition):按列值(如日期)将数据划分到差异目次,提拔查询服从(如分区裁剪)。
分桶(Bucket):基于哈希将数据分到固定命目标文件,优化 Join 和采样服从。
视图(View):虚拟表,基于查询效果界说,不存储实际数据。
3. 架构
Hive 架构分为以下核心层:
1. 用户接口层:
CLI/JDBC/ODBC:提供下令行和远程访问。
HiveServer2:支持多用户并发、认证,替代旧版 HiveServer。
Web UI(如 Hue):可视化查询界面。
2. 元数据存储(Metastore):
使用关系数据库(MySQL、PostgreSQL)存储表布局、分区等元数据。
独立服务模式(Remote Metastore)支持高可用。
3. 驱动层(Driver):
编译器:将 HiveQL 转换为抽象语法树(AST)、逻辑操持。
优化器:实行逻辑优化(如谓词下推、分区裁剪)。
实行引擎:生成物理操持(MapReduce/Tez/Spark DAG)。
4. 实行层:
支持多种引擎:MapReduce(默认)、Tez(优化 DAG 实行)、Spark(内存盘算)。
LLAP(Live Long and Process):守护历程缓存数据,加速交互式查询。
5. 存储层:
数据存储在 HDFS 或兼容系统(如 S3)。
支持多种格式:文本、ORC(列式存储,支持 ACID)、Parquet。
4. 核心组件
Hive CLI:下令行接口,得当简朴查询。
HiveServer2:提供 Thrift 服务,支持 JDBC/ODBC 毗连。
Metastore:独立服务,管理元数据,支持高并发访问。
SerDe(Serializer/Deserializer):解析数据格式(如 JSON、CSV),如 `OpenCSVSerde`。
Execution Engine:可插拔引擎(如 Tez 减少中间落盘,提拔性能)。
Hive Web Interface(可选):提供底子监控界面。
Hive 通过 SQL 抽象简化了 Hadoop 生态的数据处置处罚,其架构围绕元数据管理、查询编译优化和多引擎实行睁开。随着 Tez/Spark 引擎和 LLAP 的引入,Hive 在性能上连续改进,但仍以批处置处罚为核心定位。理解其数据模子与组件协作,是优化 Hive 应用的关键。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |