hive安装及常用命令

hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

hive安装:

1.tar -xzvf hive*
2.hdfs hadoop fs -mkdir /tmp
  hdfs hadoop fs -mkdir /user/hive/warehouse
  hdfs hadoop fs -chmod g+w /tmp
  hdfs hadoop fs -chmod g+w /user/hive/warehouse
3.export HADOOP_HOME=
4.cd hive/bin  ./hive进入hive shell环境

常用命令:
show databases;查看数据仓库;
use test;切换database;
create database test1;创建数据库;
describe database test;查看数据库结构;
drop database test1;
dfs -ls 可以看hadoop hdfs目录下的文件;
create table tab_name(id int,name string);创建表

load data local inpath '/home/a.txt' into table tab_name;把文件导入hive表
select * from tab_name;
这个时候查出的数据是null,因为hive并不知道怎么解析txt中的数据。
需要重新创建这张表
drop table tab_name;
create table tab_name(id int,name string) row format delimited fields terminated by ',';
select * from tab_name;现在就有了

dfs fs ./hive/warehouse/tab_name这个时候hive只是把这个文件拷贝到hdfs文件系统当中。

load data local inpath '/home/a.txt' into table tab_name;再调用一次,load相同文件,这个时候hdfs中就有两个文件。其实还是同一个文件。只是文件名不同。

load data local inpath '/home/b.txt' into table tab_name;再调用一次,load不同文件。

hive不会做任何数据的转换,只是对你存储数据的结构做一个描述,来解析文件中的数据。

load data local inpath '/home/a.txt' overwrite into table tab_name;原来表中的文件都会被清空,将新的数据插入到hdfs。

select * from tab_name where id = 2;这时候hive就启动一个mapreduce任务,做一个查找。只有有条件,都会产生mapreduce任务,对hdfs进行一个查找。

猜你喜欢

转载自yousky027.iteye.com/blog/1965373