原文链接:https://cwiki.apache.org/confluence/display/HIVE
Apache Hive数据仓库软件设施,可以读、写和管理分布式存储上的大数据集(large datasets),并且可以通过SQL去查询数据集。
在Apache Hadoop之上构建的Hive,有如下的特性:
- 提供了通过SQL就可以轻松访问数据的工具集,因此可以实现诸如抽取/转换/装载(ETL)任务、报表任务、数据分析这些数据仓库任务
- 提供了一个机制,可以在各种数据格式上创建结构(为数据赋予表结构)
- 可以直接访问HDFS上的数据文件,或者访问其他存储系统上的文件,比如HBase
- 查询通过Apache Tez或者Apache Spark或者MapReduce引擎执行
- 通过HPL-SQL(Hive Hybrid Procedural SQL On Hadoop (HPL/SQL) 是一个从Hive2.0.0开始为Hive实现的过程SQL工具)提供了过程语言
- 通过Hive LLAP,Apache YARN和Apache Slider可以实现亚秒级数据查询
Hive提供了标准的SQL功能,包括用于分析的很多后来的SQL:2003和SQL:2011特性。
Hive的SQL也可以根据用户提供的代码扩展,比如用户定义函数(user-defined-functions,UDFs),用户定义聚合(user-defined-aggregates,UDAFs)还有用户定义表级函数(user-defined-table-functions,UDTFs)。
Hive没有强调数据必须存储成什么格式的。Hive自带了一些连接器,支持逗号(comma separated values,CSV)和制表符(table separated values,TSV)分割的文本文件,还有Apache Parquet,Apache ORC等等格式。
用户还可以自己扩展其他格式的Hive连接器,请参考开发者指南上关于文件格式和Hive序列化反序列化的详细说明。
Hive不是为在线事务处理数据而设计的。最好把Hive用于传统的数据仓库任务。
Hive被设计用于最大化伸缩性(支持Hadoop集群上动态增加机器的伸缩性)、性能、扩展性、容错性,并且和它的输入数据松耦合。
Hive组件还包括HCatalog和WebHCat:
- HCatalog是Hive的一个组成部分,它是Hadoop上的一个表格和存储管理层,使用户可以用不同的数据处理工具(包括Pig和MapReduce)来更容易地读写数据。
- WebHCat提供了一个可以让用户通过REST风格的HTTP接口来运行Hadoop MapReduce(或者YARN)、Pig、Hive任务或者进行Hive元数据操作的服务。