HIVE 牛刀小试 (伪分布式版本)

最近一直用hadoop处理数据,处理完以后要对数据进行分析,由于我们的数据不是很大,每次我都是把要分析的文件从hdfs下载到本地,然后再用python、shell脚本进行分析与统计,那hadoop生态系统中都有什么数据分析工具呢,目前据我所知,有两个:pig和hive。因为pig我以前看过,需要用Pig Lation(pig自己的脚本语言),为了省事,我这次直接看基于sql语句的hive。pig与hive的区别《Hadoop in action》书中是这么定义的:

Pig----A high-level data flow language

Hive------A SQL-like data warehouse infrastructure

废话不多说,直接实战:

第一步:配置hadoop环境

首先需要在本地搭建好hadoop运行环境,这里我用的是伪分布式版,具体可以参照我这篇文章:http://blog.csdn.net/jiacai2050/article/details/7872708

第二步:下载hive

在apache的官网,我下载的是这么一个文件hive-0.11.0.tar.gz

第三步:配置hive

由于hive需要存放metastore,这里我们使用JDBC compliant(即JDBC兼容)数据库,hive自带了一个Derby,我们用自带的即可,这里无需做任何操作。

第四步:配置环境变量

把hive/bin加到path中,编辑.profile文件,可以输入以下命令:

vim ~/.profile

我机器的配置这么样的:

export HADOOP_HOME="/home/liujiacai/hadoop"
export HIVE_HOME="/home/liujiacai/hive"
export PATH=$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH 

这么配置好,以后在执行hadoop相关命令时有可能会出现个warning,提示$HADOOP_HOME is deprecated,在hadoop/conf/hadoop-env.sh文件中添加这么一行就行了:

export HADOOP_HOME_WARN_SUPPRESS="TRUE"

然后再执行以下命令:

$ $HADOOP_HOME/bin/hadoop fs -mkdir       /tmp
$ $HADOOP_HOME/bin/hadoop fs -mkdir       /user/hive/warehouse
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /tmp
$ $HADOOP_HOME/bin/hadoop fs -chmod g+w   /user/hive/warehouse

这些命令主要是创建hive数据的存放路径,并让用户所属组有写 

到现在hive就应该能正常运行了。

-----------------------------------------------------------------------------HIVE常用操作---------------------------------------------------------------------------------------------------------------------------------

1.创建表的完整语句

create [external] table active(ukey string, docic int)
comment "this is for analysing user's reading history"
partitioned by (month int, day int)
clustered by (ukey) into 32 buckets
row format delimited
fields terminated by '\t'
lines terminated by '\n'
stored as sequencefile/textfile

[external]表示可选项,表示创建表的数据来源于已有的hdfs文件

partitioned by语句主要是为了处理子文件夹的情况

clustered by语句主要是控制生成的part-0000*的文件个数

stored as语句说明表文件存放的格式,现在只有两种。

2.partitioned by语句用法

我的情况,日志文件按日存放,每一天一个文件夹,像

/data/log/2013/10/10

/data/log/2013/10/11

/data/log/2013/10/12

..................

/data/log/2013/11/10

/data/log/2013/11/11

....................

这样的形式,为了把这些文件中的数据存放到hive的表中,我们需要用partitioned

我们首先创建这么一个表

create external table log(ukey string, docic int)
partitioned by (month int, day int)
row format delimited
fields terminated by '\t';

然后在用这条语句进行log表的修改

alter table log add partition(month=10,day=10) location '/data/log/2013/10/10'

这样就把10月10号这天的日志包含进log表了

3.表的连接join

一个模板:

insert overwrite table query_result
select pv.* u.gender, u.age
from page_view pv JOIN user u ON (pv.userid = u.id);

现在hive中的join只支持“相等”连接。

时间: 2013-09-16

HIVE 牛刀小试 (伪分布式版本)的相关文章

安装Hadoop1.0.4伪分布式的方法

 一.使用环境 操作系统:Ubuntu12.04 Hadoop版本:1.0.4 二.Hadoop官网安装手册  单机安装分为"standalone"和"pseudo-distributed"两种模式,我使用的是伪分布式模式. 手册的安装步骤很详细,没有必要当翻译工了.但是手册为了通用性,牺牲了一些关键问题的讨论.第三节中提及一下. 三.手册缺陷  手册主要有两个问题没有说清楚: 1.Hadoop安装在哪个目录下好? 选择一般有两种:/usr/local和家目录下.我

《深入理解大数据:大数据处理与编程实践》一一2.2 单机和单机伪分布式Hadoop系统安装基本步骤

