Apache-Hive概览
Hive是什么?要想将一个东西使用好,必须首先对这个东西有一个很正确的定位。
答案如下:
Hive是一个
数据仓库工具
。Hive是一个可以用来便利
读取、写入、管理
海量数据集的数据仓库工具。Hive是一个可以
使用SQL语法
读取、写入、管理分布式存储系统
上的海量数据集
的数据仓库工具。
Hive是基于Hadoop生态的上层应用,它提供了以下的特性:
- 通过SQL访问数据,允许运行ETL(Extract\Transform\Load)、报表、数据分析等相关的的数据仓库任务。
- 能够按照大量不同的format策略来读取、存储数据,比如CSV、JSON、AVRO、TEXT、ORC、Parquet等。
- 直接访问HDFS上的数据或者其他基于Hadoop存储系统的数据如Hbase。
- 可以通过Apache Tez、Spark、Mapreduce计算引擎执行Query操作。
- 通过不同的资源管理器能进行亚秒级的检索
这个只要资源给的够,还是可以实现的,但是一般是吹牛逼的
,如YARN、Slider、Hive LLAP。
Hive提供了标准的类SQL规范,通过HiveQL还支持用户自定义UDF、UDAF、UDTF函数。所以很强大!
Hive不是为了进行OLTP(online transaction processing)而设计,而是为了进行OLAP(online analysis processing),适合传统的数据仓库tasks的执行。
Hive可以通过横向增加机器数量,具有很好的拓展性、容错性、松散连接性(多样的input formats)。
Hive的主要组件有:
这是基于hadoop的一个表和存储的管理层,它允许用户使用不同的处理工具如Pig、Mapreduce更好的以网格化的形式读写数据。
提供一个服务允许用户使用该服务运行MR作业,Pig jobs,Hive jobs,还可以通过HTTP接口管理Hive的元数据。