摸鱼大数据——Hive基础理论知识——Hive基础架构

1、Hive和MapReduce的关系

1- 用户在Hive上编写数据分析的SQL语句,然后再通过Hive将SQL语句翻译成MapReduce程序代码,最后提交到Yarn集群上进行运行
2- 大家可以将Hive理解成有道词典,帮助你翻译英文

2、Hive架构

用户接口: 包括 CLI、JDBC/ODBC、WebGUI。其中,CLI(command line interface)为shell命令行;Hive中的Thrift服务器允许外部客户端通过网络与Hive进行交互,类似于JDBC或ODBC协议。WebGUI是通过浏览器访问Hive。Hive提供了 Hive Shell、 ThriftServer等服务进程向用户提供操作接口

Hiveserver2(Driver): 包括了语法、词法检查、计划编译器、优化器、执行器。核心作用是完成对HiveSQL(HQL)语句从词法、语法检查,并且进行编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后由MapReduce进行执行。
注意: 这部分内容不是具体的进程,而是封装在Hive所依赖的jar中通过Java代码实现。

元数据信息: 包含用Hive创建的Database、table,以及表里面的字段等详细信息
元数据存储: 存储在关系型数据库(RDBMS  relation database manager system)中。例如:Hive中有一个默认的关系型数据库是Derby,但是一般会改成MySQL。


Metastore: 是一个进程(服务),用来管理元数据信息。
作用: 客户端连接到Metastore中,Metastore再去关系型数据库中查找具体的元数据信息,然后将结果返回给客户端。
特点: 有了Metastore服务以后,就可以有多个客户端(工作中一般使用的就是DataGrip)同时连接。而且这些客户端都不需要知道元数据存储在什么地方,你只需要连接到Metastore服务里面就行。

3、MetaStore元数据管理服务

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

推荐使用: 远程模式

内嵌模式:
    优点: 解压hive安装包 bin/hive 启动即可使用
    缺点: 不适用于生产环境,derby和Metastore服务都嵌入在主Hive Server进程中,一个服务只能被一个客户端连接(如果用两个客户端以上就非常浪费资源),且元数据不能共享


本地模式: 
    优点: 可以单独使用外部数据库(一般是MySQL)进行元数据的管理
    缺点: 相对浪费资源。指的是Metastore每次启动一次的时候都需要对应的启动Hiveserver2服务。也就是本地模式他们两个是成对出现的。这3个服务的启动顺序,MySQL->metastore->Hiveserver2
    
    
远程模式: 
    优点: 可以单独使用外部数据库(一般是MySQL)进行元数据的管理。Hiveserver2、metastore、MySQL这3个可以单独配置、启动、运行
    缺点:
        1- 这3个服务的启动顺序,MySQL->metastore->Hiveserver2
        2- 这3个服务可能是分布在不同机器上运行的,可能会导致不同服务间进行数据交换速度比较慢
        
 

4、数据仓库和数据库

4.1 数据仓库和数据库的区别

数据库与数据仓库的区别:实际讲的是OLTP与OLAP的区别
OLTP(On-Line Transaction Processin): 联机事务处理。数据库中可以进行数据的【增删改查】操作

OLAP(On-Line Analytical Processing): 联机分析处理。数据仓库中主要是对数据进行【查询】操作

数据仓库主要特征:

数据仓库的出现,并不是要取代数据库,主要区别如下:
    1- 数据库是面向事务的设计,数据仓库是面向主题设计的。
    2- 数据库是为捕获(指的是能够对数据进行增删改操作)数据而设计,数据仓库是为分析数据而设计
    3- 数据库一般存储业务数据(由于用户的各种操作行为产生的数据,例如:下单、商品浏览等),数据仓库存储的一般是历史数据。
    4- 数据库设计是尽量避免冗余,一般针对某一业务应用进行设计,比如一张简单的User表,记录用户名、密码等简单数据即可,符合业务应用,但是不符合分析。
    5- 数据仓库在设计是有意引入冗余,依照分析需求,分析维度、分析指标进行设计。
 

