赞
踩
数据仓库的概念
根本目的:基于数据仓库的分析结果->以支持企业内部的商业分析和决策->作出相关的经营决策
数据仓库的体系结构:
数据仓库和传统数据库区别
仓库中的数据是相对稳定的,不会频繁发生变化,存储大量的历史数据
数据仓库基本上保留了历史上所有数据,保留历史而传统观数据库只能保留某一时刻状态的信息
传统数据仓库(基于关系型数据库)面临挑战
Hive特点
其架构于Hadoop之上,Hadoop有支持大规模数据存储的组件HDFS,以及支持大规模数据处理的组件MapReduce
Hive借助于这两个组件,完成数据的存储和处理
- 其依赖分布式文件系统HDFS存储睡
- 依赖分布式并行计算系统MapReduce处理数据
- 借鉴SQL语言设计了新的查询语言HiveQL
Hive总结
Hive两个方面的特性
采用批处理的方式处理海量数据
Hive提供了一系列对数据仓库进行提取、转换、加载(ETL)的工具
Hive与Hadoop生态的其他组件的关系
Pig和Hive的区别
Pig更适合做数据的实时分析,而不是海量数据的批处理,主要是做数据的抽取、转换、加载环节
Hive和传统数据库的区别
其在很多方面与传统关系型数据库类似,但是其底层以来的是HDFS和MapReduce,所以在很多方面又有别于传统数据库
Hive在企业大数据分析平台中的应用
Mahout:Hadoop平台上的开源组件,很多机器学习的算法,在Mahout上都已经实现了
Hive在Fackbook公司的应用
Fackbook是Hive数据仓库的开发者
FaceBook部署了大量的Web服务器
Web服务器日志流通过订阅服务器(Scribe Servers)将日志流收集整理,存入Filers(网络日志服务器)
Filers将其保存在分布式文件系统之上
Hive系统架构
Hive对外访问接口
驱动模块(Driver)
元数据存储模块(Metastore)
Qubbole、Karmasphere、Hue也可以直接访问Hive
Hive HA(High Availability)基本原理
Hive很多时候会表现出不稳定
Hive HA:在集群中设置多个Hive实例,并统一放入资源池,外部所有访问通过HAProxy进行访问
首先用户访问HA Proxy
然后对Hive实例进行逻辑可用性测试,若不可用,则将其加入黑名单,继续测试下一个Hive实例是否可用
每隔一定的周期,HA Proxy会重新对列入黑名单的实例进行统一处理
SQL中的连接操作转换为MapReduce作业
Join的实现原理
连接操作
编写一个Map处理逻辑
Map处理逻辑输入关系数据库的表
通过Map对它进行转换,生成一系列键值对
group by的实现原理
Hive如何将SQL语句转为MapReduce操作:当用户向Hive输入一段命令或者查询时,Hive需要和Hadoop交互工作来完成该操作
驱动模块接受该命令或者查询编译器
对该命令或查询进行解析编译
由优化器对该命令或查询进行优化计算
该命令或查询通过执行器进行执行
具体分为七步骤
简单说明
Hive是建立在Hadoop平台之上,且其依赖底层的MapReduce和HDFS,所以它的延迟比较高
Impala底层也是构建在HDFS和HBase之上
Impala系统架构
Impala的典型组件
Impalad:负责具体相关的查询任务
其包含三个模块:
Impalad作用
State Store:负责元数据数据管理和状态管理
每个查询提交,系统会为其创建一个StateStored进程
作用
CLI:用户访问接口
作用
- Impala的元数据是直接存储在Hive中的,它是借助Hive来存储Impala的元数据
- mpala采用与Hive相同的元数据、相同的SQL语法、相同的ODBC驱动程序和用户接口
- 在—个Hadoop平台上可以统一部署Hive和Impala等分析工 实现在一个平台上面可以同时满足批处理和实时查询
查询执行过程框图
0.注册和订阅
1.提交查询
2.获取元数据和数据地址
3.分发查询任务
汇聚结果
返回结果
Hive和Impala的不同点
Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询
Hive依赖于MapReduce计算框架,Impala把执行计划表现为一棵完整的执行计划树,直接分发执行计划到各个Impalad执行查询
Hive在执行过程中,如果内存放不下所有数据则会使用外存,以保证查询能顺序执行完成;
Impala在遇到内存放不下数据时,不会利用外存所以Impala目前处理查询时会受到一定的限制
Hive和Impala的相同点
总结
Hive数据类型
Create:创建数据库、表、视图
创建数据库
创建表
创建视图
查看数据库
查看表和视图
load:向表中装载数据
Insert:向表中插入数据或从表中导出数据
WordCount算法在MapReduce中的编程实现和在Hive中编程实现的主要不同点
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。