2023.11-9 hive数据仓库,概念,架构

news2024/11/26 4:48:59

 

目录

一.HDFS、HBase、Hive的区别

二.大数据相关软件

三. Hive 的优缺点

1)优点

2)缺点

四. Hive 和数据库比较

1)查询语言

2)数据更新

3)执行延迟

4)数据规模

五.hive架构流程

六.MetaStore元数据管理三种模式 


一.HDFS、HBase、Hive的区别

  1、HDFS(分布式文件系统): 

  • 是Hadoop两大核心组成部分之一,提供在廉价服务器集群中进行大规模分布式文件存储的能力。
  • 具有很好的容错能力,并且兼容廉价的硬件设备,因此可以较低成本利用现有机器实现大流量和大数据量的读写

2、HBase(分布式数据库):

  • 是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据
  • 支持超大规模数据存储,可以通过水平扩展的方式,利用廉价计算机集群处理由超过10亿行数据和数百万列元素组成的数据表

3、Hive(数据仓库):

  • 基于Hadoop的数据仓库工具,可以用于对存储在Hadoop文件中的数据集进行数据整理、特殊查询和分析处理。
  • hive是基于hadoop的数据仓库工具,可以对于存储在hadoop文件中的数据集进行数据整理,特殊查询和分析处理

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

二.大数据相关软件

HDFS:负责最终数据的存储                        YARN:主要提供资源的分配

Hive:用于编写SQL进行数据分析                oozie:用来做自动化定时调度

Sqoop:用于数据的导入导出                        HUE:提升操作Hadoop的用户体验,基于HUE操作HDFS、Hive......

三. Hive 的优缺点

1)优点
  1. 操作接口采用类 SQL 语法,提供快速开发的能力(简单、容易上手)。
  2. 避免了去写 MapReduce,减少开发人员的学习成本。
  3. Hive 的执行延迟比较高,因此 Hive 常用于数据分析,对实时性要求不高的场合。
  4. Hive 优势在于处理大数据,对于处理小数据没有优势,因为 Hive 的执行延迟比较高。
  5. Hive 支持用户自定义函数,用户可以根据自己的需求来实现自己的函数。
2)缺点
  1. Hive 的 HQL 表达能力有限

    1. 迭代式算法无法表达
    2. 数据挖掘方面不擅长,由于 MapReduce 数据处理流程的限制,效率更高的算法却无法实现。
  2. Hive 的效率比较低

    1. Hive 自动生成的 MapReduce 作业,通常情况下不够智能化
    2. Hive 调优比较困难,粒度较粗

四. Hive 和数据库比较

由于 Hive 采用了类似 SQL 的查询语言 HQL(Hive Query Language),因此很容易将 Hive 理解为数据库。其实从结构上来看,Hive 和数据库除了拥有类似的查询语言,再无类似之处。 本文将从多个方面来阐述 Hive 和数据库的差异。数据库可以用在 Online 的应用中,但是 Hive 是为数据仓库而设计的,清楚这一点,有助于从应用角度理解 Hive 的特性。

1)查询语言

由于 SQL 被广泛的应用在数据仓库中,因此,专门针对 Hive 的特性设计了类 SQL 的查询语言 HQL。熟悉 SQL 开发的开发者可以很方便的使用 Hive 进行开发。

2)数据更新

由于 Hive 是针对数据仓库应用设计的,而数据仓库的内容是读多写少的。因此,Hive 中不建议对数据的改写,所有的数据都是在加载的时候确定好的。而数据库中的数据通常是需要经常进行修改的,因此可以使用 INSERT INTO … VALUES 添加数据,使用 UPDATE … SET 修 改数据。

3)执行延迟

Hive 在查询数据的时候,由于没有索引,需要扫描整个表,因此延迟较高。另外一个导致 Hive 执行延迟高的因素是 MapReduce 框架。由于 MapReduce 本身具有较高的延迟,因此在利用 MapReduce 执行 Hive 查询时,也会有较高的延迟。相对的,数据库的执行延迟较低。 当然,这个低是有条件的,即数据规模较小,当数据规模大到超过数据库的处理能力的时候,Hive 的并行计算显然能体现出优势。

4)数据规模

由于 Hive 建立在集群上并可以利用 MapReduce 进行并行计算,因此可以支持很大规模的数据;对应的,数据库可以支持的数据规模较小。

 

五.hive架构流程

