Hive的概念到底是什么?
1 回答
已采纳
XhstormR
TA贡献140条经验 获得超197个赞
Hive 概念 Hive 的数据存储基于 HDFS Hive 中的表—HDFS 里的目录 Hive 中的表的数据—HDFS 目录下的文件 Hive 中的行列—HDFS 文件中的行列 Hive 的用户接口有三个:Shell、Web、JDBC/ODBC。 Hive 将元数据存储在数据库中(MetaStore),只支持 MySQL、Derby(默认,一次只能打开一个会话,不推荐)作为存储引擎;元数据包括表的名字、列、分区、是否为外部表以及数据所在目录等。 Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成。(包含 * 查询,但select * from table 不会生成 MapReduce 任务) Hive 中的解释器、编译器、优化器完成 HQL 查询语句并生成查询计划;生成的查询计划存储在 HDFS 中,并随后由 MapReduce 调用执行,Hadoop 监控作业执行过程,然后返回作业执行结果给用户。(简单来说就是把类 SQL 语句转化为 MapReduce 任务运行,高延迟) Hive 在导入数据过程中不会对数据做任何修改,只是将数据移至 HDFS 目录中,所有数据都是在导入时确定。(纯移动/复制操作) 因此 Hive 并不提供实时的查询和基于行级的数据更新操作,不适合联机事务处理(低延迟)。 Hive 没有定义专门的数据格式,因此创建表时,指定Hive数据的列分隔符与行分隔符,Hive即可解析数据。 列分割符:‘,’ ‘\t’(TAB) ‘\040’(空格) [ASCII码表] 行分隔符: ‘\n’(ENTER) 文件格式:TextFile(数据是纯文本)、SequenceFile(若需要压缩) Hive 中的数据模型有4种:Table(内部表)、Partition(分区表)、External Table(外部表)、Bucket(桶表)
Hive 是 SQL 解析引擎,它将 SQL 语句转译成 Map/Reduce Job 然后在 Hadoop 执行;能够用类 SQL 的方式操作 HDFS 里面数据一个数据仓库的框架,这个类 SQL 我们称之为 HQL(Hive Query Language)。
这是我的笔记,望采纳。
- 1 回答
- 6 关注
- 2676 浏览
添加回答
举报
0/150
提交
取消