数据仓库Hive(林子雨课程慕课)

news2024/12/23 1:17:43

文章目录

      • 9.数据仓库Hive
        • 9.1 数据仓库的概念
        • 9.2 Hive简介
        • 9.3 SQL语句转换为MapReduce作业的基本原理
        • 9.4 Impla
          • 9.4.1 Impala简介
          • 9.4.2 Impala系统架构
          • 9.4.3 Impala查询执行过程
          • 9.4.4 Impala与Hive的比较
        • 9.5 Hive的安装和基本操作
          • 9.5.1 Hive安装
          • 9.5.2 Hive基本操作

9.数据仓库Hive

9.1 数据仓库的概念
  • 数据仓库的概念

    • 数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用户支持管理决策
  • 根本目的:基于数据仓库的分析结果->以支持企业内部的商业分析和决策->作出相关的经营决策

  • 数据仓库的体系结构:

    image-20231010211025379

  • 数据仓库和传统数据库区别

    • 仓库中的数据是相对稳定的,不会频繁发生变化,存储大量的历史数据

    • 数据仓库基本上保留了历史上所有数据,保留历史而传统观数据库只能保留某一时刻状态的信息

      image-20231010211239917

  • 传统数据仓库(基于关系型数据库)面临挑战

    • 无法满足快速增长的海量数据存储需求
    • 无法有效处理不同类型的数据:基于结构化存储,无法存储非结构化的数据
    • 计算和处理能力不足:纵向扩展能力有限,水平扩展能力不足
9.2 Hive简介
  • Hive特点

    • 传统的数据仓库既是数据存储产品也是数据分析产品
    • 传统的数据仓库能同时支持数据的存储和处理分析
    • Hive本身并不支持数据存储和处理
    • 其实只是提供了一种编程语言
  • 其架构于Hadoop之上,Hadoop有支持大规模数据存储的组件HDFS,以及支持大规模数据处理的组件MapReduce

    Hive借助于这两个组件,完成数据的存储和处理

    • 其依赖分布式文件系统HDFS存储睡
    • 依赖分布式并行计算系统MapReduce处理数据
    • 借鉴SQL语言设计了新的查询语言HiveQL
  • Hive总结

    • 它定义了简单的类似SQL的查询语言HiveQL
    • 并提供了HiveQL这种语句,来运行具体的MapReduce任务
    • 支持了类似SQL的接口,很容易进行移植
    • Hive是一个可以提供有效合理直观组织和使用数据的分析工具
  • Hive两个方面的特性

    • 采用批处理的方式处理海量数据

      image-20231011143923125

    • Hive提供了一系列对数据仓库进行提取、转换、加载(ETL)的工具

      image-20231011144027990

  • Hive与Hadoop生态的其他组件的关系

    image-20231011144116568

  • Pig和Hive的区别

    • Pig更适合做数据的实时分析,而不是海量数据的批处理,主要是做数据的抽取、转换、加载环节

      image-20231011144315446

  • Hive和传统数据库的区别

    • 其在很多方面与传统关系型数据库类似,但是其底层以来的是HDFS和MapReduce,所以在很多方面又有别于传统数据库

      image-20231011144603034

  • Hive在企业大数据分析平台中的应用

    • Mahout:Hadoop平台上的开源组件,很多机器学习的算法,在Mahout上都已经实现了

      image-20231011145023668

  • Hive在Fackbook公司的应用

    • Fackbook是Hive数据仓库的开发者

      image-20231011145218597

    • FaceBook部署了大量的Web服务器

      • Web服务器日志流通过订阅服务器(Scribe Servers)将日志流收集整理,存入Filers(网络日志服务器)

      • Filers将其保存在分布式文件系统之上

        image-20231011145443385

  • Hive系统架构

    image-20231011145534611

    • Hive对外访问接口

      image-20231011145641094

    • 驱动模块(Driver)

      image-20231011145714233

    • 元数据存储模块(Metastore)

      image-20231011145807251

    • Qubbole、Karmasphere、Hue也可以直接访问Hive

      image-20231011145849230

  • Hive HA(High Availability)基本原理

    • Hive很多时候会表现出不稳定

    • Hive HA:在集群中设置多个Hive实例,并统一放入资源池,外部所有访问通过HAProxy进行访问

      • 首先用户访问HA Proxy

      • 然后对Hive实例进行逻辑可用性测试,若不可用,则将其加入黑名单,继续测试下一个Hive实例是否可用

      • 每隔一定的周期,HA Proxy会重新对列入黑名单的实例进行统一处理

        image-20231011150426604

