Hive服务详解

Hive服务

HiveServer2、Hive Metastore 服务服务共同构成了 Hive 生态系统中的核心功能,分别负责管理元数据和提供数据查询服务,为用户提供了一个方便、高效的方式来访问和操作存储在 Hive 中的数据。


1. Hive 查询服务(HiveServer2):

在这里插入图片描述

  • Hive 查询服务是通过 JDBC 或 ODBC 接口提供 SQL 查询功能的服务,为用户提供远程访问Hive数据的功能,例如用户期望在个人电脑中访问远程服务中的Hive数据,就需要用到Hiveserver2。
  • 允许用户通过标准 SQL 查询语言来访问存储在 Hive 中的数据,并将查询结果返回给客户端。
  • HiveServer2 提供了多用户并发访问的能力,并支持身份验证、授权等安全特性
  • 用户可以通过各种客户端工具(如 Beeline、Python、Java 等)连接到 HiveServer2,执行查询操作

Hiveserver2用户说明

  • 在远程访问Hive数据时,客户端并未直接访问Hadoop集群,而是由Hivesever2代理访问。
  • 由于Hadoop集群中的数据具备访问权限控制,所以此时需考虑一个问题:那就是访问Hadoop集群的用户身份是谁?是Hiveserver2的启动用户?还是客户端的登录用户?
  • 答案是都有可能,具体是谁,由Hiveserver2的hive.server2.enable.doAs参数决定,该参数的含义是是否启用Hiveserver2用户模拟的功能。
  • 若启用,则Hiveserver2会模拟成客户端的登录用户去访问Hadoop集群的数据,不启用,则Hivesever2会直接使用启动用户访问Hadoop集群数据。模拟用户的功能,默认是开启的。

1.未开启用户模拟

在这里插入图片描述

在生产环境中未开启用户模拟功能可能会造成以下影响

  1. 权限混淆:
  • 如果未开启用户模拟功能,所有的查询和操作都将以 HiveServer2 进程的身份进行
  • 这样一来,不同用户之间的权限将会混淆,所有用户都将共享相同的权限
  • 这可能导致数据访问和操作的混乱,无法实现对不同用户的精细化权限控制
  1. 安全风险:
  • 缺乏用户模拟功能会增加系统的安全风险。因为所有的查询和操作都以相同的身份进行,一旦有用户的凭据泄露或者被滥用,就可能导致对系统中敏感数据的非法访问和操作
  • 这可能会造成数据泄露、数据损坏或者其他安全问题。
  1. 难以追踪和审计:
  • 缺乏用户模拟功能会使得对用户操作的追踪和审计变得困难。
  • 由于所有的操作都以相同的身份进行,无法准确追踪到是哪个用户执行了具体的查询或操作,也无法对用户的行为进行有效的审计和监控。
  1. 管理复杂性增加:
  • 在没有用户模拟功能的情况下,管理员需要更加谨慎地管理用户的权限,以确保不会发生数据访问和操作的冲突。这增加了管理的复杂性,并可能需要花费更多的时间和精力来维护系统的安全和稳定性。

因此,在生产环境中,强烈建议开启用户模拟功能,以确保不同用户之间的权限隔离和系统安全性。


2.开启用户模拟

在这里插入图片描述

生产环境,推荐开启用户模拟功能,因为开启后才能保证各用户之间的权限隔离,增强了系统的安全性和可管理性。

  1. 权限隔离:
  • 用户模拟功能允许不同用户以其自己的身份进行查询和操作,从而实现了权限的精细化管理和隔离。每个用户只能访问其被授权的数据和执行被授权的操作,有效保护了数据的安全性和完整性。
  1. 安全性增强:
  • 通过用户模拟功能,系统可以对不同用户进行身份验证,并根据其角色和权限进行访问控制。这样可以有效防止未经授权的用户访问敏感数据,降低数据泄露和滥用的风险,提高系统的安全性。
  1. 审计和追踪:
  • 用户模拟功能使得对用户操作的审计和追踪变得更加容易。每个查询和操作都可以被追踪到相应的用户身份,管理员可以准确地了解到是哪个用户执行了什么样的操作,从而更好地监控系统的使用情况和安全状态
  1. 管理灵活性:
  • 用户模拟功能提供了灵活的角色和权限管理机制,管理员可以根据实际需求为不同用户分配适当的角色和权限。这样可以根据实际情况灵活调整用户的权限,满足不同用户的需求,提高系统的管理灵活性和可维护性。

2. Hive Metastore 服务:

  • Hive的metastore服务的作用是为Hive CLI或者Hiveserver2提供元数据访问接口。
  • Hive Metastore 是负责管理 Hive 元数据的服务。
  • 它存储了关于 Hive 数据库、表、分区、列等元数据信息,包括表的结构、存储位置等。
  • Hive Metastore 通常使用关系型数据库(如 MySQL、Derby 等)来存储元数据信息。
  • 这个服务的作用是提供对元数据的持久化存储和管理,以便其他 Hive 组件可以通过它来获取元数据信息。

