[Hadoop] Hive HQL
http://wiki.apache.org/hadoop/Hive/GettingStarted
Hive Shell 例子
设置Map和Reduce
set mapred.map.tasks=1;
SET mapred.reduce.tasks=1;
http://www.cxrs.org/SQL/10584.html
CREATE TABLE pokes (foo INT, bar STRING);
/user/hive/warehouse/pokes
CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);
SHOW TABLES;
SHOW TABLES '.*s';
ALTER TABLE pokes ADD COLUMNS (new_col INT);
ALTER TABLE invites ADD COLUMNS (new_col2 INT COMMENT 'a comment');
ALTER TABLE events RENAME TO 3koobecaf;
DROP TABLE pokes;
DML 操作
默认列之间,用"",new String(new byte[]{1})进行分隔。
一般表
LOAD DATA LOCAL INPATH './examples/files/kv1.txt' OVERWRITE INTO TABLE pokes;
分区表
LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15');
LOAD DATA LOCAL INPATH './examples/files/kv3.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-08');
LOAD DATA INPATH '/user/myname/kv2.txt' OVERWRITE INTO TABLE invites PARTITION (ds='2008-08-15');
SQL操作
设置MR参数
SET mapred.reduce.tasks=1;
查看当前所有参数
SET -v ;
查询
SELECT a.foo FROM invites a WHERE a.ds='2008-08-15';
INSERT OVERWRITE DIRECTORY '/tmp/hdfs_out' SELECT a.* FROM invites a WHERE a.ds='<DATE>';
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/local_out' SELECT a.* FROM pokes a;
INSERT OVERWRITE TABLE events SELECT a.* FROM profiles a;
INSERT OVERWRITE TABLE events SELECT a.* FROM profiles a WHERE a.key < 100;
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/reg_3' SELECT a.* FROM events a;
INSERT OVERWRITE DIRECTORY '/tmp/reg_4' select a.invites, a.pokes FROM profiles a;
INSERT OVERWRITE DIRECTORY '/tmp/reg_5' SELECT COUNT(1) FROM invites a WHERE a.ds='<DATE>';
INSERT OVERWRITE DIRECTORY '/tmp/reg_5' SELECT a.foo, a.bar FROM invites a;
INSERT OVERWRITE LOCAL DIRECTORY '/tmp/sum' SELECT SUM(a.pc) FROM pc1 a;
Sum of a column. avg, min, max can also be used
双Partition Table,可以按天,按小时分配数据
CREATE TABLE day_hour_ptable (id INT, content STRING) PARTITIONED BY (ds STRING, hour string);
LOAD DATA LOCAL INPATH './examples/files/kv2.txt' OVERWRITE INTO TABLE day_hour_ptable PARTITION (ds='2008-04-01',hour='01');
LOAD DATA LOCAL INPATH './examples/files/kv3.txt' OVERWRITE INTO TABLE day_hour_ptable PARTITION (ds='2008-04-01',hour='02');
select * from day_hour_ptable a where a.ds='2008-04-01' and a.hour='01' and a.id=238;
生成1天,24小时的数据,启用下列语句的时候,Hadoop生成24个Map。
set mapred.map.tasks=1;
SET mapred.reduce.tasks=1;
select count(a.id) from day_hour_ptable a where a.ds='2008-04-01' and a.hour='01';
执行时间:23秒
SET mapred.reduce.tasks=24;
select count(a.id) from day_hour_ptable a;
执行时间:37秒
创建用'\t'作为表的原始文件分隔符,取代''
CREATE TABLE u_data (
userid INT,
movieid INT,
rating INT,
unixtime STRING)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE;
创建分析Apache Web log的数据表
CREATE TABLE apachelog (
host STRING,
identity STRING,
user STRING,
time STRING,
request STRING,
status STRING,
size STRING,
referer STRING,
agent STRING)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*)(?: ([^ \"]*|\"[^\"]*\") ([^ \"]*|\"[^\"]*\"))?",
"output.format.string" = "%1$s %2$s %3$s %4$s %5$s %6$s %7$s %8$s %9$s"
)
STORED AS TEXTFILE;
Hive QL例子
hive-0.3.99.1+0\examples
D:\7g\Personal\Resources\Architecture\Hadoop\hive-0.3.99.1+0\src\ql\src\test\queries\clientnegative
分享到:
相关推荐
Hadoop Hive 是一个基于 Hadoop 的数据仓库工具,用于处理和分析大量分布式数据。它提供了SQL-like查询语言,称为HQL,使得非程序员也能方便地进行大数据分析。以下是对Hadoop Hive入门学习的详细总结: ### 1. ...
这样,Kettle就可以通过Hive JDBC驱动连接到Hadoop上的Hive服务,执行HQL查询或操作Hive表。 配置过程通常包括以下步骤: 1. 将所有必要的jar包复制到Kettle的lib目录下。 2. 在Kettle的Job或Transformation中,...
Hive是Apache软件基金会开发的一个数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)语言来查询、管理和处理存储在Hadoop分布式文件系统(HDFS)上的大型数据集。这个压缩包文件包含了在Hive学习过程中...
Hive则是建立在Hadoop之上的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)语言对大规模数据集进行查询和分析。Hive的设计目标是提供一个简单、易用的接口,让熟悉SQL的分析师能够快速地对大数据进行...
Hadoop+ZooKeeper+HBase+hive(HQL)安装步骤
它提供了一个SQL-like的查询语言,称为HQL(Hive Query Language),使得用户可以使用类似SQL的语句来查询和管理数据。在Hive开发中,遵循一定的规范和要点非常重要,以下是Hive开发规范及要点: 一、基本操作 1. ...
Hive是Facebook开发的一个数据仓库工具,它将SQL-like查询语言(HQL)转换为MapReduce任务,用于分析存储在Hadoop上的大量数据。Hive与Hadoop和HBase的兼容性主要体现在数据存储和查询上。例如,Hive可能需要与...
4. **Hive学习笔记.pdf**:Hive的学习笔记通常会涵盖HQL(Hive Query Language)、表的创建与管理、数据加载与查询优化等内容,适用于数据分析人员。 5. **分布式并行数据库集群在海量数据处理上的应用.pdf**:这份...
Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据集,而Hive则是一个基于Hadoop的数据仓库工具,提供了SQL-like查询语言(HQL)来方便地管理和分析存储在Hadoop上的大量数据。 **Hadoop的安装配置** 1. ...
Hive提供了一种HQL(Hive SQL)查询语言,用于执行数据查询和分析。Hive尤其适合进行大数据集上的批处理工作,因此,在大数据存储与处理中占有重要地位。 接着,Hadoop是一个由Apache基金会开发的分布式系统基础...
Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户使用类似于 SQL 的查询语言(称为 HiveQL 或 HQL)对大规模数据集进行分析和处理。Hive 的设计初衷是为了简化大数据处理,使得非编程背景的用户也能方便地进行...
Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据,而Hive则是建立在Hadoop之上的一种数据仓库工具,它提供了一种SQL-like的查询语言(HQL)来处理和分析大数据。下面将详细介绍这两个组件的安装过程以及...
接下来是Hive,它是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL(HQL)查询功能,方便数据分析师进行大数据分析。安装Hive时,我们需要先确保Hadoop已经正常运行,然后下载Hive...
Hive是构建在Hadoop之上的数据仓库工具,它允许用户使用SQL-like查询语言(称为HQL)来处理存储在HDFS上的结构化数据。Hive提供了数据汇总、分析和查询功能,对于大数据处理非常有用。`apache-hive-2.3.4-bin.tar.gz...
hadoop-hive的hql知识点详细总结,纯干货,建表,分区,分桶,hive的dml语句,hive的函数,hive的序列化与反序列化
**Hive** 是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL-like查询语言(HQL)来查询数据。Hive适合做批处理分析,尤其适合那些不频繁改变查询模式的场景。《Programming Hive》...
接下来是Hive,它是建立在Hadoop之上的数据仓库工具,允许用户使用SQL(称为HQL)对大数据进行查询和分析。Hive将SQL语句转换为MapReduce任务,简化了对Hadoop集群的数据操作。Hive有以下核心概念: 1. 表和分区:...