9.3 SQL语句转换为MapReduce作业的基本原理
  • SQL中的连接操作转换为MapReduce作业

    • Join的实现原理

      image-20231011150646054

    • 连接操作

      • 编写一个Map处理逻辑

      • Map处理逻辑输入关系数据库的表

      • 通过Map对它进行转换,生成一系列键值对

        image-20231011151031828

    • group by的实现原理

      image-20231011151258887

  • Hive如何将SQL语句转为MapReduce操作:当用户向Hive输入一段命令或者查询时,Hive需要和Hadoop交互工作来完成该操作

    • 驱动模块接受该命令或者查询编译器

    • 对该命令或查询进行解析编译

    • 由优化器对该命令或查询进行优化计算

    • 该命令或查询通过执行器进行执行

  • 具体分为七步骤

    • 由Hive驱动模块中的编译器对用户输入的SQL语句进行语法和词法解析,将SQL语句转化为抽象语法数的形式
    • 抽象语法数的结构仍很复杂,不方便直接翻译为MapReduce算法程序,因此,需要把抽象语法数转为查询块
    • 将查询块转化为逻辑查询计划,里面包含了许多逻辑操作符
    • 重写逻辑查询计划,进行优化合并多余操作,减少MapReduce任务数量
    • 将逻辑操作符转换成需要执行的具体MapReduce任务
    • 对生成的MapReduce任务进行优化生成最终的MapReduce任务执行计划(物理计划)
    • 由Hive驱动模块中的执行器对最终的MapReduce任务进行执行输出

    image-20231011152300285

    • 简单说明

      image-20231011152932323

9.4 Impla
9.4.1 Impala简介
  • Hive是建立在Hadoop平台之上,且其依赖底层的MapReduce和HDFS,所以它的延迟比较高

    image-20231011153813444

  • Impala底层也是构建在HDFS和HBase之上

    image-20231011153741875

9.4.2 Impala系统架构
  • Impala系统架构

    • Impala和Hive、HDFS、HBase都是统一部署在一个Hadoop平台上面

    image-20231011153933608

  • Impala的典型组件

    • Impalad:负责具体相关的查询任务

      其包含三个模块:

      image-20231011154424084

      • Impalad作用

        image-20231011154619457

    • State Store:负责元数据数据管理和状态管理

      • 每个查询提交,系统会为其创建一个StateStored进程

      • 作用

        image-20231011154832510

    • CLI:用户访问接口

      • 作用

        image-20231011154902725

      • Impala的元数据是直接存储在Hive中的,它是借助Hive来存储Impala的元数据
      • mpala采用与Hive相同的元数据、相同的SQL语法、相同的ODBC驱动程序和用户接口
      • 在—个Hadoop平台上可以统一部署Hive和Impala等分析工 实现在一个平台上面可以同时满足批处理和实时查询
9.4.3 Impala查询执行过程
  • 查询执行过程框图

    image-20231011155150238

    • 0.注册和订阅

      image-20231011155320940

    • 1.提交查询

      image-20231011155349613

    • 2.获取元数据和数据地址

      image-20231011155449416

    • 3.分发查询任务

      image-20231011155519229

    • 汇聚结果

      image-20231011155542533

    • 返回结果

      image-20231011155638255