六.MetaStore元数据管理三种模式 

 metastore服务配置有3种模式: 内嵌模式、本地模式、远程模式

内嵌模式:
    优点: 配置简单 hive命令直接可以使用
    缺点: 不适用于生产环境,derby和Metastore服务都嵌入在主Hive Server进程中,一个服务只能被一个客户端连接(如果用两个客户端以上就非常浪费资源),且元数据不能共享

    
本地模式: 
    优点:可以单独使用外部的数据库(mysql),元数据共享
    缺点:相对浪费资源,metastore嵌入到了hive进程中,每启动一次hive服务,都内置启动了一个metastore。
    
远程模式:
    优点:可以单独使用外部库(mysql),可以共享元数据,本地可以连接metastore服务也可以连接hiveserver2服务,增加了扩展性(其他依赖hive的软件都可以通过Metastore访问hive)
    缺点:需要注意的是如果想要启动hiveserver2服务需要先启动metastore服务

 

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

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

相关文章

Could not load library libcudnn_cnn_train.so.8, 解决类似问题的思路与方法

完整报错 Could not load library libcudnn_cnn_train.so.8. Error: /home/ai/anaconda3/envs/ai/bin/../lib/libcudnn_ops_train.so.8: undefined symbol: _ZN5cudnn3ops26JoinInternalPriorityStreamEP12cudnnContexti, version libcudnn_ops_infer.so.8 错误原因 该错误其…

Tcl语言:基础入门(一)

Tcl语言https://blog.csdn.net/weixin_45791458/category_12488978.html?spm1001.2014.3001.5482 Tcl语言是一种脚本语言,类似于Bourne shell(sh)、C shell(csh)、Bourne-Again Shell(bash)等UNIX shell语言。Shell程序主要作为胶水缝合其他…

