CDP中的Hive3之Hive Metastore(HMS)

CDP中的Hive3之Hive Metastore(HMS)

      • 1、CDP中的HMS
      • 2、HMS表的存储(转换)
      • 3、HWC授权





1、CDP中的HMS


CDP中的Hive Metastore(HMS)是一种服务,用于在后端RDBMS(例如MySQL或PostgreSQL)中存储与Apache Hive和其他服务相关的元数据。Impala、Spark、Hive和其他服务共享元存储。与HMS的连接包括HiveServer、Ranger和代表HDFS的NameNode

在这里插入图片描述
Beeline、Hue、JDBC和Impala shell客户端通过Thrift或JDBC向HiveServer发出请求。HiveServer实例向HMS读/写数据

默认情况下,冗余的HMS以主动/主动模式运行。物理数据驻留在后端RDBMS中,一个用于HMS的RDBMS。所有的HMS实例使用相同的后端数据库。一个单独的RDBMS支持安全服务,例如Ranger。在任何给定时间,所有连接都路由到单一的RDBMS服务。HMS通过Thrift与NameNode对话,并充当HDFS的客户端

HMS直接连接到Ranger和NameNode (HDFS),HiveServer也是如此,但为简单起见,该图中并未显示。后端的一个或多个HMS实例可以与其他服务(例如Ranger)通信

官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-hms-overview/topics/hive-hms-introduction.html

2、HMS表的存储(转换)


当运行CREATE TABLE语句或将表迁移到Cloudera Data Platform时,您需要了解HMS如何存储Hive表。语句的成功或失败、结果表类型和表位置取决于许多因素

HMS包含有关您创建的表的以下Hive元数据:

  • 表的定义
  • 列名
  • 数据类型
  • 中央的Schema存储库中的注释

当您在CREATE TABLE语句中使用EXTERNAL关键字时,HMS会将表存储为外部表。当您省略EXTERNAL关键字并创建托管表或摄取托管表时,HMS可能会将表转换为外部表,或者创建表可能会失败,这具体取决于表的属性

影响表转换的一个重要因素是表属性的ACID表类型:

  • 非ACID

    表属性不包含任何设置为true的ACID相关属性。例如,该表不包含这样的属性:transactional=trueinsert_only=true

  • ACID

    表属性确实包含一个或多个设置为true的ACID属性

  • 完全的ACID

    表属性包含transactional=true但不包含insert_only=true

  • 仅插入的ACID

    表属性包含insert_only=true

以下矩阵显示了是否位置属性支持下的表类型:

ACID托管表位置属性注释行动
非ACID迁移到CDP(例如从HDP或CDH集群)表存储为外部表
非ACID表位置为空(null存储在外部仓库子目录中的表:metastore.warehouse.external.dir

HMS检测与HMS交互的客户端类型,例如Hive或Spark,并将客户端的能力与表的需求进行比较。HMS根据比较结果执行以下操作:

表要求客户端符合要求托管表ACID表类型行动
客户端可以写入任何类型的ACID表ACID创建表失败
客户端可以写入完全的ACID表insert_only=true创建表失败
客户端可以写入仅插入的ACID表insert_only=true创建表失败

例如,如果Spark客户端不具备所需的功能,则会出现以下类型的错误消息:

Spark has no access to table `mytable`. Clients can access this table only if
they have the following capabilities: CONNECTORREAD,HIVEFULLACIDREAD, HIVEFULLACIDWRITE,
HIVEMANAGESTATS, HIVECACHEINVALIDATE, . . .

官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-metastore/topics/hive-hms-table-storage.html

3、HWC授权


配置Hive仓库连接器(HWC)的方式会影响查询授权过程和安全性。有多种方法可以通过HWC访问Hive,并不是所有操作都通过HiveServer (HS2)。一些操作,例如Spark Direct Reader和Hive Streaming,通过HMS直接进入Hive,其中通常适用基于存储的权限

作为客户端用户,您必须在使用HWC之前使用kerberos登录。您需要适当的存储权限才能写入目标分区或表位置

您需要配置HWC读取选项。HWC读取配置选项如下表所示:

能力JDBC方式Spark Direct Reader模式
Ranger与细粒度访问控制的集成适用不适用
Hive ACID读取适用适用
处理的工作负载非生产工作负载、小数据集生产工作负载,没有细粒度访问控制的ETL

这些读取配置选项需要连接到不同的Hive组件:

  • Direct Reader配置:连接到Hive Metastore(HMS)
  • JDBC配置:连接到HiveServer(HS2)或HiveServer Interactive(HSI)

Ranger授权通过HiveServer(HS2)或Hive Metastore API(HMS API)从Spark访问Hive表

要将ACID托管表从Spark写入Hive,您必须使用HWC。要将外部表从Spark写入Hive,您可以使用原生Spark或HWC

官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-metastore/topics/hive_apache_spark_hive_connection_configuration.html



参考文章:https://developer.aliyun.com/article/786098


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

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

相关文章

C#,图论与图算法,任意一对节点之间最短距离的弗洛伊德·沃肖尔(Floyd Warshall)算法与源程序

一、弗洛伊德沃肖尔算法 Floyd-Warshall算法是图的最短路径算法。与Bellman-Ford算法或Dijkstra算法一样,它计算图中的最短路径。然而,Bellman Ford和Dijkstra都是单源最短路径算法。这意味着他们只计算来自单个源的最短路径。另一方面,Floy…

Android中下载 HAXM 报错 HAXM installation failed,如何解决?

AMD芯片的电脑在 Android Studio 中安装 Virtual Device 时,经常会出现一个 问题 Intel HAXM installation failed. To install Intel HAXM follow the instructions found at: https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows 一直提示H…

少一点If/Else - 状态模式(State Pattern)

状态模式(State Pattern) 状态模式(State Pattern)状态模式(State Pattern)概述状态模式(State Pattern)结构图状态模式(State Pattern)涉及的角色 talk is c…

mayavi -> python 3D可视化工具Mayavi的安装

前言 Mayavi是一个基于VTK(Visualization Toolkit)的科学计算和可视化工具,主要用于数据可视化和科学计算领域。 它提供了一系列的高级可视化工具,包括2D和3D图形、表面和体积渲染、流场可视化等。Mayavi可以通过Python脚本进行调…

idea 自动导包,并且禁止自动导 *(java.io.*)

自动导包配置 进入 idea 设置,可以按下图所示寻找位置,也可以直接输入 auto import 快速定位到配置。 Add unambiguous imports on the fly:自动帮我们优化导入的包Optimize imports on the fly:自动去掉一些没有用到的包 禁止导…

BI 是如何数据分析的?

企业部署商业智能BI前,需要进行详细的分析,了解BI能为企业带来多少价值?如何提高工作效率的等等,今天我们就来聊一聊 BI 的工作原理。 一、BI的取数方式 商业智能BI是通过访问和连接业务系统数据源数据库的方式来进行取数的&…

宇泰串口卡驱动在Ubuntu22.04编译、安装汇总

从官网下载驱动官网地址 上传到Ubuntu, 目录结构如下: 驱动源代码: 驱动代码是基于开源项目编译来的 编译路径不能有中文路径,否则可能有类似错误 源码是基于Linux2.3内核编译,我当前是6.8.0-51,数据结构有升级,需要调…

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载,Scroll滚动到顶部

HarmonyOS 鸿蒙 ArkTs(5.0.1 13)实现Scroll下拉到顶刷新/上拉触底加载 效果展示 使用方法 import LoadingText from "../components/LoadingText" import PageToRefresh from "../components/PageToRefresh" import FooterBar from "../components/…

上传自己的镜像到docker hub详细教程

上传自己的镜像到docker hub详细教程 本博客通B站视频一致: 上传自己的镜像到docker hub详细教程 1. 登录自己的hub.docker.com的账号 docker hub仓库 2. 点击Repositories,跳转到创建仓库页面 3. 点击Create a repository 创建repository&#xff0c…

[AI部署-tensorRT] customlayer定义添加过程解析

文章目录 tensorRT添加自定义层步骤1. trt如何解析onnx的? 整体流程图2. builtin_op_importor是干什么的?3. 怎么添加trt plugin4. 如何进行量化collection过程 references nvidia 官方plugin文档: https://www.nvidia.cn/content/dam/en-zz/…

[Do374]Ansible一键搭建sftp实现用户批量增删

[Do374]Ansible一键搭建sftp实现用户批量增删 1. 前言2. 思路3. sftp搭建及用户批量新增3.1 配置文件内容3.2 执行测试3.3 登录测试3.4 确认sftp服务器配置文件 4. 测试删除用户 1. 前言 最近准备搞一下RHCA LV V,外加2.9之后的ansible有较大变化于是练习下Do374的课程内容. 工…

易语言文字识别OCR

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

Docker 镜像制作原理 做一个自己的docker镜像

一.手动制作镜像 启动容器进入容器定制基于容器生成镜像 1.启动容器 启动容器之前我们首先要有一个镜像,这个镜像可以是从docker拉取,例如:现在pull一个ubuntu镜像到本机。 docker pull ubuntu:22.04 我们接下来可以基于这个容器进行容器…

网络编程 - - TCP套接字通信及编程实现

概述 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输层协议。在网络编程中,TCP常用于实现客户端和服务器之间的可靠数据传输。本文将基于C语言实现TCP服务端和客户端建立通信的过程。 三次握手 在…

近红外简单ROI分析matlab(NIRS_SPM)

本次笔记主要想验证上篇近红外分析是否正确,因为叠加平均有不同的计算方法,一种是直接将每个通道的5分钟实时长单独进行叠加平均,另一种是将通道划分为1分钟的片段,将感兴趣的通道数据进行对应叠加平均,得到一个总平均…

从玩具到工业控制--51单片机的跨界传奇【2】

咱们在上一篇博客里面讲解了什么是单片机《单片机入门》,让大家对单片机有了初步的了解。我们今天继续讲解一些有关单片机的知识,顺便也讲解一下我们单片机用到的C语言知识。如果你对C语言还不太了解的话,可以看看博主的C语言专栏哟&#xff…

Python调用go语言编译的库

要在 Python 中调用用 Go 语言编写的库,可以使用 Go 语言的 cgo 特性将 Go 代码编译成共享库(如 .so 文件),然后在 Python 中通过 ctypes 或 cffi 模块加载和调用这个共享库。 新建main.go文件,使用go语言编写如下代码…

学成在线_内容管理模块_创建模块工程

学成在线模块工程 1.各个微服务依赖基础工程2.每个微服务都是一个前后端分离的项目3.xuecheng-plus-content:内容管理模块工程xuecheng-plus-content-modelxuecheng-plus-content-servicexuecheng-plus-content-api 1.各个微服务依赖基础工程 2.每个微服务都是一个前…

1️⃣Java中的集合体系学习汇总(List/Map/Set 详解)

目录 01. Java中的集合体系 02. 单列集合体系​ 1. Collection系列集合的遍历方式 (1)迭代器遍历(2)增强for遍历​编辑(3)Lambda表达式遍历 03.List集合详解 04.Set集合详解 05.总结 Collection系列…

智能科技与共情能力加持,哈曼重新定义驾乘体验

2025年1月6日,拉斯维加斯,2025年国际消费电子展——想象一下,当您步入一辆汽车,它不仅能响应您的指令,更能理解您的需求、适应您的偏好,并为您创造一个独特且专属的交互环境。作为汽车科技领域的知名企业和…