9.4.4 Impala与Hive的比较
  • Hive和Impala的不同点

    image-20231011155750184

    • Hive适合于长时间的批处理查询分析,而Impala适合于实时交互式SQL查询

    • Hive依赖于MapReduce计算框架,Impala把执行计划表现为一棵完整的执行计划树,直接分发执行计划到各个Impalad执行查询

    • Hive在执行过程中,如果内存放不下所有数据则会使用外存,以保证查询能顺序执行完成;
      Impala在遇到内存放不下数据时,不会利用外存所以Impala目前处理查询时会受到一定的限制

  • Hive和Impala的相同点

    • Hive和Impala使用相同的存储数据池,都支持把数据存储于HDFS和HBase中
    • Hive与Impala使用相同的元数据
    • Hive与Impala中对SQL的解释处理比较相似,都是通过词法分析生成执行计划
  • 总结

    • Impala的目的不在于替换现有的MapReduce工具
    • 把Hive与Impala配合使用效果最佳
    • 可以先使用Hive进行数据转换处理,之后再使用Impala在Hive处理后的结果数据集上进行快速的数据分析
9.5 Hive的安装和基本操作
9.5.1 Hive安装
  • Hive安装

    见:Hive3.1.3安装和使用指南_厦大数据库实验室博客 (xmu.edu.cn)

9.5.2 Hive基本操作
  • Hive数据类型

    image-20231011162806188

    • Hive还提供了一些集合数据类型,包括Array、map、struct等
  • Create:创建数据库、表、视图

    • 创建数据库

      image-20231011162946275

    • 创建表

      image-20231011163046763

    • 创建视图

      image-20231011163117197

  • 查看数据库

    image-20231011163146748

  • 查看表和视图

    image-20231011163224853

  • load:向表中装载数据

    image-20231011163307456

    image-20231011163337546

  • Insert:向表中插入数据或从表中导出数据

    image-20231011163445685

  • WordCount算法在MapReduce中的编程实现和在Hive中编程实现的主要不同点

    image-20231011164107767

    image-20231011164125112

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1083582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F407ZGT6移植AD7606

昨天调试的时候在STM32F103VCT6程序一切正常。但是将代码移植到STM32F407ZGT6时出现问题。 不能正常读取结果,会出现4996的错误信号而且经常出现,正确信号的值也不对乘2才能对上。 总结原因。 将AD7606_read_data里的延时参数修改为3、4、4问题解决。

PanoFlow:学习360°用于周围时间理解的光流

1.摘要: 光流估计是自动驾驶和机器人系统中的一项基本任务,它能够在时间上解释交通场景。自动驾驶汽车显然受益于360提供的超宽视野(FoV)◦ 全景传感器。 然而,由于全景相机独特的成像过程,为针孔图像设计…

SpringBoot+Vue前后端文件传输问题总结

SpringBootVue前后端文件传输问题总结 一、文件上传功能前端:文件上传1.File2.FormData(常用)3.Blob4.ArrayBuffer5.Base64 后端:文件接收1.MultipartFile 二、文件下载功能后端:文件传输前端:文件接收1.设…

动捕设备在动画影视制作中的应用

随着科技的发展,动画影视作品中的CG角色越来越逼真、生动形象,而这些CG角色大多背后是通过真人穿戴动捕设备,从而捕捉真人演员的肢体动作而创建的,如《遮天》作为国内首部全流程虚幻引擎5动画,结合动捕设备实现真人化动…

三相空气开关

一、三相空开的作用 三相空气开关对任意一相出现过载或短路,均起到保护作用。 二、三相空气开关原理图: 1、短路时,电磁脱钩器工作 2、过载时,发热元件引起双金属片弯曲,使脱钩器工作 3、测试按钮闭合时&#xff0c…

<图像处理> Fast角点检测

Fast角点检测 基本原理是使用圆周长为N个像素的圆来判定其圆心像素P是否为角点,如下图所示为圆周长为16个像素的圆(半径为3);OpenCV还提供圆周长为12和8个像素的圆来检测角点。 相对中心像素的位置信息 //圆周长为16 static c…

uni-app : 生成三位随机数、自定义全局变量、自定义全局函数、传参、多参数返回值

