【大数据离线开发】8.1 Hive介绍和架构

Hive是由Facebook创建并贡献给Apache的项目,它提供了一种使用SQL查询Hadoop上大数据的机制。HiveQL是其类SQL语言,可将SQL语句转换为MapReduce任务。Hive支持元数据存储、多种用户接口(CLI、JDBC/ODBC、WebUI)和数据存储在HDFS中,而在Hive2.x之后,推荐使用Spark作为执行引擎。此外,Hive的体系结构还包括解释器、编译器和优化器来处理HQL查询。
摘要由CSDN通过智能技术生成

Hive:数据分析引擎

了解

大数据的终极目标: 使用SQL语句来处理大数据

  1. Hadoop的体系架构中:

    • Hive:支持SOL
    • Pig:支持PiqLatin
  2. Spark的体系架构中:

    • Spark SQL:类似Hive,支持SOL、支持DSL
  3. 另一个:Impala

8.1 什么是Hive?

起源自facebook由Jeff Hammerbacher领导的团队

2008年facebook把hive项目贡献给Apache

定义了一种类SQL语言HiveQL。可以看成是仍SQL到Map-Reduce的映射器

提供Hive shell、JDBC/ODBC、Thrift客户端等接

  1. Hive是一个基于HDFS之上的数据仓库

    HiveHDFS
    目录
    数据文件
    分区目录
    文件
  2. Hive基于Hadoop之上的一个数据分析引擎

    • Hive是一个翻译器,把SQL语句翻译成一个MapReduce程序

    • Hive 2.x 以前:SQL——HIve——MapReduce

    • Hive 2.x 以后:推荐使用Spark作为SQL的执行引擎(只针对Hadoop 3.想以前)

    • 常见的数据分析引擎:Hive、Pig、Impala、Spark SQL

  3. Hive支持SQL的一个子集(SQL92的一个子集)

8.2 Apache Hive的体系结构

Hive 最核心的是它的翻译器,是它的核心驱动

在这里插入图片描述

  • 用户接口主要有三个:CLI,JDBC/ODBC和 WebUI

    • CLI,即Shell命令行
    • JDBC/ODBC 是 Hive 的Java,与使用传统数据库JDBC的方式类似
    • WebGUI是通过浏览器访问 Hive
  • Hive 将元数据存储在数据库中(metastore),目前只支持 mysql、derby。Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等

  • 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及查询计划(plan)的生成。生成的查询计划存储在 HDFS 中,并在随后有 MapReduce 调用执行

  • Hive 的数据存储在 HDFS 中,大部分的查询由 MapReduce 完成(包含 * 的查询,比如 select * from table 不会生成 MapRedcue 任务)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值