《Hadoop生态》——第二章 数据库与数据管理——Hive

Hive


这里写图片描述

许可证: Apache License, Version 2.0
活跃度:
目的: 数据交互
官方地址: http://hive.apache.org
Hadoop集成: 完全集成

首先所有对在Hadoop集群上数据的访问都是通过用Java写的MapReduce任务完成的。当所有的Hadoop用户有了一个比较稳定的Java牛人团队的时候,这个在Hadoop发展初期效果是相当好的。但是随着Hadoop融入到更为广泛的领域,许多人都想用Hadoop,但是对于经常写SQL的码农,这些人还要写MapReduce,那么对于他们来讲还是一个比较艰难的学习过程。学Hive吧。Hive的目标就是让SQL在HDFS中访问数据。Apache Hive数据仓库软件推进了在HDFS中大数据的查询和保存管理工作。Hive定义了一种类似于SQL的查询语言,成为HQL,它可以让用户用类似于SQL的语言查询数据。Hive可以把HQL转换为HDFS编码,并由Hadoop执行。但是必须注意,HQL不是完全的ANSI标准的SQL。虽然基本的东西还是都有的,但是有些特征就没了。下面是2015年初的部分列表:

  • Hive不支持不等的连接条件。
  • 不支持更新和删除声明。
  • 不支持事务。

你可能不需要这些,但是你要运行第三方解决方案生成的代码,你可能会生成非Hive编译代码。

Hive没有强制读写数据必须是“Hive格式”的——没有这么一说。这就是说你的数据可以直接用Hive访问而且不需要传统关系型数据库典型要求的如抽取,转换,加载(ETL)预处理。

教程链接

官方Hive教程有很多好资源,HortonWorks上也有发行的视频。

示例代码

假设我们有一个逗号分隔(CSV)的值文件,它是电影评论,并且有关于评论人,电影以及打分的信息。

Kevin,Dune,10
Marshall,Dune,1
Kevin,Casablanca,5
Bob,Blazing Saddles,9

首先要为数据定义一个图表:

CREATE TABLE movie_reviews ( reviewer STRING, title STRING, rating INT)
ROW FORMAT DELIMITED
FILEDS TERMINATED BY ‘\,’
STORED AS TEXTFILE

然后我们通过指向电影评论文件中的表加载数据。因为Hive不要求数据必须是某种指定的格式,加载一个表就是简单地用Hive指向HDFS中的文件:

LOAD DATA LOCAL INPATH ‘reviews.csv’
OVERWRITE INTO TABLE movie_reviews

现在我们已经准备做分析。假设在这种情况下,我们想找出电影Dune的平均打分:

Select AVG(rating) FROM movie_reviews WHERE title = ‘Dune’;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值