zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Spark on Hive【S负责SQL解析和优化(SparkSQL)、计算引擎;H只负责存储元数据;主流方式】、Hive on Spark【H负责SQL解析和优化、存储元数据;S充当计算引擎】

2023-09-27 14:20:41 时间

 Hive on Spark:

  • Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,
  • 执行引擎变成了Spark,Spark负责采用RDD执行。

Spark on Hive :

  • Spark负责SQL解析优化,语法是Spark SQL语法,Spark负责采用RDD执行。
  • Hive只作为存储元数据,

1、spark on hive 

hive只作为存储角色,spark 负责sql解析优化,底层运行的还是sparkRDD

具体可以理解为spark通过sparkSQL使用hive语句操作hive表,底层运行的还是sparkRDD,

步骤如下:

1.通过sparkSQL,加载Hive的配置文件,获取Hive的元数据信息

2.获取到Hive的元数据信息之后可以拿到Hive表的数据

3.通过sparkSQL来操作Hive表中的数据

2、hive on spark

hive既作为存储又负责sql的解析优化,spark负责执行

这里Hive的执行引擎变成了spark,不再是MR。

这个实现较为麻烦,必须重新编译spark并导入相关jar包

目前大部分使用spark on hive

HiveSQL和SparkSQL的区别和联系_sparksql和hivesql的区别_万里长江横渡的博客-CSDN博客