Hive ---- Hive入门

  • 1. 什么是Hive
    • 1. Hive简介
    • 2. Hive本质
  • 2. Hive架构原理
    • 1. 用户接口:Client
    • 2. 元数据:Metastore
    • 3. 驱动器:Driver
    • 4. Hadoop

1. 什么是Hive

1. Hive简介

Hive是由Facebook开源,基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。

那为什么会有Hive呢?它是为了解决什么问题而诞生的呢?
下面通过一个案例,来快速了解一下Hive。
例如:需求,统计单词出现个数。
(1)在Hadoop课程中我们用MapReduce程序实现的,当时需要写Mapper、Reducer和Driver三个类,并实现对应逻辑,相对繁琐。

test表
id列atguigu
atguigu
ss
ss
jiao
banzhang
xue
hadoop

(2)如果通过Hive SQL实现,一行就搞定了,简单方便,容易理解。

select count(*) from test group by id;

2. Hive本质

Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转化成MapReduce程序。
(1)Hive中每张表的数据存储在HDFS
(2)Hive分析数据底层的实现是MapReduce(也可配置为Spark或者Tez)
(3)执行程序运行在Yarn上

2. Hive架构原理

1. 用户接口:Client

CLI(command-line interface)、JDBC/ODBC。
说明:JDBC和ODBC的区别。
(1)JDBC的移植性比ODBC好;(通常情况下,安装完ODBC驱动程序之后,还需要经过确定的配置才能够应用。而不相同的配置在不相同数据库服务器之间不能够通用。所以,安装一次就需要再配置一次。JDBC只需要选取适当的JDBC数据库驱动程序,就不需要额外的配置。在安装过程中,JDBC数据库驱动程序会自己完成有关的配置。)
(2)两者使用的语言不同,JDBC在Java编程时使用,ODBC一般在C/C++编程时使用。

2. 元数据:Metastore

元数据包括:数据库(默认是default)、表名、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。
默认存储在自带的derby数据库中,由于derby数据库只支持单客户端访问,生产环境中为了多人开发,推荐使用MySQL存储Metastore。
默认存储在自带的derby数据库中,由于derby数据库只支持单客户端访问,生产环境中为了多人开发,推荐使用MySQL存储Metastore。

3. 驱动器:Driver

(1)解析器(SQLParser):将SQL字符串转换成抽象语法树(AST)
(2)语义分析(Semantic Analyzer):将AST进一步划分为QeuryBlock
(3)逻辑计划生成器(Logical Plan Gen):将语法树生成逻辑计划
(4)逻辑优化器(Logical Optimizer):对逻辑计划进行优化
(5)物理计划生成器(Physical Plan Gen):根据优化后的逻辑计划生成物理计划
(6)物理优化器(Physical Optimizer):对物理计划进行优化
(7)执行器(Execution):执行该计划,得到查询结果并返回给客户端
抽象语法树

逻辑计划与物理计划

4. Hadoop

使用HDFS进行存储,可以选择MapReduce/Tez/Spark进行计算。

Hive ---- Hive入门相关推荐

  1. Apache Hive 快速入门 (CentOS 7.3 + Hadoop-2.8 + Hive-2.1.1)

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<Netkiller Database 手札> 第 63 章 Apache Hive 目录 63.1. ...

  2. hadoop hive hbase 入门学习 (二)

    hadoop 自学系列                hadoop hive hbase 入门学习 (一) hadoop安装.hdfs学习及mapreduce学习 hadoop 软件下载 (hadoo ...

  3. Hive从入门到放弃——HiveQL表级别DDL设计的艺术性(五)

    HiveQL数据库中的表DDL操作   博客Hive从入门到放弃--HiveQL数据库级别DDL设计的艺术性(四)聊完了数据库的基本操作,我们再来聊聊Hive内表的操作. 创建表   官方推荐建表的结 ...

  4. Hive从入门到放弃——Hive表DML的艺术性(八)

    背 景   HiveQL语法和MySQL的语法很像,当然Hive本身作为大数据的数据仓库,本身对数据的修改和删除并不铭感,虽然Hive支持通过ORC为存储文件实现数据的删除和修改,但是这个功能相对比较 ...

  5. Hive 快速入门(全面)

    转载: https://www.codercto.com/a/5110.html 前言 我写这篇文章的目的是尽可能全面地对Hive进行入门介绍,这篇文章是基于hive-1.0.0版本介绍的,这个版本的 ...

  6. 《Hive系列》Hive详细入门教程

    目录 1 Hive基本概念 1.1 什么是Hive Hive简介 Hive:由FaceBook开源用于解决海量结构化日志的数据统计工具 Hive:基于Hadoop的一个数据仓库工具,可以将结构化的数据 ...

  7. [Hive] - Hive参数含义详解

    hive中参数分为三类,第一种system环境变量信息,是系统环境变量信息:第二种是env环境变量信息,是当前用户环境变量信息:第三种是hive参数变量信息,是由hive-site.xml文件定义的以 ...

  8. Spark on Hive Hive on Spark傻傻分不清?

    Spark on Hive? Hive on Spark傻傻分不清? 1 spark on hive Spark on hive,是spark计算引擎依托hive data source,spark ...

  9. Hive——hive安装

    1.Hive安装地址 1.Hive官网地址 http://hive.apache.org/ 2.文档查看地址 https://cwiki.apache.org/confluence/display/H ...

最新文章

  1. 介绍一下Linux 误删文件恢复命令及方法
  2. 【2012年华为校园招聘软开上机-成都】字母转换、统计单词个数
  3. 关于IE7 兼容问题
  4. 本周不容错过的的9篇NLP论文 | PaperDaily #21
  5. 如果使用StateServer或SQLServer,会遇到的问题。。。。
  6. 监测利器cacti服务安装
  7. 300来行代码实现最小Linux文件系统
  8. 为MFC应用程序添加全屏幕显示功能
  9. java编写一个程序_计算已知长和宽的长方形的周长,请教一下大佬们,我们java留了一个作业,编写程序,定义一个接口Comput,声明计算周长和面积的方法...
  10. [机器学习] 混淆矩阵和kappa系数
  11. python实现mysql的读写分离及负载均衡
  12. 圣诞帽php,教你用ps给自己头像p圣诞帽
  13. Ogre开发日记(一)
  14. 微信小程序详解——小程序的生命周期和页面的生命周期
  15. 计算机基础表格模拟题,4月全国网络统考资料《计算机应用基础》模拟题及参考答案——电子表格...
  16. CryEngine的maya插件安装
  17. PHP7.2源码安装
  18. Servlet实现用户注册
  19. springboot jpa自定义SQL查询
  20. PCB 录屏工具Screen2Exe GifCam ScreenToGif

热门文章

  1. 2022爱分析·中国数字化客户经营创新案例评结果揭晓,16个项目入选
  2. 电力电子变流器和永磁同步电机模型预测控制方式实现
  3. Windows Server2022安装体验
  4. 有米iOS恶意SDK分析
  5. Win7摄像头驱动错误怎么办?Win7摄像头驱动错误的解决方法
  6. 带计算机笔记本电脑,笔记本电脑的充电器忘记带了怎么处理
  7. Web端3D可视化引擎HOOPS Communicator读取10G超大模型测试 | 数字孪生技术
  8. Hoops编程指南:04_3_user_interaction_window_system_interaction
  9. 【愚公系列】2023年04月 wireshark系列-数据抓包分析之ARP协议
  10. 小程序——调用手机地图app