4.2 数据仓库基础三层架构

源数据层(ODS): 该层数据几乎不做任何处理操作。直接使用外部系统中的数据结构(数据库名称、表名称、表结构)。为大数据数仓中后续的其他处理提供数据支撑

数据仓库层(DW): 也称之为细节层。DW层的数据应该做到一致、准确、干净。也就是对ODS层中的数据进行ETL以及数据指标分析

数据应用层(DA或APP): 前端页面直接读取该层的数据,进行前端可视化(以看得见的图表、曲线图、柱状图、饼图)的展示


大数据前端产品示例:https://tongji.baidu.com/main/overview/demo/overview/index

4.3 ETL和ELT
广义上ETL:数据仓库从各数据源获取数据及在数据仓库内的数据转换和流动都可以认为是ETL(抽取Extract, 转化Transform , 装载Load)的过程。
​
但是在实际操作中将数据加载到仓库却产生了两种不同做法:ETL和ELT。
​
狭义上ETL: 先将数据从业务系统(可以理解为例如京东的订单数据)中抽取到数据仓库的ODS层中,然后执行转换操作,将数据结构化并且转换层适合后续容易处理的表结构
​
ELT: 将数据从业务系统中抽取并且直接加载到数据仓库的DW层的表里面。加载完以后,再根据业务需求对数据进行清洗以及指标的计算分析

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ISCC——AI

