Hive-An overview

1)Hive是什么?

    大数据来临,海量的数据存储在分布式文件系统上。我们想像传统关系型数据库一样使用HDFS以及像使用SQL语句一样使用HDFS。Hive应运而生,Hive是适合于数据仓库应用的程序,进行静态数据分析,不需要给出快速响应结果,数据本身不会频繁变化。

2)Hive和关系型数据差别

不支持记录级别的更新、插入、删除、事务、联机事务处理。

3)Hive与Hadoop MapReduce 之间的关系

首先我们以WordCount为例,回顾一下Hadoop MapReduce 处理数据的流程:

对于文件中的每一行来说,Mapper会将其中的每个单词,输出为一个键值对,键是单词,值为1/总频数。

其次,按照键值对进行排序,所有的键相同的放在一起。

接着,将键相同的数据,交给同一个reduce处理。

最终,reduce求和并输出。

上述过程的底层细节,是由一个job到另一个job的重复性工作。

幸运的是,研究人员引入了Hive来处理这些重复性工作,让用户使用数据时像SQL那样简单。

与hive交互有好几种方式,主要的命令行CLI。

Hive-An overview

所有的命令查询都会进入到驱动模块(Driver),该模块会进行编译、优化、执行。将这些命令封装为XML。传递给Hadoop中的master,master会启用jobtracker与namenode 协调使用DFS。

更直白一点,使用hive,就是代码写的少了,写的简单了。