数仓工具—Hive的架构设计(13)

Hive的架构

我们知道MapReduce和Spark它们提供了高度抽象的编程接口便于用户编写分布式程序,它们具有极好的扩展性和容错性,能够处理超大规模的数据集。这些计算引擎提供了面向高级语言(比如Java,Python等)的编程接口,然而,考虑到分布式程序编写的复杂性,直接使用这些编程接口实现应用系统(比如报表系统)无疑会提高使用门槛,降低开发效率。

考虑到SQL仍然是一种非常主流的数据分析语言,开源社区在分布式计算框架基础山构建了支持SQL的引擎,其中典型的代表是MapReduce之上的Hive以及Spark之上的Spark SQL,这些数据分析引擎通常不仅做到了对标准SQL的支持,还对标准SQL并进行了大量的扩展,其中最主流的数据分析语言为HQL(Hive Query Language)。简而言之,Hive是对非Java,python等编程者提供了SQL的方式对hdfs数据做MapReduce操作,也就是将SQL 翻译成MR 程序。

SQL ON Hadoop

大数据计算引擎为大规模数据处理提供了解决方案,它们提供了高级编程语言(比如Java,Python等)编程接口,可让程序员很容易表达计算逻辑。但在大数据领域,仅提供对编程语言的支持是不够的,这会降低一些数据分析场景(比如报表系统)下的开发效率,也提高了使用门槛。为了让更多人使用这些大数据引擎分析数据,提高系统开发效率,大数据系统引入了对SQL的支持。

目前构建在Hadoop之上的SQL引擎主要分为两类,基于计算引擎和基


版权声明:本文为king14bhhb原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。