metastore运行模式

在 Apache Hive 中,Metastore 有两种运行模式——嵌入式模式和独立服务模式。

1. 嵌入式模式(Embedded Mode):

在这里插入图片描述

  • 在嵌入式模式下,Metastore 服务与 HiveServer2 进程运行在同一台机器上,它们共享相同的 JVM 进程

  • 这种模式下,Metastore 直接作为 HiveServer2 的一部分运行,没有单独的 Metastore 服务进程

  • 嵌入式模式下,每个Hive CLI都需要直接连接元数据库,当Hive CLI较多时,数据库压力会比较大。

  • 每个客户端都需要用户元数据库的读写权限,元数据库的安全得不到很好的保证

  • 这种模式通常用于小规模的数据处理任务或者单机环境下的开发和测试

2. 独立服务模式(Standalone Mode):

在这里插入图片描述

  • 在独立服务模式下,Metastore 作为一个独立的服务运行在专用的服务器上,与 HiveServer2 进程分开。
  • HiveServer2 进程通过网络与 Metastore 服务通信,Metastore 负责管理元数据,包括表、分区、列等信息。
  • 这种模式通常用于生产环境,因为它提供了更好的可扩展性和灵活性,可以通过多台服务器构建高可用的 Metastore 集群,以应对大规模数据处理任务的需求。

选择适合的运行模式取决于实际的使用场景和需求。对于小规模或者开发测试环境,嵌入式模式可能更加方便简单;而对于生产环境或者大规模数据处理任务,独立服务模式则更为适合。

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

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

相关文章

关于路由过滤、路由策略的实验eNSP

具体接口IP地址如下图所示 第一步:配置IP R1: [R1]int g 0/0/0 [R1-GigabitEthernet0/0/0]ip ad [R1-GigabitEthernet0/0/0]ip address 100.1.1.1 24 Apr 23 2024 19:35:38-08:00 R1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface Giga…

【论文笔记】RS-Mamba for Large Remote Sensing Image Dense Prediction(附Code)

论文作者提出了RS-Mamba(RSM)用于高分辨率遥感图像遥感的密集预测任务。RSM设计用于模拟具有线性复杂性的遥感图像的全局特征,使其能够有效地处理大型VHR图像。它采用全向选择性扫描模块,从多个方向对图像进行全局建模,从多个方向捕捉大的空间…

【快速入门 LVGL】-- 5、Gui Guider界面移植到STM32工程

上篇,我们已学习:【快速入门 LVGL】-- 4、显示中文 工程中添加了两个按钮作示范。运行效果如图: 本篇:把Gui Guider设计好的界面,移植到STM32工程。 特别地: 在使用Gui Guider进行界面设计时,应…

微信小程序 讯飞录音 点击按钮录音内容转文字

<page-meta page-style"{{ showPolish ? overflow: hidden; : }}" /> <view class"wrap"> <view class"header-tab" style"justify-content: {{typeList.length > 2 ? start : center}}"><view class&quo…

S-Edge网关:柔性部署,让物联网接入更统一

S-Edge网关是什么&#xff1f; 网关是在实际物理世界与虚拟网络世界相连接的交叉点&#xff0c;为了让这个交叉点尽可能的复用&#xff0c;无需每种设备都配套一种连接方式&#xff0c;边缘网关主要就是用于传感器等物理设备与网络实现数据交互的通用设备&#xff0c;也称为物…

贪心算法-活动安排问题和背包问题

实验6贪心算法-活动安排问题和背包问题 实验目的&#xff1a; 理解贪心算法的基本思想运用贪心算法解决实际问题 实验内容&#xff1a; 采用贪心方法编程实现以下问题的算法 1.如何安排下列活动使得使用的活动场所最少&#xff0c;并给出具体的安排方法。 活动 a b c …

Leetcode算法训练日记 | day34

专题九 贪心算法 一、K次取反后最大化的数组和 1.题目 Leetcode&#xff1a;第 1005 题 给你一个整数数组 nums 和一个整数 k &#xff0c;按以下方法修改该数组&#xff1a; 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个…

【大语言模型LLM】- Meta开源推出的新一代大语言模型 Llama 3

&#x1f525;博客主页&#xff1a;西瓜WiFi &#x1f3a5;系列专栏&#xff1a;《大语言模型》 很多非常有趣的模型&#xff0c;值得收藏&#xff0c;满足大家的收集癖&#xff01; 如果觉得有用&#xff0c;请三连&#x1f44d;⭐❤️&#xff0c;谢谢&#xff01; 长期不…

git常见命令(成长版)

