`
genius_bai
  • 浏览: 81728 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

[Hadoop] Hive HQL

阅读更多

[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 Hive 是一个基于 Hadoop 的数据仓库工具,用于处理和分析大量分布式数据。它提供了SQL-like查询语言,称为HQL,使得非程序员也能方便地进行大数据分析。以下是对Hadoop Hive入门学习的详细总结: ### 1. ...

    jdbc连接hadoop hive2所需要的jar包

    这样,Kettle就可以通过Hive JDBC驱动连接到Hadoop上的Hive服务,执行HQL查询或操作Hive表。 配置过程通常包括以下步骤: 1. 将所有必要的jar包复制到Kettle的lib目录下。 2. 在Kettle的Job或Transformation中,...

    hadoop Hive学习配套数据

    Hive是Apache软件基金会开发的一个数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)语言来查询、管理和处理存储在Hadoop分布式文件系统(HDFS)上的大型数据集。这个压缩包文件包含了在Hive学习过程中...

    淘宝技术嘉年华\HadoopHive.

    Hive则是建立在Hadoop之上的数据仓库工具,它允许用户使用SQL(HQL,Hive Query Language)语言对大规模数据集进行查询和分析。Hive的设计目标是提供一个简单、易用的接口,让熟悉SQL的分析师能够快速地对大数据进行...

    Hadoop+ZooKeeper+HBase+hive(HQL)安装步骤

    Hadoop+ZooKeeper+HBase+hive(HQL)安装步骤

    Hive开发规范及要点

    它提供了一个SQL-like的查询语言,称为HQL(Hive Query Language),使得用户可以使用类似SQL的语句来查询和管理数据。在Hive开发中,遵循一定的规范和要点非常重要,以下是Hive开发规范及要点: 一、基本操作 1. ...

    hadoop,hbase,hive版本兼容性说明.zip

    Hive是Facebook开发的一个数据仓库工具,它将SQL-like查询语言(HQL)转换为MapReduce任务,用于分析存储在Hadoop上的大量数据。Hive与Hadoop和HBase的兼容性主要体现在数据存储和查询上。例如,Hive可能需要与...

    hadoop,hive,hbase学习资料

    4. **Hive学习笔记.pdf**:Hive的学习笔记通常会涵盖HQL(Hive Query Language)、表的创建与管理、数据加载与查询优化等内容,适用于数据分析人员。 5. **分布式并行数据库集群在海量数据处理上的应用.pdf**:这份...

    Hadoop和Hive的安装配置

    Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据集,而Hive则是一个基于Hadoop的数据仓库工具,提供了SQL-like查询语言(HQL)来方便地管理和分析存储在Hadoop上的大量数据。 **Hadoop的安装配置** 1. ...

    Hive及Hadoop作业调优

    Hive提供了一种HQL(Hive SQL)查询语言,用于执行数据查询和分析。Hive尤其适合进行大数据集上的批处理工作,因此,在大数据存储与处理中占有重要地位。 接着,Hadoop是一个由Apache基金会开发的分布式系统基础...

    HadoopHive与Hbase整合中文最新版本

    但由于hbase没有类sql查询方式,所以操作和计算数据非常不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库 本文的目的是要讲述如何让Hbase和Hive能互相访问,让Hadoop/Hbase/Hive协同...

    Hadoop数据仓库--hive介绍

    Hive 是一个基于 Hadoop 的数据仓库工具,它允许用户使用类似于 SQL 的查询语言(称为 HiveQL 或 HQL)对大规模数据集进行分析和处理。Hive 的设计初衷是为了简化大数据处理,使得非编程背景的用户也能方便地进行...

    hadoop+hive环境安装包.rar

    Hadoop是一个开源框架,主要用于分布式存储和计算大规模数据,而Hive则是建立在Hadoop之上的一种数据仓库工具,它提供了一种SQL-like的查询语言(HQL)来处理和分析大数据。下面将详细介绍这两个组件的安装过程以及...

    hadoop安装文件.rar,内涵hadoop安装的步骤word,hadoop、hive、hbase、sqoop、mysql等

    接下来是Hive,它是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL(HQL)查询功能,方便数据分析师进行大数据分析。安装Hive时,我们需要先确保Hadoop已经正常运行,然后下载Hive...

    Linux hadoop,hive,javajdk,mysql数据库等压缩包

    Hive是构建在Hadoop之上的数据仓库工具,它允许用户使用SQL-like查询语言(称为HQL)来处理存储在HDFS上的结构化数据。Hive提供了数据汇总、分析和查询功能,对于大数据处理非常有用。`apache-hive-2.3.4-bin.tar.gz...

    hadoop-hive的知识点总结

    hadoop-hive的hql知识点详细总结,纯干货,建表,分区,分桶,hive的dml语句,hive的函数,hive的序列化与反序列化

    HADOOP 系统之hadoop pig hive 整合版

    **Hive** 是基于Hadoop的数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供SQL-like查询语言(HQL)来查询数据。Hive适合做批处理分析,尤其适合那些不频繁改变查询模式的场景。《Programming Hive》...

Global site tag (gtag.js) - Google Analytics