首页 > 其他分享 >Hive入门

Hive入门

时间:2024-09-03 13:52:20浏览次数:5  
标签:逻辑 JDBC 入门 ODBC Hadoop Hive 计划

目录

 Hive入门

 什么是Hive

1)Hive简介

示例:统计单词出现个数

2)Hive本质

 Hive架构原理

1)用户接口:Client

说明:JDBC和ODBC的区别

2)元数据:Metastore

3)驱动器:Driver

抽象语法树 

逻辑计划与物理计划 

4)Hadoop


 Hive入门

 什么是Hive

1)Hive简介

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

那么,Hive是为了解决什么问题而诞生的呢?

下面通过一个案例,来快速了解一下Hive。

示例:统计单词出现个数
  1. 在Hadoop课程中我们用MapReduce程序实现的,当时需要写Mapper、Reducer和Driver三个类,并实现对应逻辑,相对繁琐。

     
    lzl
    lzl
    ss
    ss
    jiao
    banzhang
    xue
    hadoop
  2. 如果通过Hive SQL实现,一行就搞定了,简单方便,容易理解。

    select count(*) from test group by id;

2)Hive本质

Hive是一个Hadoop客户端,用于将HQL(Hive SQL)转化成MapReduce程序。

  • Hive中每张表的数据存储在HDFS。
  • Hive分析数据底层的实现是MapReduce(也可配置为Spark或者Tez)。
  • 执行程序运行在Yarn上。

 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。

3)驱动器:Driver

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

 

逻辑计划与物理计划 

 

4)Hadoop

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

标签:逻辑,JDBC,入门,ODBC,Hadoop,Hive,计划
From: https://blog.csdn.net/qq_45115959/article/details/141858613

相关文章

  • Scratch 入门介绍
            Scratch是一种基于积木拼接的可视化编程语言,非常适合儿童和初学者学习编程基本概念。它通过拖拽积木块来构建程序,使编程变得直观且易于理解。以下是Scratch的详细介绍:界面概览        Scratch界面分为舞台、角色区、代码块区、造型和背景库等部分。......
  • 11.吐血整理sed入门到精通,sed语法,脚本命令,打印,替换,删除,插入,行替换,字符替换,保
    文章目录前言sed介绍1.sed介绍2.sed语法介绍3.sed脚本命令1.打印2.s替换3.删除脚本命令d3.插入脚本命令a/i4.行替换脚本命令c4.字符替换脚本y5.保存内容脚本w6.插入其他文本r6.中断退出脚本命令q脚本命令当中的地址[address]正则表达式sed[选项]1.sed-i选项2.sed-e......
  • Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • NumPyro入门API和开发人员参考 pyro分布推理效果处理程序贡献代码更改日志入门教程使
    NumPyro文档¶NumPyro入门API和开发人员参考烟火元素分布推理效果处理程序贡献代码更改日志入门教程使用NumPyro的贝叶斯回归贝叶斯分层线性回归例如:棒球击球率示例:变型自动编码器例子:尼尔的漏斗例子:随机波动例如:亚麻和俳句可变推断参数化NumPyro模型的自动绘制不良后几何及......
  • 我的渗透测试路,如何入门网络安全最高效?附面试经验
    前言这篇先回顾一下我大学时候的渗透经历,再说一下哪几个方面对于渗透测试入门或者发展来说是最重要、最高效的。(知乎的文章编辑功能太辣鸡了,有好多格式问题,建议到我的公众号看噢,公众号二维码位于文章底部)大学的渗透路在高考结束后,我知道了自己的成绩,仅超过一本线几分可......
  • 基于外卖业务的数据可视化入门到精通-Vue3.0+EChart4.0
    基于外卖业务的数据可视化入门到精通-Vue3.0+EChart4.0项目分辨率响应式创建 项目顶部信息条创建 页面主体创建  接项目搭建与初始化之后继续对项目进行部署工作项目展示:        技术栈:1.vue3.0+vue-router4.0+axios2.flex布局3.LESS4.rem屏......
  • c++入门基础
    欢迎来到c++入门基础的学习目录1、第一个c++程序2、命名空间3、c++的输入与输出4、缺省参数5、函数重载6、详解引用(引用属于重点知识)7、指针与引用的差别8、内联函数9、nullptr在学习c++之前我们要知道c++是什么—c++是c语言的扩展,主要在c语言之上添加了封装、继......
  • Datawhale X 李宏毅苹果书AI夏令营深度学习入门(三)
    一.实践方法论(一)模型偏差模型偏差可能会影响模型训练。若模型过于简单,一个有未知参数的函数代θ1得到一个函数fθ1(x),同理可得到另一个函数fθ2(x),把所有的函数集合起来得到一个函数的集合。但是该函数的集合太小了,没有包含任何一个函数,可以让损失变低的函数不在模型可以描......
  • 必备大模型学习手册:ChatGPT 从入门到精通(PDF版免费)
    ChatGPT作为⼀种强⼤的⾃然语⾔处理模型,已经成为⼈⼯智能领域的重要研究⽅向之⼀。在不断的发展和创新中,ChatGPT已经具备了很强的⾃然语⾔处理能⼒,其可以实现⾃然语⾔的⽣成、理解和交互,为⼈类的⽣产和⽣活带来了巨⼤的便利和创新。一、书籍介绍这本ChatGPT从入门到......
  • 新手入门 | 搭建 AI 模型开发环境
    目录安装显卡驱动和开发库对于Tesla系列显卡对于N卡安装CUDA和cuDNN安装Miniconda安装PyTorch和Transformers使用Modelscope下载加载模型PyCharm项目配置模型加载和对话CPU和GPU问题transformers版本错误TORCH_USE_CUDA_DSA错误学习模型开发时,搭建环境可能会......