hive可以做什么?
hive本质上是Hadoop数据仓库工具。用于解决海量结构化的日志的数据统计。可以将结构化的数据文件映射成一张表,并提供SQL查询。
hive可以通过一种基于SQL的数据操纵语言来简化对mapreduce的访问。通过编写SQL语句,优化后自动生成mapreduce任务,并执行任务。
适合离线数据处理,因为hive的执行延迟比较高。
hive是构架在hadoop之上的数据仓库
一个hive表是一个逻辑概念,物理上由一些HDFS中的文件构成。表可以是内部的,hive在数据仓库里面以目录的形式组织它们,数据仓库的路径由hive.metastore.warehouse.dir属性控制,默认的是在HDFS系统上的/user/hive/warehouse。表也可以是外部的,此时hive并不管理它们。
表中的数据数据使用MapReduce来计算
表中的数据使用HQL作为查询接口。
优势
● 容易上手。
hive原本是Facebook的内部的项目,由它贡献出来,最终成为一个成熟的Apache的顶级项目。我觉得它现在流行的原因是,很大的成都要看到它语言的本质,就是SQL。DBA或者有过数据库开发经验的人,都可以很容易上手。
● 提高效率
在业务逻辑不是很强的情况下,可以不用八股文模版编写job任务。我在看《Hadoop 硬实战》中有个很好的例子,利用相同的时间,hive可以能够在很短的时间内写完并执行MapReduce任务,如果用java去做相同的功能,在相同的时间内,可能连java的main方法都没写完,显然提高了效率。
● 统一的元数据管理。
● 已扩展。
hive组织架构图(使用团队组织结构图模版画的)