深圳定制网站建设服务公司,网站和app可以做充值余额功能,店铺只做商品展示网站怎么做,wordpress 不同域名大数据学习
#x1f525;系列专栏#xff1a; #x1f451;哲学语录: 承认自己的无知#xff0c;乃是开启智慧的大门 #x1f496;如果觉得博主的文章还不错的话#xff0c;请点赞#x1f44d;收藏⭐️留言#x1f4dd;支持一下博主哦#x1f91…大数据学习
系列专栏 哲学语录: 承认自己的无知乃是开启智慧的大门 如果觉得博主的文章还不错的话请点赞收藏⭐️留言支持一下博主哦 1Spark on Hive Spark on Hive 是Hive只作为存储角色Spark负责sql解析优化执行。这里可以理解为Spark 通过Spark SQL 使用Hive 语句操作Hive表 ,底层运行的还是 Spark RDD。具体步骤如下
通过SparkSQL加载Hive的配置文件获取到Hive的元数据信息 获取到Hive的元数据信息之后可以拿到Hive表的数据 通过SparkSQL来操作Hive表中的数据。
2Hive on Spark Hive on Spark是Hive既作为存储又负责sql的解析优化Spark负责执行。这里Hive的执行引擎变成了Spark不再是MR这个要实现比Spark on Hive麻烦很多, 必须重新编译你的spark和导入jar包不过目前大部分使用的确实是spark on hive。
Hive默认使用MapReduce作为执行引擎即Hive on MapReduce。实际上Hive还可以使用Tez和Spark作为其执行引擎分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘而Spark是放在内存中所以总体来讲Spark比MapReduce快很多。因此Hive on Spark也会比Hive on MapReduce快。由于Hive on MapReduce的缺陷所以企业里基本上很少使用了。
Spark on Hive和Hive on Spark的区别主要体现在以下三个方面
数据源Spark on Hive的数据源是Hive它从Hive中获取数据然后对数据进行SparkSQL操作。而Hive on Spark的数据源是Hive本身。执行引擎Spark on Hive底层运行的还是Spark RDD。而Hive on Spark则是将Hive查询从MapReduce操作替换为Spark RDD操作。实现方式Spark on Hive通过SparkSQL加载Hive的配置文件获取Hive的元数据信息然后就可以获取Hive的所有表的数据并对其进行SparkSQL操作。而Hive on Spark则需要重新编译Spark和导入jar包才能实现。