CDP中的Hive3系列之Apache Hive3的特性

21 篇文章 4 订阅

简介: CDP中采用的是Apache Hive3版本,该版本相比Hive1/2在事务和安全性等方面有重大改进,了解这些版本之间的主要差异对于 SQL 用户至关重要,包括使用 Apache Spark 和 Apache Impala 的用户。

Apache Hive 3.x 的重大变更改进了Apache Hive 2.x事务和安全性。了解这些版本之间的主要差异对于 SQL 用户至关重要,包括使用 Apache Spark 和 Apache Impala 的用户。

这是CDP中Apache Hive3用户指南系列之一,

之前的文章请参考<CDP的Hive3系列之Hive Metastore介绍>.

1. Apache Hive3特性

Hive 是一个数据仓库系统,用于汇总、查询和分析庞大的不同数据集。

1.1  ACID 事务处理

Hive 3 表符合 ACID(原子性、一致性、隔离性和持久性)。Hive 3 写入和读取操作提高了事务表的性能。原子操作包括简单的写入和插入、写入多个分区以及在单个 SELECT 语句中进行多次插入。读取操作不受操作期间发生的更改的影响。您可以插入或删除数据,并且在软件和硬件崩溃期间保持一致。这简化了 Hive 表的创建和维护,因为hive不再需要使用Bucket表。

1.2  物化视图

由于多个查询经常需要同一个中间汇总表或连接表,因此您可以通过预先计算中间表并将其缓存到视图中来避免成本高昂、重复的查询部分共享。

1.3  查询结果缓存

Hive 过滤和缓存相似或相同的查询。Hive 不会重新计算未更改的数据。当成百上千的 BI 工具和 Web 服务用户查询 Hive 时,缓存重复查询可以显着减少负载。

1.4  计划查询

使用 SQL 语句,您可以安排 Hive查询重复运行、监控查询进度、暂时忽略查询计划并限制并行运行的数量。例如,您可以使用计划查询来启动压缩并定期重建物化视图。

1.5  Spark 与 Hive 的集成

Spark 和 Hive 表使用 Hive Warehouse Connector 和 Spark Direct Reader 进行互操作以访问 ACID 管理的表。您可以使用 SparkSQL 直接从 Spark 访问外部表。

您不需要使用 HWC 来读取或写入 Hive 外部表。Spark 用户只是直接从 Hive 读取或写入。您可以读取 ORC 或 Parquet 格式的 Hive 外部表。但是您只能以 ORC 格式写入到 Hive 的外部表。

1.6  安全改进

默认使用Apache Ranger 保护 Hive 的数据。为了满足并发改进、ACID 支持、渲染安全性和其他功能的需求,Hive 严格控制文件系统或对象存储上的仓库位置以及内存资源。

借助 Apache Ranger 和 Apache Hive ACID的支持,您的组织将准备好支持和实施 GDPR(通用数据保护条例)。

1.7  查询级别的工作负载管理

您可以配置谁使用查询资源、可以使用多少、以及 Hive 响应资源请求的速度。工作负载管理可以改进并行查询执行、查询的集群共享和查询性能。尽管名称相似,但 Hive 工作负载管理查询与 Cloudera Workload XM 无关,用于报告和查看数百万个查询和数百个数据库。

1.8  连接池

Hive 支持 HakariCP JDBC 连接池。

1.9  不支持的功能

CDP 不支持 HDP 和 CDH 平台中可用的以下功能:

·       指定托管表位置的 CREATE TABLE语句

不要使用 LOCATION 子句来创建托管表。Hive 将仓库中的默认位置分配给托管表。

·       创建索引

Hive 自动在ORC或者Parquet的主表中构建和存储索引,而不是将索引维护在不同的表中。设置 hive.optimize.index.filter为启用使用(不推荐——改为使用物化视图)。在升级期间,现有索引在Parquet 或 ORC 中保留并迁移到 CDP。

原文链接:Apache Hive features

2    Hive on Tez 简介

Cloudera 数据平台 (CDP) 服务,提供 Apache Tez 执行的 Apache Hive SQL 数据库。

Hive on Tez 服务提供基于 Apache Hive 3.x 的基于 SQL 的数据仓库系统。Hive 3.x 中相对于以前版本的增强可以提高 SQL 查询性能、安全性和审计功能。Hive Metastore (HMS) 是一个单独的服务,不是 Hive 的一部分,甚至不一定在同一个集群上。HMS 将元数据存储在后端,用于 Hive、Impala、Spark 和其他组件。

Apache Tez 是 Hive on Tez 服务的 Hive 执行引擎,其中包括 Cloudera Manager 中的 HiveServer (HS2)。不支持 MapReduce。在 Cloudera 集群中,如果遗留脚本或应用程序指定 MapReduce 执行,则会发生异常。大多数用户定义的函数 (UDF) 不需要更改即可在 Tez 而不是 MapReduce 上执行。

通过有向无环图 (DAG) 和数据传输原语的表达式,在Tez 上执行 Hive 查询而不是 MapReduce 提高了查询性能。在 Cloudera Data Platform (CDP) 中,Tez 通常仅供 Hive 使用,并在 Tez 上的 Hive 启动时自动启动和管理 Tez AM。您提交给 Hive 的 SQL 查询执行如下:

·       Hive 编译查询。

·       Tez 执行查询。

·       为整个集群的应用程序分配资源。

·       Hive 更新数据源中的数据并返回查询结果。

Hive on Tez 在临时容器上运行任务并使用标准的 YARN shuffle 服务。默认情况下,Hive 数据存储在 HDFS 上。如果您不启用 Ranger 安全服务或其他安全性,默认情况下 Hive 使用基于用户模拟的基于存储的授权 (SBA)。

原文链接:Hive on Tez introduction

3    Hive 不支持的接口和功能

您需要了解不受支持的 HDP 或 CDH 平台中可用的接口。

CDP Private Cloud Base不支持以下接口:

·       Druid

·       Hcat CLI (however HCatalog is supported)

·       Hive CLI (replaced by Beeline)

·       Hive View

·       LLAP

·       MapReduce execution engine (replaced by Tez)

·       Pig

·       S3 for storing tables

·       Spark execution engine (replaced by Tez)

·       Spark thrift server

Spark 和 Hive 表使用 Hive 仓库连接器(HWC)进行互操作。

·       SQL 标准授权

·       Tez View

o  WebHCat

您可以使用 Hue 代替 Hive View。

3.1  部分不支持的接口

不支持使用 Apache Hadoop 分布式副本 (DistCP) 来复制 Hive ACID 表。

原文链接:Hive unsupported interfaces and features

4    Apache Hive 3 架构概述

了解 Apache Hive 3 的主要设计特性,例如默认的ACID 事务处理,可以帮助您使用Hive 来满足企业数据仓库系统不断增长的需求。

4.1  数据存储和访问控制

支持 Hive 3 设计的主要架构更改之一使Hive 可以更好地控制元数据内存资源和文件系统或对象存储。从 Hive 2 到 Hive 3 的以下架构更改提供了更高的安全性:

·       严格控制文件系统和计算机内存资源,取代灵活的边界:明确的边界增加了可预测性。更好的文件系统控制可提高安全性。

·       在共享文件和 YARN 容器中优化的工作负载

Hive 3 通过以下方式针对对象存储进行了优化:

·       Hive 使用 ACID 来确定要读取的文件,而不是依赖于存储系统。

·       在 Hive 3 中,文件移动比 Hive 2 中减少了。

·       Hive 主动缓存元数据和数据以减少文件系统操作

Hive 的主要授权模型是 Ranger。Hive 强制执行 Ranger 中指定的访问控制。此模型提供比其他安全方案更强的安全性,并在管理策略方面具有更大的灵活性。

该模型只允许 Hive 访问 Hive 仓库。

4.2  事务处理

您可以利用以下事务处理特性来部署新的 Hive 应用程序类型:

·       ACID 事务处理的成熟版本:

ACID 表是默认的表类型。

默认启用的 ACID 不会导致性能或操作过载。

·       简化的应用程序开发、具有强大事务保证的操作以及 SQL 命令的简单语义

·       您不需要存储 ACID 表。

·       物化视图重写

·       自动查询缓存

·       高级优化

4.3  Hive 客户端的更改

您可以使用瘦客户端 Beeline 从命令行查询 Hive。您可以从命令行运行 Hive 管理命令。Beeline 使用到 Hive 的 JDBC 连接来执行命令。Hive 解析、编译和执行操作。Beeline 支持 Hive CLI 支持的许多命令行选项。Beeline 不支持hive -e set key=value来配置 Hive Metastore。

您可以通过使用hive 关键字、命令选项和命令调用 Beeline 来输入受支持的 Hive CLI 命令。例如,hive -e set。使用 Beeline 代替不再支持的胖客户端 Hive CLI 有几个优点,包括低开销。Beeline 不使用整个 Hive 代码库。执行查询所需的少量守护程序简化了监控和调试。

Hive 强制执行白名单和黑名单设置,您可以使用 SET 命令更改这些设置。使用黑名单,您可以限制内存配置更改以防止不稳定。不同的 Hive 实例具有不同的白名单和黑名单,以建立不同级别的稳定性。

4.4  Apache Hive Metastore 共享

Hive、Impala 和其他组件可以共享远程的 Hive Metastore。

4.5  Spark集成

Spark 和 Hive 表使用Hive Warehouse Connector(HWC)进行互操作。

您可以使用 HWC从Spark 访问 ACID 和外部表。您不需要 使用HWC即可从 Spark 读取 Hive 外部表并从 Spark 写入 Hive 外部表。您也不需要使用 HWC 即可读取或写入 Hive的 外部表。Spark 用户只是直接从 Hive 读取或写入数据。您可以读取 ORC 或 Parquet 格式的 Hive 外部表,但是您只能以 ORC 格式写入 Hive的外部表。

4.6  批处理和交互式工作负载的查询执行

您可以使用 JDBC 命令行工具(例如 Beeline)或使用 JDBC/ODBC 驱动程序和 BI 工具(例如 Tableau)连接到 Hive。您可以为每个实例配置设置文件以执行批处理或交互式处理。

原文链接:Apache Hive 3 architectural overview

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: CDP Charter是由CDP(全球气候资产披露项目)发布的一项倡议,旨在通过减少碳排放、保护水资源和推动可持续林业管理等行为,实现全球可持续发展目标。该倡议通过引导企业自愿披露其环境、社会和治理(ESG)信息,有效提升了环境和社会责任意识。 CDP Charter的制定者鼓励企业采取一系列可持续的行动,其包括:减少温室气体排放,保护水资源,推进可持续林业管理,制定可持续发展战略,增加能源效率,减少浪费等。倡议通过引导企业对ESG信息的全面披露,推动企业更加透明、负责任地运营。 CDP Charter不仅有助于企业实现自身可持续发展目标,还有助于推动全球可持续发展的进程。通过接受CDP Charter的企业将成为行业的佼佼者,为其他企业树立榜样,带动更多的企业加入到可持续发展的行列。同时,消费者将以可持续发展为重要的购买决策因素,培育出更加环保、社会责任意识强的市场环境。 总之,CDP Charter的提出对于全球实现可持续发展目标具有重要意义,既为企业树立了可持续的发展标准,也促进了全球可持续发展的进程。 ### 回答2: CDP(Carbon Disclosure Project)是一个全球性的非营利组织,旨在鼓励和协助公司向投资者披露其企业环境、社会和治理(ESG)表现。CDP Charter是CDP对其成员公司的指南文件,规范了成员公司在披露ESG信息时应遵循的核心原则。 CDP Charter的核心原则包括:透明度、规范、合法、科学、独立和负责任。成员公司必须确保其ESG报告的透明度,将重要信息及时披露给投资者和其他利益相关者。同时,成员公司应遵守法律法规和行业准则,确保其ESG报告合法规范。报告的内容应基于科学证据,成员公司应积极关注ESG事项,并与独立专业机构合作,以确保其ESG报告质量可靠和真实。成员公司也应承担社会责任,承担其环境、社会和治理责任,并积极采取行动来改善其表现。 CDP Charter的发布标志着CDP对于ESG信息披露的整体要求趋于严格,表明CDP致力于加强对成员公司的监督和管理,以保证投资者和利益相关者对ESG信息的清晰理解和准确披露。随着ESG信息披露的重要性日益凸显,越来越多的公司开始关注ESG表现,并加入CDP成为其成员,以便更好地管理和报告其ESG信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值