
Hive
文章平均质量分 68
iteye_1868
这个作者很懒,什么都没留下…
展开
-
深入学习《Programing Hive》:初识Hive
Hive是一个基于Hadoop分布式系统上的数据仓库,最早是由Facebook公司开发的,Hive极大的推进了Hadoop ecosystem在数据仓库方面上的发展。 Facebook的分析人员中很多工程师比较擅长而SQL而不善于开发MapReduce程序,为此开发出Hive,并对比较熟悉SQL的工程师提供了一套新的SQL-like方言——Hive QL。 ...原创 2013-05-06 22:56:30 · 132 阅读 · 0 评论 -
CentOS 6.4 hadoop集成Hive
在本节中,我们来学习如何安装Hive。在之前我们已经学习过如何在CentOS上安装Hadoop,详情请参看[url=http://flyingdutchman.iteye.com/admin/blogs/1897181]CentOS 6.4 安装伪分布式Hadoop 1.0.3 [/url],这里不再赘述。 第一步,下载并解压Hive的tar文件:[quote...原创 2013-07-09 01:58:20 · 160 阅读 · 0 评论 -
深入学习《Programing Hive》:Tuning
HiveQL是一种声明式语言,最终会被编译为MapReduce job提交到Hadoop执行。大多情况下,用户并不需要知道Hive是如何运作——只关注手头的业务处理问题就行了。虽然Hive引擎会在在HiveQL语句编译过程中最许多的复杂的工作——查询解析、规划、优化和执行等复杂过程,但是用户大部分时间都可以无视这些过程。 然而,随着Hive的使用,用户会变得越来越...原创 2013-05-20 12:07:26 · 142 阅读 · 0 评论 -
深入学习《Programing Hive》:模式设计(Schema Design)
对那些使用传统数据库的用户来说,Hive看上去和使用上都很向传统的关系型数据库:有相似的命名法,和传统SQL特别是MySQL方言很相似的HiveQL方言,然而Hive在实现上和使用上都和之前的传统数据库有很大的不同。通常情况下,用户尝试使用关系数据库世界的范式,实际上是Hive反模式。 本节我们重点介绍一些用户可能已使用过的模式和尽量要避免的反模式。 ...原创 2013-05-19 23:00:33 · 163 阅读 · 0 评论 -
深入学习《Programing Hive》:Hive自定义函数之UDF
为了满足用户的个性化需求,Hive被设计成了一个很开放的系统,很多内容都可以定制,主要包括: 1)、文件格式; 2)、内存中的数据格式,如Hadoop的Writable/Text; 3)、用户提供的MapReduce脚本,不管使用何种语言都可以通过标准的stdin/stdout传输...原创 2013-05-18 15:29:15 · 114 阅读 · 0 评论 -
深入学习《Programing Hive》:RCFile
在当前的基于Hadoop系统的数据仓库中,数据存储格式是影响数据仓库性能的一个重要因素。Facebook于是提出了集行存储和列存储的优点于一身的RCFile文件存储格式,据说当前在Facebook公司内部,其数据仓库的文件存储格式都是RCFile,另外盛大内部的数据仓库使用的也是RCFile文件存储格式。 我们现在正在进入一个大数据时代,何为“大数据”?它不仅仅就...原创 2013-05-17 17:41:19 · 125 阅读 · 0 评论 -
深入学习《Programing Hive》:数据压缩
Hive使用的是Hadoop的文件系统和文件格式,比如TEXTFILE,SEQUENCEFILE等。 在Hive中对中间数据或最终数据数据做压缩,是提高数据吞吐量和性能的一种手段。对数据做压缩,可以大量减少磁盘的存储空间,比如基于文本的数据文件,可以将文件压缩40%或更多,同时压缩后的文件在磁盘间传输和I/O也会大大减少;当然压缩和解压缩也会带来额外的CPU开...原创 2013-05-17 15:19:20 · 124 阅读 · 0 评论 -
深入学习《Programing Hive》:HiveQL索引
Hive提供有限的索引功能,这不像传统的关系型数据库那样有“键(key)”的概念,用户可以在某些列上创建索引来加速某些操作,给一个表创建的索引数据被保存在另外的表中。 Hive的索引功能现在还相对较晚,提供的选项还较少。但是,索引被设计为可使用内置的可插拔的java代码来定制,用户可以扩展这个功能来满足自己的需求。 当然不是说有的查询都会受惠于H...原创 2013-05-16 17:49:03 · 216 阅读 · 0 评论 -
深入学习《Programing Hive》:HiveQL查询(3)
[size=large][b]DISTRIBUTE BY[/b][/size] 我们都知道,MapReduce模型是默认是通过hashPartitioner()函数将key/value的keys的hash值来数据分发到对应的Reducers,[b]DISTRIBUTE BY[/b]可以让用户来控制如何将key/value对分发到哪个Reducer。 ...原创 2013-05-15 15:02:38 · 134 阅读 · 0 评论 -
深入学习《Programing Hive》:HiveQL查询(2)
[b]浮点比较陷阱[/b] 在[b]WHERE[/b]查询条件中:在比较不同类型的数值(如FLOAT vs DOUBLE)时,会引发[b]浮点比较陷阱[/b]。 看下面的HiveQL语句,本来只想要查询Federal Taxes > 0.2,但是返回结果如下:[code="java"] hive> SELECT na...原创 2013-05-15 13:07:31 · 141 阅读 · 0 评论 -
深入学习《Programing Hive》:HiveQL查询(1)
前几章已经学习过Hive表的定义和数据操纵,本章我们开始学习HiveQL查询。 [size=large][b]SELECT ... FROM ...查询[/b][/size] SELECT在SQL中是一个投影操作。让我们从新来看之前定义过的分区表employees:[code="java"] CREATE TABLE...原创 2013-05-14 23:37:34 · 203 阅读 · 0 评论 -
深入学习《Programing Hive》:数据操纵DML(Data Manipulation Language)
本节继续讨论HiveQL,Hive查询语言,如何向Hive表中添加数据,操纵数据和从表中将数据提取到文件系统。 之前已经学习过Hive表的创建,本节主要关注向表中填充数据,使表中有数据可供查询。 先行创建本节要使用的表employees:[code="java"] CREATE TABLE employees ( ...原创 2013-05-14 17:27:00 · 245 阅读 · 0 评论 -
深入学习《Programing Hive》:Hive的DDL数据定义操作
在上一节《深入学习《Programing Hive》:Hive的数据模型(表)》中,已经学习过表的定义,接下来接着学习Hive的DDL操作。 [b]复制表结构:[/b][code="java"] CREATE TABLE IF NOT EXISTS students2 LIKE students; [/...原创 2013-05-07 23:24:09 · 126 阅读 · 0 评论 -
深入学习《Programing Hive》:Hive的数据模型(表)
[b]Hive的数据类型[/b] Hive的基本数据类型有:TINYINT,SAMLLINT,INT,BIGINT,BOOLEAN,FLOAT,DOUBLE,STRING,TIMESTAMP(V0.8.0+)和BINARY(V0.8.0+)。 Hive的集合类型有:STRUCT,MAP和ARRAY。 Hive...原创 2013-05-07 01:01:30 · 212 阅读 · 0 评论 -
CentOS 6.4 hadoop集成 Hbase Hive
在之前的[url=http://flyingdutchman.iteye.com/admin/blogs/1902210]CentOS 5.4 hadoop集成 Hbase[/url]和[url=http://flyingdutchman.iteye.com/admin/blogs/1901639]CentOS 5.4 hadoop集成Hive[/url]两个章节中,我们已经学习...原创 2013-07-10 00:05:08 · 215 阅读 · 0 评论