hive的应用场景
主要是解决了,如果使用多个map和reduce进行数据处理,每次都需要修改程序,有些改动非常少,这样不利于开发效率
hive的出现主要是解决了因为小的需求变更而,频繁的需要修改hadoop程序,提供了类似sql的HiveQl。Hive类似一个中间转换器(编译器的作用),将hadoop产生的数据,存储在Hive(内嵌一个非常小巧的数据库Derby),Hive提供有类似SQL的查询语句。当然这个存储的数据也可以配置到mysql这样的数据库。
换句话说:Hive提供了hadoop查询数据使用类似SQL的查询语言,中间做的工作主要有:将用户的hadoop处理的数据,建立一个表存储好表的元数据、位置信息等,它将hadoop处理的数据存储起来,当调用HiveQL查询的时候,会对HiveQL进行解析,然后转换为hadoop能执行的map、reduce的环节进行处理。
1.解压
tar -zxvf hive-0.12.0.tar.gz
2.
bin> ./hive
3.show database;
create database test_db;
show databases;
use test_db;
create table t_mygirl(id int ,name string, age int, size string)
show tables;
#不支持sql插入和更新
insert into t_mygirl values(1, "baby", 18, "36C");
#分隔符 enter键
row format delimited
#列使用\t分隔
fields terminated by "\t";
完整的建表语句,包括指定列的分隔符
create table t_mygirl(id int ,name string, age int, size string)
row format delimited
fields terminated by "\t";
#进入表格文件t_mygirl
vim t_mygirl
内容
1 baby 18 36C
2 yifei 19 37B
3 yangmi 22 36A
4 zhiling 36 36C
5 fengjie 29 39A
#上传文件
hadoop fs -put mygirls.data /xx/xxx/xxx/test_db.db/t_mygirl
#hive查询
>hive
select * from t_mygirl where age < 30;
select count(*) from t_mygirl where age < 30;