得到一个T4.pyc 回编译一下 得到下面代码 import base64def encrypt_and_compare(user_input, offset_str, target_base64):if len(user_input) ! 24:return Please enter a string with a length of 24encrypted Nonefor i, char in enumerate(user_input):offset int(off…

自然资源-各级国土空间总体规划的审查要点及流程总结

自然资源-各级国土空间总体规划的审查要点及流程总结 国土空间规划是对一定区域国土空间开发保护在空间和时间上作出的安排,包括总体规划、详细规划和相关专项规划。 国土空间规划管理是国土空间规划中重要的一环。中共中央、国务院发布《关于建立国土空间规划体系…

C++ Primer Plus第十八章复习题

1、使用用大括号括起的初始化列表语法重写下述代码。重写后的代码不应使用数组ar。 class z200 { private:int j;char ch;double z; public:Z200(int jv,char chv,zv) : j(jv), ch (chv), z(zv){} };double x 8.8; std::string s "what a bracing effect ! …

添砖Java(十一)——常见类的使用Object,Math,System,BigDeciaml,包装类

目录 object: toString: equals: ​编辑 Math:​编辑 System: BigDecimal: 基本数据的包装类:​编辑 object: 我们知道,所有的类都是间接或直接继承了object类。然后object里面有几个用得很多的方法…

使用printf的两种方法,解决printf不能使用的问题

使用printf的两种方法,解决printf不能使用的问题 一、微库法 我们使用printf前要加上重定向fputc //重定义fputc函数 int fputc(int ch, FILE *f) { while((USART1->SR&0X40)0);//循环发送,直到发送完毕 USART1->DR (uint8_t) ch; return…

【JVM实践与应用】

JVM实践与应用 1.类加载器(加载、连接、初始化)1.1 类加载要完成的功能1.2 加载类的方式1.3 类加载器1.4 双亲委派模型1.5自定义ClassLoader1.6 破坏双亲委派模型2.1 类连接主要验证内容2.2 类连接中的解析2.3 类的初始化3.1 类的初始化时机3.2 类的初始化机制和顺序3.2 类的卸…

RedHat9 | DNS剖析-配置辅助DNS服务器

一、实验环境 1、辅助域名DNS服务器 DNS通过划分为若干个区域进行管理,每一个区域由1台或多台DNS服务器负责解析,如果仅仅采用1台DNS服务器,在DNS服务器出现故障后,用户将无法完成解析。 辅助DNS服务器的优点 容灾备份&#x…

Star-CCM+中滞环的实现—场平均监视

前言 前文有介绍过通过更新事件来实现滞环,但是更新事件的方法比较繁琐,应用起来比较困难,本文将介绍一种简单的方法来实现滞环功能。即通过场平均监视来实现,具体方法如下: 一 创建场平均监视 首先在检测量下创建“场平均监视”,具体操作步骤如下图所示: 二 创建质量…

企业客户信息反馈|基于SprinBoot+vue的企业客户信息反馈平台(源码+数据库+文档)

企业客户信息反馈平台 目录 基于SprinBootvue的企业客户信息反馈平台 一、前言 二、系统设计 三、系统功能设计 1平台功能模块 2后台登录 5.2.1管理员功能 5.2.2客户功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&am…

如何使用DotNet-MetaData识别.NET恶意软件源码文件元数据

关于DotNet-MetaData DotNet-MetaData是一款针对.NET恶意软件的安全分析工具,该工具专为蓝队研究人员设计,可以帮助广大研究人员轻松识别.NET恶意软件二进制源代码文件中的元数据。 工具架构 当前版本的DotNet-MetaData主要由以下两个部分组成&#xf…

matlab 使用Otsu方法计算图像全局阈值

目录 一、概述1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、概述

Java----Maven详解

前言 Maven是Java项目的构建工具,通过项目对象模型(POM)管理项目配置信息,自动化构建、测试和部署过程。开发人员可定义项目结构、依赖和构建流程,提高开发效率和质量。本文介绍基本概念和用法,帮助您更好…

大工作量LUAD代谢重编程模型多组学(J Transl Med)

目录 1,单细胞早期、晚期和转移性 LUAD 的细胞动力学变化 2,细胞代谢重编程介导的LUAD驱动恶性转移的异质性 3,模型构建 S-MMR评分管线构建 4,S-MMR 模型的预后评估 5, 还开发了S-MMR 评分网络工具 6&#xff0c…

笔记89:LeetCode_135_分发糖果

前言: 注:代码随想录中没有很清楚的提起想出方法的思路,只是给出了解决这个问题的大致思路和代码;下面我将介绍一下我的思考过程,并贴出实现代码; a a a a 思考过程: 思路1:为了…

Hadoop3:HDFS中DataNode与NameNode的工作流程

一、DataNode中的数据情况 数据位置 /opt/module/hadoop-3.1.3/data/dfs/data/current/BP-823420375-192.168.31.102-1714395693863/current/finalized/subdir0/subdir0块信息 每个块信息,由两个文件保存,xxx.meta保存的是数据长度、校验和、时间戳&am…

【halcon】set_part 实现平移和缩放 彻悟版

背景 之前写了一篇关于set_part 的文章 ,确实也实现了平移和缩放。平移是对的,但是缩放其实有畸变。这个问题一直都困扰着我,知道昨天连续测试了好几个小时,直到晚上11点终于完美解决。 坐标和高宽 坐标 再讲set_part 之前&am…

C语言实现三子棋游戏

目录 一.三子棋游戏分析和设计 二.文件结构设计 三.代码实现 1.先打印菜单,定义menu函数。 2.棋盘初始化 3.下棋 玩家下棋: 电脑下棋: 4判断输赢 判断平局: 四、完整代码 test.c game.h game.c 《三子棋》是一款古老…

【找出满足差值条件的下标 I】python

目录 暴力题解 优化:滑动窗口维护大小值 暴力题解 class Solution:def findIndices(self, nums: List[int], indexDifference: int, valueDifference: int) -> List[int]:nlen(nums)for i in range(n):for j in range(n-1,-1,-1):if abs(i-j)>indexDiffere…

python使用base加密解密

原理 base编码是一种加密解密措施,目前常用的有base16、base32和base64。其大致原理比较简单。 以base64为例,base64加密后共有64中字符。其加密过程是编码后将每3个字节作为一组,这样每组就有3*824位。将每6位作为一个单位进行编码&#xf…