核心代码 function generateRandomNumber() {const min 100;const max 999;// 生成 min 到 max 之间的随机整数// Math.random() 函数返回一个大于等于 0 且小于 1 的随机浮点数。通过将其乘以 (max - min 1),我们得到一个大于等于 0 且小于等于 (max - min 1…

【ARM CoreLink 系列 7 -- TZC-400控制器简介】

文章目录 概述TZC-400 使用示例TZC-400 interfacesFPID & NSAIDRegionregion 检查规则 FeaturesRegister summaryTZC-400和TZPC和TZASC区别 转自:https://www.cnblogs.com/lvzh/p/16582717.html 概述 TZC-400对发送到内存或外设的事务执行安全检查。TZC-400使…

华为认证 | HCIP-Datacom,这门认证正式发布新版本!

华为认证数通高级工程师HCIP-Datacom-Campus Network Planning and Deployment V1.5(中文版)自2023年9月28日起,正式在中国区发布。 01 发布概述 基于“平台生态”战略,围绕“云-管-端”协同的新ICT技术架构,华为公司…

Visual Studio 2022 cmake编译 PP-OCRv4

1 环境准备 下载PaddleOCR PaddleOCR C 部署代码位于 PaddleOCR\deploy\cpp_infer目录下 paddle_inference paddle_inference opencv 这里使用已经安装好的opencv4.5.5下载dirent-master.zip 下载dirent-master.zip, 解压并复制dirent.h文件到PaddleOCR\deploy\cpp_infer目录下…

Spark(林子雨慕课课程)

文章目录 10. Spark10.1 Spark简介10.1.1 Spark简介10.1.2 Spark和Hadoop的对比 10.2 Spark生态系统10.3 Spark运行架构10.3.1 基本概念和架构设计 10.3.2 Spark运行基本流程10.3.3 RDD概念10.3.4 RDD特性10.3.5 RDD的依赖关系和运行过程 10.4 Spark SQL10.5 Spark的部署和应用…

video_topic

使用qt5,ffmpeg6.0,opencv,os2来实现。qt并非必要,只是用惯了。 步骤是: 1.读取rtsp码流,转换成mat图像 2.发送ros::mat图像 项目结构如下: videoplayer.h #ifndef VIDEOPLAYER_H #define VIDEOPLAYER_H#include …

【node】nodemailer配置163、qq等邮件服务指南

上一章 【node】发送邮件及附件简要使用说明 邮箱配置 参数配置参考如下: let transporter nodemailer.createTransport({host: smtp.qq.com,port: 465,secure: true,auth: {user: **********,pass: your-password} });邮箱服务提供商的要求,配置SM…

应用商店优化的好处有哪些?

应用程序优化优势包括应用在商店的可见性和曝光度,高质量和被相关用户的更好发现,增加的应用下载量,降低用户获取成本和持续增长,增加应用收入和转化率以及全球受众范围。 1、提高知名度并在应用商店中脱颖而出。 如果用户找不到…

麒麟操作系统提示“默认密钥环已上锁”的解决办法

在国产麒麟操作系统上,有的时候不知道为啥,打开vscode或者其他应用软件时,总是提示“密钥环已上锁”,该怎么处理呢? 需要点击“开始”,在搜索框中输入“password” 点击打开“密码和密钥”,看到如下图。 然后点击左上角的箭头,回退,打开如下图:

HTTP协议是什么

HTTP (全称为 “超文本传输协议”) 是一种应用非常广泛的 应用层协议,是一种网络通信协议。 超文本:所谓 “超文本” 的含义, 就是传输的内容不仅仅是文本(比如 html, css 这个就是文本), 还可以是一些其他的资源, 比如图片, 视频, 音频等二进制的数据。…

软件工程第六周

软件体系结构概述 体系结构:一种思想,而框架就是思想的实现,设计模式就是根据某一特殊问题实现的框架。 体系结构:体系结构是软件系统的高级结构。它定义了系统的主要组成部分,以及这些部分之间的关系和交互方式。 框…

压缩包格式可以转换吗?如何转换?

不知道大家会不会遇到需要转换压缩包格式的问题?如果需要转换压缩包格式,除了将文件解压出来之后,重新压缩以外,还有其他方法,今天将方法分享个大家: 工具:WinRAR 打开WinRAR,选中…

《Unity Shader 入门精要》笔记07

透明效果 为什么渲染顺序很重要Unity Shader的渲染顺序透明度测试透明度混合开启深度写入的半透明效果ShaderLab 的混合命令混合等式和参数混合操作常见的混合类型 双面渲染的透明效果透明度测试的双面渲染透明度混合的双面渲染 Unity中通常使用两种方法来实现透明效果&#xf…