Hive支持HSQL,是一种类SQL。Hive是基于Hadoop分布式文件系统的,它的数据存储在Hadoop分布式文件系统中。Hive本身是没有专门的数据存储格式,也没有为数据建立索引,只需要在创建表的时候告诉Hive数据中的列分隔符和行分隔符,Hive就可以解析数据。所以往Hive表里面导入数据只是简单的将数据移动到表所在的目录中(如果数据是在HDFS上;但如果数据是在本地文件系统中,那么是将数据复制到表所在的目录中)。
不想用程序语言开发MapReduce的朋友比如DB们,熟悉SQL的朋友可以使用Hive开离线的进行数据处理与分析工作。
注意Hive现在适合在离线下进行数据的操作,就是说不适合在挂在真实的生产环境中进行实时的在线查询或操作,因为一个字“慢”。相反
起源于FaceBook,Hive在Hadoop中扮演数据仓库的角色。建立在Hadoop集群的最顶层,对存储在Hadoop群上的数据提供类SQL的接口进行操作。你可以用 HiveQL进行select,join,等等操作。如果你有数据仓库的需求并且你擅长写SQL并且不想写MapReduce jobs就可以用Hive代替。
1.hive是基于Hadoop的一个数据仓库工具
2.可以将结构化的数据文件映射为一张数据库表,并提供类sql的查询功能
3.可以将sql语句转换为mapreduce任务进行运行
4.可以用来进行数据提取转换加载(ETL)
5.hive是sql解析引擎,它将sql 语句转换成
M/R job
然后在Hadoop中运行。
6.hive优点与缺点:优点:可以提供类SQL语句快速实现简单的mapreduce统计,不需要开发专门的mapreduce应用;缺点:
不支持实时查询
7.hive数据分为真实存储的数据和元数据
,真实数据存储在hdfs中,元数据存储在mysql中
metastore 元数据存储数据库
Hive将元数据存储在数据库中,如MySQL、derby。
Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。