1. 执行引擎MR变更为TEZ

  • Apache TEZ是一个针对Hadoop数据处理应用程序的分布式计算框架,基于Yarn且支持DAG作业的开源计算框架。
  • Apache TEZ的核心思想是将Map和Reduce拆分成若干子过程,即Map被拆分成Input、Processor、Sort、Merge和Output, Reduce被拆分成Input、Shuffle、Sort、Merge、Processor和Output等,分解后可以灵活组合成一个大的DAG作业。
  • Apache TEZ提供了较低级别的抽象,为了增强Hive/Pig的底层实现,而不是最终面向用户的。
  • Apache TEZ兼容MR任务,不需要代码层面的改动。

    2. 批处理TEZ,实时查询LLAP

    Hive3支持两种查询模式:ContainerLLAP

  • LLAP(Live Long and Process)实时长期处理,是Hive3的一种查询模式,由一个守护进程和一个基于DAG的框架组成,LLAP不是执行引擎(MR/Tez),它用来保证Hive的可伸缩性和多功能性,增强现有的执行引擎。

  • LLAP的守护进程长期存在且与DataNode直接交互,缓存,预读取,某些查询处理和访问控制功能包含在这个守护程序中用于直接处理小的查询,而计算与IO较大的繁重任务会提交Yarn执行。守护程序不是必须的,没有它Hive仍能正常工作。对LLAP节点的请求都包含元数据信息和数据位置,所以LLAP节点无状态。
  • 可以使用Hive on Tez use LLAP来加速OLAP场景(OnLine Analytical Processing联机分析处理)
  • LLAP为了避免JVM内存设置的限制,使用堆外内存缓存数据以及处理GROUP BY/JOIN等操作,而守护程序仅使用少量内存。

    3. ACID大数据事务支持

    hive3.0就支持ACID, 但是只有ORC的存储格式数据才能进行修改和删除操作。比如PARQUET只是拥有了ACID特性,但同样不能进行更新删除的操作。

    4. 基于Apache Ranger的权限管理

    cdh旧版本默认使用的都是sentry,cdh高版本中默认切花到ranger上了,主要是sentry使用比较笨重。

    6. 默认开启HDFS ACLs

    数据安全是数仓发展的重要方向。ACL是HDFS中权限系统的扩展,在为多个组和用户提供特定权限时,可以提高灵活性,方便地将权限应用于目录树而不是单个文件

    7. Beeline代替Hive Cli

    Hive 3仅支持瘦客户端Beeline,用于从命令行运行查询和Hive管理命令。Beeline使用与HiveServer的JDBC连接来执行所有命令。在HiveServer中进行解析,编译和执行操作。Beeline支持与Hive CLI相同的命令行选项,但有一个例外:Hive Metastore配置更改。

  • Beeline只需维护JDBC客户端,而不是维护整个Hive代码库。

  • Beeline相对于Hive Clie降低启动开销,因为不涉及整个Hive代码库。
  • hive cli可以绕过认证和建权,安全性不够

    8. 不再支持内嵌Metastore