1.Hive 简介
构建在hadoop之上,用来满足企业大数据存储和数据分析需求的数仓工具.
(hadoop是分布式架构,有优秀的水平扩展能力,Hive自然具有相同优点)
2.Hive与传统数仓
传统数仓:既是数据存储产品又是数据处理分析产品(同时支持数据的存储与处理分析)
Hive:本身并不支持数据的存储与处理分析(一个面向用户的编程接口,提供一种编程语言,通过该语言HiveQL去编写用户分析需求)
3.Hive如何完成数据存储与分析
Hive架构在底层的hadoop核心组件之上的(HDFS,MapReduce,yarn)
依靠Hadoop的分布式文件系统HDFS,分布式并行计算模型MapReduce,来完成大规模数据的分布式并行计算;
4.Hive的特性
5.Hive在hadoop架构中的位置,以及pig、HBase
pig: 面向流式处理的一种语言,在某种程度上与Hive类似,都是转换成mr任务去分析底层数据,但相对于Hive来说是一种轻量级的交互工具.pig适合去做实时的交互式分析,主战场是数据仓库的ETL环节.
HBase: 支持实时交互式查询的数据库,用来弥补HDFS的缺陷.(HDFS不支持随机读写,只允许追加不允许修改,很多应用场景下需要实时交互式读取,因此借助HBase),同时HBase与Hive之间也是互补关系,Hive具有延时性,而HBase就可以实时分析查询.
7.Hive在企业中部署与应用
BI: Business Intelligence,商业智能.
Mahout: 实现很多机器学习算法,帮助企业分析人员快速构建商务智能应用(基于大规模数据集进行数据挖掘分析机器学习等).
8.Hive在FaceBook公司中的应用
Facebook部署大量web servers,这些web servers每天产生大量的日志流
–> 通过scribe servers(订阅服务器)对大量日志流进行收集整理
–> 存入网络文件服务器Filers中
–> Filers将日志数据再存入HDFS中,MySQL中存储的维度数据也导入HDFS中
–> 数据都进入Hadoop平台之后,Hive为所有数据构建数仓
–> 操作人员再利用Hive进行报表历史数据分析等操作
–>分析结果可导回MySQL中,也可以导入Oracle rac高性能数据库服务(提供实时对外联机服务)
以上则是Hive数仓的典型应用
用户接口模块
驱动模块 driver
元数据存储模块 MetaStore
10.Hive HA 基本原理
Hive High Availability, Hive高可用.
实际问题: Hive实际中出现的不稳定的现象(进程丢失,端口无响应…)
提出: Hive高可用解决方案
用户通过调用 HAproxy, 对Hive进行访问.
HAproxy 对每一个 Hive 进行逻辑可用性测试,不可用加入黑名单,可用则将外部请求转达到该 Hive 上.
每隔一段时间, HAproxy 对黑名单进行统一处理,重启连接成功后会移回资源池中.