被以下文章引用:
Hive 定位和缺点
Hive的定位是 数据仓库,主要是以下功能:
- 负责数据的存储(底层是 HDFS)
- 通过 SQL查询分析数据,降低技术门槛。
缺点:底层计算使用的是 MapReduce,由于需要繁的磁盘IO,其计算 性能很差
SparkSQL 发展
SparkSQL模块一直到Spark 2.0版本才算真正稳定,发挥其巨大功能,发展经历如下几个阶段
Shark框架 - Spark on Hive
为了解决 Hive性能较差,Hive 使用 Spark,替代 MapReduce 进行 大规模数据的 查询分析
这就是 Shark框架,Shark 是 Hive on Spark 模式
将Hive的HQL翻译成 Spark上对应的RDD操作,然后通过 Hive 的 Metadata 获取数据库里表的信息,也就是 HDFS 上的数据和文件,最后由 Shark 获取并放到Spark上计算。
Shark框架停止开发
Shark框架更多是对Hive的改造,替换了Hive的物理执行引擎,使之有一个较快的处理速度。然而不容忽视的是Shark继承了大量的Hive代码,因此给优化和维护带来大量的麻烦。为了更好的发展,Databricks在2014年7月1日Spark Summit上宣布终止对Shark的开发,将重点放到SparkSQL模块上。
SparkSQL - Spark on Hive
SparkSQL 是 Spark on Hive 模式,将Spark构建在Hive之上,Spark需要用到Hive:
- 通过SparkSQL,加载Hive的配置文件,获取到Hive的 metastore信息,进而获得metadata;
- SparkSQL 获取到metadata之后就可以去访问Hive的所有表的数据;
- 接下来就可以通过SparkSQL来操作Hive表中存储的数据
这种方式的特点是 效率高、数据吞吐量大、使用spark操作起来更加友好
总结
- SparkSQL 使用简单、API统一、兼容Hive、支持 JDBC、ODBC
- SparkSQL 在企业中广泛使用
感谢:
https://cloud.tencent.com/developer/article/1886595



