
hive
achuo
IT码农,技术菜鸟,十年经验,技术渣渣
展开
-
基于Hadoop的数据仓库Hive 学习指南
【版权声明:本指南为厦门大学林子雨开设的《大数据技术原理与应用》课程新增配套学习资料,版权所有,转载请注明出处,请勿用于商业用途】本指南介绍了Hive,并详细指引读者安装Hive。 前面第几章学习指南已经指导大家安装Linux操作系统,并安装配置了Hadoop,但是这只表明我们已经安装好了Hadoop分布式文件系统,而Hive需要另外下载安装,本指南就是详细指导大家安装并配置Hive,完成转载 2016-05-12 19:43:36 · 8835 阅读 · 0 评论 -
[一起学Hive]之十三-Hive整合HBase,操作HBase表
十二、Hive整合HBase,操作HBase表HBase是被设计用来做k-v查询的,但有时候,也会遇到基于HBase表的复杂统计,写MR很不方便。Hive考虑到了这点,提供了操作HBase表的接口。关于Hive操作HBase表的原理,请参考我之前的博文: http://lxw1234.com/archives/2015/04/101.htm值得商榷的转载 2016-05-06 10:38:56 · 1068 阅读 · 1 评论 -
[一起学Hive]之十四-Hive的元数据表结构详解
之前在 “[一起学Hive]之一–Hive概述,Hive是什么”中介绍过,Hive自己维护了一套元数据,用户通过HQL查询时候,Hive首先需要结合元数据,将HQL翻译成MapReduce去执行。本文介绍一下Hive元数据中重要的一些表结构及用途,以Hive0.13为例。文章最后面,会以一个示例来全面了解一下,Hive的元数据是怎么生成和存储的。13.1 存储Hive版本的转载 2016-05-06 10:39:47 · 1391 阅读 · 0 评论 -
[一起学Hive]之十五-分析Hive表和分区的统计信息(Statistics)
类似于Oracle的分析表,Hive中也提供了分析表和分区的功能,通过自动和手动分析Hive表,将Hive表的一些统计信息存储到元数据中。表和分区的统计信息主要包括:行数、文件数、原始数据大小、所占存储大小、最后一次操作时间等;14.1 新表的统计信息对于一个新创建的表,默认情况下,如果通过INSERT OVERWRITE的方式插入数据,那么Hive会自动将该表或分区的统计转载 2016-05-06 10:40:38 · 2912 阅读 · 0 评论 -
[一起学Hive]之十六-Hive的WEB页面接口-HWI
Hive提供给用户的交互接口一般有三种:Hive命令行(Hive Command Line)、JDBC/ODBC以及Hive WEB Interface(HWI)。对于开发者来说,最常用的是Hive命令行。如果是将Hive开放给数据分析或数据运营人员做即席查询,那么使用Hive WEB页面接口(HWI)应该是比较方便的。本章就介绍一下Hive WEB页面接口(HWI)的配置和使用。以Hiv转载 2016-05-06 10:42:30 · 1426 阅读 · 0 评论 -
[一起学Hive]之十七-从Hive表中进行数据抽样-Sampling
在Hive中提供了数据取样(SAMPLING)的功能,用来从Hive表中根据一定的规则进行数据取样,Hive中的数据取样支持分桶表取样和数据块取样。16.1 数据块取样(Block Sampling)block_sample: TABLESAMPLE (n PERCENT)根据输入的inputSize,取样n%。比如:输入大小为1G,TABLESAMPLE (50转载 2016-05-06 10:43:19 · 879 阅读 · 0 评论 -
[一起学Hive]之十八-Hive UDF开发
Hive中,除了提供丰富的内置函数(见[一起学Hive]之二–Hive函数大全-完整版)之外,还允许用户使用Java开发自定义的UDF函数。开发自定义UDF函数有两种方式,一个是继承org.apache.hadoop.hive.ql.exec.UDF,另一个是继承org.apache.hadoop.hive.ql.udf.generic.GenericUDF;如果是针对简单的数据类转载 2016-05-06 10:45:25 · 851 阅读 · 0 评论 -
[一起学Hive]之十九-使用Hive API分析HQL的执行计划、Job数量和表的血缘关系
本文介绍使用Hive的API获取一条HQL的最终执行计划,从而获取这条HQL的Job数量,另外,介绍使用API分析一条HQL中所包含的输入表和输出表。这些信息在做元数据管理和Hive表的血缘分析时候很有用。Hive在执行一条HQL的时候,会经过以下步骤:语法解析:Antlr定义SQL的语法规则,完成SQL词法,语法解析,将SQL转化为抽象 语法树AST Tree;语义解析:遍历AS转载 2016-05-06 10:46:07 · 1622 阅读 · 0 评论 -
[一起学Hive]之二十-自定义HiveServer2的用户安全认证
HiveServer2提供了JDBC链接操作Hive的功能,非常实用,但如果在使用HiveServer2时候,不注意安全控制,将非常危险,因为任何人都可以作为超级用户来操作Hive及HDFS数据。比如:在配置HiveServer2的时候,hive.server2.authentication=NONE,表示没有用户认证。使用beeline,模拟成超级用户hadoop,成功连接到转载 2016-05-06 10:46:49 · 5145 阅读 · 0 评论 -
Hadoop Hive安装,配置mysql元数据库
由于Hive依赖于Hadoop,安装Hive之前必须确认Hadoop可用,关于Hadoop的安装可以参考集群分布式 Hadoop安装详细步骤,这里不再叙述。1.下载Hive安装包 下载地址为:http://www.apache.org/dyn/closer.cgi/hive(或点击下面链接),选择一个稳定版本,假设下载的版本为:apache-hive-1.0.1-bin.tar转载 2016-05-30 14:43:17 · 590 阅读 · 0 评论 -
[一起学Hive]之十二-Hive SQL的优化
十一、Hive SQL的优化 本章只是从HQL层面介绍一下,日常开发HQL中需要注意的一些优化点,不涉及Hadoop层面的参数、配置等优化。其中大部分是我之前发过的博客文章,这里整理了下。11.1 使用分区剪裁、列剪裁在SELECT中,只拿需要的列,如果有,尽量使用分区过滤,少用SELECT *。在分区剪裁中,当使用外关联时,如果将副表的过滤条件写在转载 2016-05-06 10:38:08 · 409 阅读 · 0 评论 -
[一起学Hive]之十一-Hive中Join的类型和用法
Hive中除了支持和传统数据库中一样的内关联、左关联、右关联、全关联,还支持LEFT SEMI JOIN和CROSS JOIN,但这两种JOIN类型也可以用前面的代替。注意:Hive中Join的关联键必须在ON ()中指定,不能在Where中指定,否则就会先做笛卡尔积,再过滤。数据准备:hive> desc lxw1234_a;OKid转载 2016-05-06 10:37:28 · 817 阅读 · 0 评论 -
[一起学Hive]之十-Hive中Join的原理和机制
九、Hive中Join的原理和机制笼统的说,Hive中的Join可分为Common Join(Reduce阶段完成join)和Map Join(Map阶段完成join)。本文简单介绍一下两种join的原理和机制。9.1 Hive Common Join如果不指定MapJoin或者不符合MapJoin的条件,那么Hive解析器会将Join操作转换成Common Join,即:转载 2016-05-06 10:36:35 · 502 阅读 · 0 评论 -
[一起学Hive]之一–Hive概述,Hive是什么
1. Hive是什么Hive是基于Hadoop的数据仓库解决方案。由于Hadoop本身在数据存储和计算方面有很好的可扩展性和高容错性,因此使用Hive构建的数据仓库也秉承了这些特性。这是来自官方的解释。简单来说,Hive就是在Hadoop上架了一层SQL接口,可以将SQL翻译成MapReduce去Hadoop上执行,这样就使得数据开发和分析人员很方便的使用SQL来完成海量数转载 2016-05-06 10:28:02 · 558 阅读 · 0 评论 -
[一起学Hive]之二–Hive函数大全-完整版
Hive函数大全–完整版现在虽然有很多SQL ON Hadoop的解决方案,像Spark SQL、Impala、Presto等等,但就目前来看,在基于Hadoop的大数据分析平台、数据仓库中,Hive仍然是不可替代的角色。尽管它的相应延迟大,尽管它启动MapReduce的时间相当长,但是它太方便、功能太强大了,做离线批量计算、ad-hoc查询甚至是实现数据挖掘算法,而且,和HBase、Sp转载 2016-05-06 10:29:19 · 1012 阅读 · 0 评论 -
[一起学Hive]之三–Hive中的数据库(Database)和表(Table)
在前面的文章中,介绍了可以把Hive当成一个“数据库”,它也具备传统数据库的数据单元,数据库(Database/Schema)和表(Table)。本文介绍一下Hive中的数据库(Database/Schema)和表(Table)的基础知识,由于篇幅原因,这里只是一些常用的、基础的。二、Hive的数据库和表先看一张草图:Hive结构从图上可以看出,Hi转载 2016-05-06 10:30:18 · 1969 阅读 · 0 评论 -
[一起学Hive]之四-Hive的安装配置
其实Hive的安装配置应该放在第二章来介绍,晚了些,希望对Hive初学者有用。三、Hive的安装配置3.1 环境需求Hadoop ClientMysql3.2 下载并解压Hive0.13.1安装包下载地址:http://archive.apache.org/dist/hive/hive-0.13.1/apache-hive-0.13.1-bin.tar.gz转载 2016-05-06 10:31:08 · 478 阅读 · 0 评论 -
[一起学Hive]之五-Hive的视图和分区
同关系型数据库一样,Hive中也支持视图(View)和分区(Partition),但与关系型数据库中的有所区别,本文简单介绍Hive中视图和分区的示例。在真实业务场景下,视图的应用比较少,分区使用的非常多,因此建议对分区这块多花的时间来了解。 四、Hive的视图和分区4.1 Hive中的视图和关系型数据库一样,Hive中也提供了视图的功能,注意Hive中视图转载 2016-05-06 10:32:15 · 603 阅读 · 0 评论 -
[一起学Hive]之六-Hive的动态分区
前面文章介绍了Hive中是支持分区的。关系型数据库(如Oracle)中,对分区表Insert数据时候,数据库自动会根据分区字段的值,将数据插入到相应的分区中,Hive中也提供了类似的机制,即动态分区(Dynamic Partition),只不过,使用Hive的动态分区,需要进行相应的配置。先看一个应用场景,源表t_lxw1234的数据如下: SELECT day,ur转载 2016-05-06 10:34:00 · 344 阅读 · 0 评论 -
[一起学Hive]之七-向Hive表中加载数据
在Hive中建好表之后,需要将数据加载进来,以便做后续查询分析,本文介绍向Hive表中加载数据的几种方式。6.1 建表时候直接指定如果你的数据已经在HDFS上存在,已经为结构化数据,并且数据所在的HDFS路径不需要维护,那么可以直接在建表的时候使用location指定数据所在的HDFS路径即可。比如: CREATE [EXTERNAL] TABLE t_lxw1234转载 2016-05-06 10:34:33 · 846 阅读 · 0 评论 -
[一起学Hive]之八-使用Hive命令行
Hive提供的几种用户交互接口中,最常用的就是命令行接口。本文简单介绍一下Hive命令行接口(Hive Command Line)及Hive交互Shell(Hive Interactive Shell)的一些使用。七、使用Hive命令行7.1 Hive Command Line输入$HIVE_HOME/bin/hive –H 或者 –help可以显示帮助选项:转载 2016-05-06 10:35:05 · 1053 阅读 · 0 评论 -
[一起学Hive]之九-Hive的查询语句SELECT
八、Hive的查询语句SELECT在所有的数据库系统中,SELECT语句是使用最多,也最复杂的一块,Hive中的查询语句SELECT支持的语法当然也比较复杂,本文只能尽力去介绍。8.1 基础查询语法Hive中的SELECT基础语法和标准SQL语法基本一致,支持WHERE、DISTINCT、GROUP BY、ORDER BY、HAVING、LIMIT、子查询等;语法如下:转载 2016-05-06 10:35:50 · 2803 阅读 · 0 评论 -
Hive安装配置
普及:什么是HIVEHive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL ),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL ,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapp转载 2016-05-30 14:46:07 · 2515 阅读 · 2 评论