什么是Hive
解决海量结构化日志的数据统计(海量的结构化数据的运算分析)
它是一个数仓工具,不是数据库 通过 SQL 形式 处理,分析,统计,运算 HDFS 上的海量结构化数据--->报表
本质: Hive(HQL)底层转换成MR程序,提交到Yarn分布式运行
- Hive处理数据存储在HDFS上
- Hive分析数据底层的实现是MapReduce / spark(分布式运算框架)
- 执行程序运行在Yarn上
优点与缺点 简述
--- 优点
- 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)
- 避免了去写MapReduce,减少开发人员的学习成本
- Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合
- Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高
- Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
---缺点
1) Hive的HQL表达能力有限
- 迭代式算法无法表达 递归算法
- 数据挖掘方面不擅长
2) Hive的效率比较低
- Hive自动生成的MapReduce作业,通常情况下不够智能化
- Hive调优比较困难,粒度较粗(快)
架构原理
1) 用户接口:Client
- CLI(hive shell)
- JDBC/ODBC(java访问hive)
- WEBUI(浏览器访问hive)
2) 元数据:Metastore
元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型&#x