Hive数据仓库-大数据文档资料.docx
第8章数据仓库Hive
Hadoop回顾
?处理大数据非常简单
?高容错性,可扩展性,可伸缩性
?回顾一个简单的例子
一条HQL与一个上百行MR程序对比
selectword,count(*)
from(
select
explode(split(sentence.))
word
fromarticle
)t
groupbyword
使用Hadoop的缺点
?过于底层
?不够灵活,受语言约束笨重不堪
?数据操作很不清晰,代码量大难维护
?常见操作如排序,连接繁琐不堪且不高效
使用Hadoop的缺点
?缺乏高级抽象
?程序关注点是如何实现,而不是要实现什么
?大量时间浪费在调试无用的细节上
?类似C和汇编的对比
新的需求
?常见的操作是对原有的数据进行不断地转化、综合、分析
?转化步骤繁杂
?存在常见的模式,例如排序,连接等
?希望将关注点提高到单个步骤之上
?需要高层工具
改进思路
启发
?SQL语言
?用户友好
?描述问题本身
?在WordCount例子中:
?SELECTword,count(*)FROMdataGROUPBYword;
?简洁、直观、可维护性、可重用性强
启发
?更复杂的例子:
?SELECTword,count(*)counterFROMdataGROUPBYwordHAVINGcounter=10ORDERBYcounter;
?ORDERBY很难在MapReduce中实现
改进思路
?建立高层抽象,通过编译转化为MapReduce任务交给Hadoop执行
?Hive:使用类似SQL的语法
?Pig:使用PigLatin脚本
Hive是什么?
?Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
?本质是将HQL转换为MapReduce程序
Hive关注以下几点:
在Hadoop中的数据可扩展的SQL处理可扩展到100PB+
结构化和非结构化数据
Hive项目介绍
(/downloads.html)
?Facebook始创,现由Apache基金会支持
?15February2016:release2.0.0available
ThisreleaseworkswithHadoop2.x.y.Hive1.xlinewill
continuetobemaintainedwithHadoop1.x.ysupport.YoucanlookatthecompleteJIRAchangelogforthisrelease.
?适合于OLAP应用
在Hadoop生态圈的位置
建立在Hive之上的交换层
让传统DBA或者Java工程师
轻松就能完成更多的工作
最终转化成MapReduceJob
8.1Hive概述
Hive是一个基于Hadoop的数据仓库基础架构,它提供了数据存储管理和大型数据集的查询与分析的一系列工具,能够很方便地对存储于Hadoop文件系统中的数据进行简单地数据汇总、查询、分析等。Hive提供了一种类似于SQL语言来组织和查询数据,同时该类SQL语言也允许熟悉MapReduce的开发者开发自己定义的Mapper和Reducer来处理内建Mapper和Reducer无法完成的复杂分析任务。
时间
事件
2008年8月
Facebook把Hive项目贡献给Apache基金会。
2011年3月
Hive0.7.0版本发布,此版本为重大升级版本,增加了简单索引,HAING等众多高级特性。
2011年6月
Hive0.7.1版本发布,此版本修复了一些BUG,如在Windows上使用JDBC问题。
2011年12月
Hive0.8.0版本发布,此版本为重大升级版本,加BitmapIndexes、TIMESTAMPdatatype、PluginDeveloperKit、JDBCDriverImprovements等新特性。
2012年2月
Hive0.8.1版本发布,修复了一些BUG,如使Hive可以同时运行在Hadoop0.20.x与0.23.0上。
2012年4月
Hive0.9.0版本发布,重大改进版本,增加了对Hadoop1.0.0的支持、实现BETWEEN等特性。
2013年1月
Hive0.10.0版本发布,重大改进版本,如支持创建