ps&#xff1a;所谓成长版就是后续可能还会添加命令&#xff1a; 1.删除本地分支&#xff1a; git branch -d 分支名 2.拉取代码后默认master分支&#xff0c;切换到线上其他分支&#xff1a; &#xff08;1&#xff09;查看线上所有分支&#xff1a; git branch -a &#…

【STM32+HAL+Proteus】系列学习教程4---GPIO输入模式(独立按键)

实现目标 1、掌握GPIO 输入模式控制 2、学会STM32CubeMX配置GPIO的输入模式 3、具体目标&#xff1a;1、按键K1按下&#xff0c;LED1点亮&#xff1b;2、按键K2按下&#xff0c;LED1熄灭&#xff1b;2、按键K3按下&#xff0c;LED2状态取反&#xff1b; 一、STM32 GPIO 输入…

基于小程序实现的查寝打卡系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 技术选型 【后端】&#xff1a;Java 【框架】&#xff1a;ssm 【…

[Algorithm][前缀和][模板 一维前缀和][模板 二维前缀和][寻找数组中心下标][除自身以外数组的乘积] + 前缀和原理 + 前缀和模板

目录 0.原理讲解1.[模板]一维前缀和1.题目链接2.模板代码实现 2.[模板]二维前缀和1.题目链接2.算法原理讲解3.模板代码实现 3.寻找数组的中心下标1.题目链接2.算法原理详解3.代码实现 4.除自身以外数组的乘积1.题目链接2.算法原理详解3.代码实现 0.原理讲解 前缀和&#xff1a;…

Docker学习(二十五)构建 Arthas 基础镜像

目录 一、简介二、构建基础镜像2.1 下载 Arthas2.2 编写 Dockerfile2.3 构建镜像2.4 创建容器2.5 测试 一、简介 Arthas 是一款由 阿里巴巴 开发的 线上监控诊断工具。通过全局视角实时查看应用负载、内存、GC、线程等信息&#xff0c;能在不修改代码的情况下&#xff0c;对业…

Pytorch常用的函数(八)常见优化器SGD,Adagrad,RMSprop,Adam,AdamW总结

Pytorch常用的函数(八)常见优化器SGD,Adagrad,RMSprop,Adam,AdamW总结 在深度学习中&#xff0c;优化器的目标是通过调整模型的参数&#xff0c;最小化&#xff08;或最大化&#xff09;一个损失函数。 优化器使用梯度下降等迭代方法来更新模型的参数&#xff0c;以使损失函数…

【QT进阶】Qt http编程之实现websocket server服务器端

往期回顾 【QT进阶】Qt http编程之json解析的简单介绍-CSDN博客 【QT进阶】Qt http编程之nlohmann json库使用的简单介绍-CSDN博客 【QT进阶】Qt http编程之websocket的简单介绍-CSDN博客 【QT进阶】Qt http编程之实现websocket server服务器端 一、最终效果 通过ip地址和端口…

人工智能时代的关键技术:深入探索向量数据库及其在AI中的应用

文章目录 1. 理解向量数据库&#xff1a;二维模型示例2. 向量数据库中的数据存储与检索3. 向量数据库如何工作&#xff1f;4. 向量数据库如何知道哪些向量相似&#xff1f; 在人工智能技术日益成熟的当下&#xff0c;向量数据库作为处理和检索高维数据的关键工具&#xff0c;对…

Dropout Feature Ranking for Deep Learning Models

摘要 深度神经网络( deep neural networks&#xff0c;DNNs )在多个领域取得了最新的研究成果。不幸的是&#xff0c;DNNs因其不可解释性而臭名昭著&#xff0c;从而限制了其在生物和医疗保健等假说驱动领域的适用性。此外&#xff0c;在资源受限的环境下&#xff0c;设计依赖…

Linux下的UDEV机制/守护进程

一. Udev机制概念引入 ( 需要在 etc/udev/rules.d/ 下创建设备的相关规则&#xff0c;不然有可能udev机制生成的设备文件不具备可读可写的权限&#xff0c;adb无法成功通过该设备文件访问设备 ) a. 创建文件夹 sudo vim Xiaomi-audroid.rules b. 添加规则 …

在vscode上面进行分支merge的记录

前言&#xff1a;在我们的项目中&#xff0c;有两个分支&#xff1a;master和liutielong。现在要将liutielong分支的改动merge到master分支中。 如果master分支已经更改了&#xff0c;所以要先pull&#xff08;这是在git bash里面的命令&#xff09;。 git pull origin master…

5分钟——快速搭建后端springboot项目

5分钟——快速搭建后端springboot项目 1. idea新建工程2. 构建pom.xml文件3. 构建application.yml配置文件4. 构建springboot启动类5. 补充增删改查代码6. 运行代码 1. idea新建工程 点击右上角新建一个代码工程 别的地方不太一样也不用太担心&#xff0c;先创建一个工程就好…