2.2 单机和单机伪分布式Hadoop系统安装基本步骤 默认情况下,Hadoop被配置成一个以非分布式模式运行的独立Java进程,适合程序员在本地做编程和调试工作.Hadoop也可以在单节点上以伪分布式模式运行,用不同的Java进程模拟分布式运行中的各类节点(NameNode.DataNode.JobTracker.TaskTracker和Secondary NameNode).2.2.1 安装和配置JDK Hadoop是以Java语言写成,因而需要在本地计算机上预先安装Java 6或者更新版本

HBase伪分布式安装(HDFS)+ZooKeeper安装+HBase数据操作+HBase架构体系

HBase1.2.2伪分布式安装(HDFS)+ZooKeeper-3.4.8安装配置+HBase表和数据操作+HBase的架构体系+单例安装,记录了在Ubuntu下对HBase1.2.2的实践操作,HBase的安装到数据库表的操作.包含内容1.HBase单例安装2.HBase伪分布式安装(基于Hadoop的HDFS)过程,3.HBase的shell编程,对HBase表的创建,删除等的命令,HBase对数据的增删查等操作.4.简单概述了Hbase的架构体系.5.zookeeper的单例安装和常用操

在ubuntu部署hadoop之单机模式与伪分布式模式部署

这几天刚接触Hadoop,在学习如何搭建一个Hadoop集群.对于初学者来说,环境搭建还是比较麻烦的,我这里说一下我的配置方法,仅供大家参考. 我的环境是ubuntu12.10+hadoop1.1.0. Hadoop的运行模式有以下三种. 单机模式(standalone) 单机模式是Hadoop的默认模式.当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置.在这种默认模式下所有3个XML文件均为空.当配置文件为空时,Hadoop会完全运行在本地.因为不需要

hadoop伪分布式集群搭建与安装(ubuntu系统)

1:Vmware虚拟软件里面安装好Ubuntu操作系统之后使用ifconfig命令查看一下ip;  2:使用Xsheel软件远程链接自己的虚拟机,方便操作.输入自己ubuntu操作系统的账号密码之后就链接成功了: 3:修改主机的名称vi /etc/hostname和域名和主机映射对应的关系 vi /etc/hosts,改过之后即生效,自己可以ping一下,我这里ip对应master,比如ping master之后发现可以ping通即可: (centos操作系统修改主机名命令:vi /etc/sy

ZooKeeper一二事 - 搭建ZooKeeper伪分布式及正式集群 提供集群服务

集群真是好好玩,最近一段时间天天搞集群,redis缓存服务集群啦,solr搜索服务集群啦,,,巴拉巴拉 今天说说zookeeper,之前搭建了一个redis集群,用了6台机子,有些朋友电脑跑步起来,有点卡,那这里主要说说伪分布式的集群,正式版的集群需要3台机子,我就一带而过说一说,搭建起来也是非常简单的 先来说说Zookeeper 什么是Zookeeper呢,顾名思义,动物园管理员嘛,什么hadoop大象啦,hive蜜蜂啦,pig小猪啦,都是用这货来管的,就是大数据Hadoop里面的嘛~ (题外

分布式版本库——Windows下Git的环境部署以及在GitHub上开源自己的项目

分布式版本库--Windows下Git的环境部署以及在GitHub上开源自己的项目 这几天着实忙的焦头烂额,可惜不是搞技术,今天周日,难得闲下来,写篇大家都想学习的Git教程,其实廖雪峰老师的网站已经非常详细了,但是.咳咳,太长了,我就稍微简单点的来概括,其实Git在MAC和Ubuntu上的体验是最好的,不过搞Android开发的我相信绝大多数人还是用windows吧,当然不排除个例 廖雪峰教程:http://www.liaoxuefeng.com/wiki/001373951630592960

分布式版本控制系统入门:学习和对比Bazaar、Mercurial和Git的使用方法

简介:您是否对分布式版本控制感兴趣,但是又被一大堆行话弄糊涂了?本文介绍三种主要的系统 (Git.Mercurial 和 Bazaar),讨论采用分布式工作流的一些优点,比较分布式版本控制的常用操作. 简介 在过去几年,对于分布式版本控制可以给开发过程提供的益处有许多争论.最近,分布式 工具已经很成熟了.尽管分布式工具的一些优点最初可能不明显,但是从长期来看,它们提供的灵活性是 非常有意义的.阅读完本文之后,您应该能够开始使用分布式版本控制系统,基本了解分布式模型能够提 供的优点. 围绕分布式版

大数据-hadoop伪分布式环境搭建

问题描述 hadoop伪分布式环境搭建 最近开始新学hadoop,想搭建个伪分布式环境,而自己的电脑配置不高,不能运行虚拟机,可以利用阿里云来搭建伪分布式运行环境吗? 解决方案 阿里云搞几台机器在一个局域网就可以搭建或者用单机模式 解决方案二: 嗯,单机模式是不是不用装虚拟机