[100天算法】-定长子串中元音的最大数目(day 67)

题目描述 给你字符串 s 和整数 k 。请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。英文中的 元音字母 为(a, e, i, o, u)。示例 1:输入:s "abciiidef", k 3 输出:3 解释&#xf…

Excel和Chatgpt是最好的组合。

内容来源:bitfool1 Excel和Chatgpt是最好的组合。 您可以轻松地自动化数据处理。 我向您展示如何在不打字公式的情况下将AI与Excel一起使用: 建立chatgpt 主要目的是使用Chatgpt自动编写Excel宏。 这消除了键入公式的需求,并让您在自然语言…

53基于matlab的Tamura纹理特征提取

基于matlab的Tamura纹理特征提取,包括粗糙度、对比度、方向度、线性度、规则度、粗糙度六种,可替换自己的数据进行特征提取。程序已调通,可直接运行。 53 方向度、线性度、规则度 (xiaohongshu.com)

axios请求的问题

本来不想记录,但是实在没有办法,因为总是会出现post请求,后台接收不到数据的情况,还是记录一下如何的解决的比较好。 但是我使用export const addPsiPurOrder data > request.post(/psi/psiPurOrder/add, data); 下面是封装的代码。后台接…

系列一、Shiro概述

一、概述 Shiro是一款主流的Java安全框架,不依赖任何容器,可以运行在JavaSE 和 JavaEE项目中,它的主要作用是对访问系统的用户进行身份认证、授权、会话管理、加密等操作。 一句话:Shiro是一个用来解决安全管理的系统框架&#x…

洛谷P4185 离线+并查集

好题&#xff0c;发现没有强制在线&#xff0c;可以离线操作 排序之后带集合点数的并查集就好了 #include<bits/stdc.h> using namespace std; const int N 1e510; int n,m; int p[N],sz[N];int find(int x){if(x!p[x])p[x] find(p[x]);return p[x]; } struct Node{in…

【自动控制原理】时域分析法:稳定性分析(稳)、误差分析和计算(准)

文章目录 第3章 时域分析法3.1 基本概念3.2~4 一阶、二阶、高阶系统的时间响应及动态性能3.6 稳定性分析——稳3.6.1. 稳定性的定义3.6.2 稳定性的条件3.6.3 劳斯稳定判据首列出现0&#xff0c;但该行不全为0首列出现0&#xff0c;且该行全为0 3.5 误差分析和计算——准3.5.1稳…

矢量图形编辑软件Boxy SVG mac中文版软件特点

Boxy SVG mac是一款基于Web的矢量图形编辑器&#xff0c;它提供了一系列强大的工具和功能&#xff0c;可帮助用户创建精美的矢量图形。Boxy SVG是一款好用的软件&#xff0c;并且可以在Windows、Mac和Linux系统上运行。 Boxy SVG mac软件特点 简单易用&#xff1a;Boxy SVG的用…

使用sizeof()和strlen()去计算【数组】和【指针】的大小

文章目录 一、知识回顾1、回顾sizeof()、strlen的作用&#xff1a;2、数组和指针3、数组名 二、sizeof()、strlen()的使用区别1、注意区别&#xff1a;2、一维数组与一级指针3、二维数组与二级指针 三、总结回顾 一、知识回顾 1、回顾sizeof()、strlen的作用&#xff1a; siz…

【18】c++11新特性 —>线程同步

线程同步&#xff1a;线程同步就是让多个线程按顺序访问临界区域&#xff0c;只有在当前线程访问临时区结束后&#xff0c;下一个线程才能继续访问。&#xff08;临界区加锁即可&#xff09; #include <iostream> #include <chrono> #include <thread> #inc…

【ZYNQ】裸机 PS + PL 双网口实现之 SDK 程序设计

涉及 lwip 库文件及 ZYNQ 配置相关可参考以下文章&#xff1a; 【ZYNQ】裸机 PS PL 双网口实现之 LWIP 库文件修改 【ZYNQ】裸机 PS PL 双网口实现之 ZYNQ 配置 工程配置 启动 SDK &#xff0c;创建模板工程&#xff0c;配置 BSP。 勾选 lwip141 库。 对 lwip 做如下配置…

Flink—— Data Source 介绍

Data Source 简介 Flink 做为一款流式计算框架&#xff0c;它可用来做批处理&#xff0c;即处理静态的数据集、历史的数据集&#xff1b;也可以用来做流处理&#xff0c;即实时的处理些实时数据流&#xff0c;实时的产生数据流结果&#xff0c;只要数据源源不断的过来&#xff…

在IDEA中配置Web开发环境

一、idea配置Web开发环境 第一步&#xff1a;下载并安装Tomcat服务器&#xff08;建议放根目录&#xff0c;完整路径中不要出现中文&#xff09; 第二步&#xff1a;打开IDEA&#xff0c;新建java项目 第三步&#xff1a;为项目添加Web应用 在项目上右键➡️选择“Add Framew…

算法通关村第七关-黄金挑战二叉树迭代遍历

大家好我是苏麟 , 今天带来二叉树的迭代遍历 . 二叉树的迭代遍历 前序编列 描述 : 给你二叉树的根节点 root &#xff0c;返回它节点值的 前序 遍历。 题目 : LeetCode 二叉树的前序遍历 : 144. 二叉树的前序遍历 分析 : 前序遍历是中左右&#xff0c;如果还有左子树就一…

交叉编译中常见错误解决方法

目录 程序运行基础知识 编译程序时去哪找头文件&#xff1f; 链接时去哪找库文件&#xff1f; 运行时去哪找库文件&#xff1f; 运行时不需要头文件&#xff0c;所以头文件不用放到板子上 常见错误的解决方法 头文件问题 库文件问题 运行问题 交叉编译程序的万能命令 …

YOLOv5-6.1源码详解之损失函数loss.py

目录 1 目标检测结果精确度的度量 2 YOLOv5-6.1损失函数 2.1 classification类别损失 2.2 confidence置信度损失 2.3 localization定位损失 3 YOLOv5-6.1损失函数loss.py代码解析 3.1 class ComputeLoss 3.1.1 __init__ 3.1.2 build_targets 3.1.3 _call__ 3.2 smo…

说说React diff的原理是什么?

一、是什么 跟Vue一致&#xff0c;React通过引入Virtual DOM的概念&#xff0c;极大地避免无效的Dom操作&#xff0c;使我们的页面的构建效率提到了极大的提升 而diff算法就是更高效地通过对比新旧Virtual DOM来找出真正的Dom变化之处 传统diff算法通过循环递归对节点进行依…

Semantic-Guided Zero-Shot Learning for Low-Light ImageVideo Enhancement

论文阅读之无监督低光照图像增强 Semantic-Guided Zero-Shot Learning for Low-Light Image/Video Enhancement 代码&#xff1a; https://github.com/ShenZheng2000/SemantiGuided-Low-Light-Image-Enhancement 在低光条件下增加亮度的一个可行方法是使用更高的ISO或更长时间…