您的位置:首页 > 编程语言 > Go语言

Hive笔记之------------基础&&实例操作(sogou 500w数据,创建一张表sogou_20111230....)

2015-09-23 15:32 831 查看
一Hive简介

Hive实质为SQL的引擎,是对SQL语句的封装,本身不存储任何数据

进入Hive环境shell命令

cd apache-hive-0.13.1-bin/bin/hive

如下

hive>

>

>

结束hive 分号 即是 >;

二 hive下数据库的操作

创建数据库

create database 数据库名;

查看

show databases;

创建表格:

use 数据库名;

create tables 表格名;

查看表格:

show tables;

删除表

[b]drop table if exists 表格名;

[/b]

删除空数据库

drop database 数据库名;

删除非空数据库

drop database 数据库名 cascade;

数据库详情:

describe database 数据库;



查看数据库默认路径:

hadoop fs -ls /user/hive/warehouse

三 实例操作

e1:

sogou 500w数据,创建一张表sogou_20111230,这张表在sogou这个数据库中,注意,6个字段的数据类型.

e2:

把sogou 500w的数据放到表中,并执行下面的查询,

查询前100行数据

select * from sogou_20111230 limit 100;

思路:

第一步:在Hive环境

在hive中创建数据库 如

1.默认数据库存放路径 /user/hive/warehouse

create database test;

查看 进入hadoop环境下

hadoop fs -ls
/user/hive/warehouse

2.自定义路径

create database test location '/my/path';意为在hadoop根目录下my目录中

查看 进入hadoop环境

hadoop fs -ls
/my/path

需要注意的是:自定义路径不显示改路径下的数据库名 ,

但是当在该数据库中创建表时,会自动将表自动放入自定义的路径下 如图:


进入该数据库:

use test;

方式一(默认[b]数据路径)[/b]

在数据库中创建表

create table sogou_20111230

(date string, uid string, keyword string, rank int, count int, url string)

row format delimited

fields terminated by '\t' ;

数据库 表 字段 创建完毕后下一步开始将数据输入到字段中 这里采用搜狗500w数据

hadoop端

将该文件放入数据库表中

a 进入数据库默认存放路径

hadoop fs -ls /user/hive/warehouse

b 找到对应数据库

/user/hive/warehouse/test.db

c 将数据输入表中

cd /home/zkpk/resources/sogou-data/500w/

hadoop fs -put sogou.500w.utf8 /user/hive/warehouse/test.db/sogou_20111230

方式二(自定义数据路径)

在hadoop集群下创建sogou500w文件

hadoop fs -mkdir /sogou500w

将数据放入该目录下

hadoop fs -put /home/zkpk/resources/sogou-data/500w/sogou.500w.utf8
/sogou500w

创建表并自定义数据路径



create table sogou_20111230

(date string, uid string, keyword string, rank int, count int, url string)

row format delimited

fields terminated by '\t'

location '/sougou500w';(此文件位于hadoop集群下)

(数据库语句具体解释:

create table sogou_20111230 为要创建的表名

(date string, uid string, keyword string, rank int, count int, url string) 表中的字段

row format delimited 表中数据行的格式

fields terminated by '\t' 表中数据分隔符

LOCATION '/test'数据存放的位置 )

注意:两种方式创建表与导入使数据的顺序不同

此步是方式一 二共用

回到 Hive端:

查找前100行数据

select * from sogou_20111230 limit 100;(前提是必须在该表下操作)

否则:

use test;

select * from sogou_20111230 limit 100;

显示结果如图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: