CDP中的Hive3之Apache Hive3特性

打印 上一主题 下一主题

主题 1655|帖子 1655|积分 4965

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
CDP中接纳的是Apache Hive3版本,相比Hive1/2,该版本在事务和安全性等方面有庞大改进,了解这些版本之间的主要差别对于SQL用户至关重要,包罗利用Apache Spark和Apache Impala的用户
1、Apache Hive3特性


Hive是一个数据仓库系统,用于汇总、查询和分析庞大的不同数据集。Apache Hive3的庞大变更主要改进了Apache Hive2的事务和安全性
1)ACID事务处置惩罚
Hive3的表符合ACID(原子性、一致性、隔离性和长期性)
Hive3写入和读取操作提高了事务表的性能。原子操作包罗简单的插入、写入多个分区以及在单个SELECT语句中举行多次插入
读取操作不受操作期间发生更改的影响。您可以插入或删除数据,并且在软件和硬件瓦解期间保持一致。这简化了Hive表的创建和维护,由于Hive不再必要利用Bucket表
2)物化视图
由于多个查询经常必要同一个中间汇总表或连接表,因此您可以通过预先计算中间表并将其缓存到视图中来制止本钱高昂、重复的查询部分共享
3)查询结果缓存
Hive过滤和缓存相似或类似的查询。Hive不会重新计算未更改的数据。当成百上千的BI工具和Web服务用户查询Hive时,缓存重复查询可以显着淘汰负载
4)计划查询
利用SQL语句,您可以安排Hive查询重复运行、监控查询进度、临时忽略查询计划并限定并行运行的数目。例如,您可以利用计划查询来启动压缩并定期重建物化视图
5)安全改进
默认利用Apache Ranger保护Hive的数据。为了满足并发改进、ACID支持、渲染安全性和其他功能的需求,Hive严格控制文件系统或对象存储上的仓库位置以及内存资源
借助Apache Ranger和Apache Hive ACID的支持,您的组织将准备好支持和实施GDPR(General Data Protection Regulation,通用数据保护条例)
6)连接池
Hive支持HakariCP JDBC连接池
7)查询级别的工作负载管理
您可以设置谁利用查询资源、可以利用多少、以及Hive响应资源请求的速率。工作负载管理可以改进并行查询执行、查询的集群共享和查询性能。只管名称相似,但Hive工作负载管理查询与Cloudera Workload XM无关,用于陈诉和查看数百万个查询和数百个数据库
8)Spark与Hive集成
Spark和Hive表利用HWC(Hive Warehouse Connector)和Spark Direct Reader举行互操作以访问ACID管理的表。您可以利用SparkSQL直接从Spark访问外部表
您不必要利用HWC来读取或写入Hive外部表。Spark用户只是直接从Hive读取或写入。您可以读取ORC或Parquet格式的Hive外部表。但是您只能以ORC格式写入到Hive的外部表
9)不支持的功能
CDP不支持HDP和CDH平台中可用的以下功能:


  • 多个INSERT OVERWRITE从源表读取数据的查询
  • 指定托管表位置的CREATE TABLE语句
    不要利用LOCATION子句来创建托管表。Hive将仓库中的默认位置分配给托管表
  • 创建索引
    Hive自动在ORC或Parquet的主表中构建和存储索引,而不是将索引维护在不同的表中。设置hive.optimize.index.filter为启用利用(不保举,改为利用物化视图)。在升级期间,现有索引在Parquet或ORC中保存并迁移到CDP
官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-introduction/topics/hive_whats_new_in_this_release_hive.html
2、Hive不支持的接口和功能


官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-introduction/topics/hive-unsupported.html
3、Hive on Tez简介


Cloudera数据平台(CDP)服务,提供Apache Tez执行的Apache Hive SQL数据库
Hive on Tez服务提供基于Apache Hive3的基于SQL的数据仓库系统。Hive3中相对于以前版本的增强可以提高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)
官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-introduction/topics/hive-on-tez.html
4、Apache Hive3架构概述


了解Apache Hive3的主要设计特性,例如,默认的ACID事务处置惩罚,可以资助您利用Hive 来满足企业数据仓库系统不停增长的需求
1)数据存储和访问控制
支持Hive3设计的主要架构更改之一使Hive可以更好地控制元数据内存资源和文件系统或对象存储。从Hive2到Hive3的以下架构更改提供了更高的安全性:


  • 严格控制文件系统和计算机内存资源,取代灵活的边界:明确的边界增加了可猜测性。更好的文件系统控制可提高安全性
  • 在共享文件和YARN容器中优化的工作负载
Hive3通过以下方式针对对象存储举行了优化:


  • Hive利用ACID来确定要读取的文件,而不是依赖于存储系统
  • 在Hive3中,文件移动比Hive2中淘汰了
  • Hive主动缓存元数据和数据以淘汰文件系统操作
2)事务处置惩罚
您可以利用以下事务处置惩罚特性来部署新的Hive应用程序类型:


  • ACID事务处置惩罚的成熟版本:

    • ACID表是默认的表类型
    • 默认启用的ACID不会导致性能或操作过载

  • 简化的应用程序开辟、具有强大事务包管的操作以及SQL命令的简单语义

    • 您不必要对ACID表举行桶存储

  • 物化视图重写
  • 自动查询缓存
  • 高级优化
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)Apache Hive Metastore共享
Hive、Impala和其他组件可以共享远程的Hive Metastore
5)批处置惩罚和交互式工作负载的查询执行
您可以利用JDBC命令行工具(例如Beeline)或利用JDBC/ODBC驱动程序和BI工具(例如Tableau)连接到Hive。您可以为每个实例设置设置文件以执行批处置惩罚或交互式处置惩罚
6)Spark集成
Spark和Hive表利用Hive Warehouse Connector(HWC)举行互操作
您可以利用HWC从Spark访问ACID和外部表。您不必要利用HWC即可从Spark读取Hive外部表并从Spark写入Hive外部表
您不必要利用HWC即可读取或写入Hive的外部表。Spark用户只是直接从Hive读取或写入数据。您可以读取ORC或Parquet格式的Hive外部表,但是您只能以ORC格式写入Hive的外部表
官方文档:https://docs.cloudera.com/cdp-private-cloud-base/latest/hive-introduction/topics/hive-apache-hive-3-architectural-overview.html


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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

耶耶耶耶耶

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表