首页 > 编程语言 >分布式数据处理-《Spark编程基础》(Scala版)第六章简答题答案(自制)

分布式数据处理-《Spark编程基础》(Scala版)第六章简答题答案(自制)

时间:2024-05-16 21:40:39浏览次数:12  
标签:Shark Scala 简答题 Hive RDD DataFrame SQL Spark

6 Spark SQL

简答题

T1 请阐述 Hive 中 SQL 查询转化为 MapReduce 作业的具体过程。❌

答:HiveSQL 命令或查询首先进入到驱动模块,由驱动模块中的编译器进行解析编译,并由优化器对该操作进行优化计算,然后交给执行器去执行,执行器通常的任务是启动一个或多个 MapReduce 任务,详细过程如下:

① 将SQL转换成抽象语法树;

② 将抽象语法树转换成查询块;

③ 将查询块转换成逻辑查询计划;

④ 重写逻辑查询计划;

⑤ 将逻辑计划转成物理计划;

⑥ 选择最佳的优化查询策略。

T2 请阐述 Shark 和 Hive 的关系以及 Shark 有什么缺陷。

答:

① Shark 和 Hive 的关系:Hive 把 SQL 语句转化成 MapReduce 任务执行,而 Shark 的在继承了大量的 Hive 代码实现与 Hive 兼容的同时,把 SQL 语句转换成 Spark 作业执行。

② Shark缺陷:

(1)逻辑执行计划的优化完全依赖于 Hive,不方便添加新的优化策略;

(2)Spark 是线程级并行,而 MapReduce 是进程级并行;因此,Spark 在兼容 Hive 的实现上存在线程安全问题。

T3 请阐述 Shark 与 Spark SQL 的关系。

答:Spark SQL 在 Shark 原有的架构上重写了逻辑执行计划的优化部分,解决了 Shark 存在的兼容问题。

T4 请分析 Spark SQL 出现的原因。

答:传统的关系数据库在大数据时代已经不能满足各种新增的用户需求。

① 用户需要从不同数据源执行各种操作,包括结构化和非结构化数据;

② 用户需要执行高级分析,比如机器学习和图像处理。

T5 RDD 和 DataFrame 有什么区别

标签:Shark,Scala,简答题,Hive,RDD,DataFrame,SQL,Spark
From: https://www.cnblogs.com/hanihou/p/18196804

相关文章

  • 分布式数据处理-《Spark编程基础》(Scala版)第一章简答题答案(自制)
    1大数据技术概述简答题T1:请阐述大数据处理的基本流程。......
  • spark的SparkContext,SparkConf和SparkSession及dataframe和RDD的区别
    spark的SparkContext,SparkConf和SparkSession及dataframe和RDD的区别SparkContext和SparkConf任何Spark程序都是SparkContext开始的,SparkContext的初始化需要一个SparkConf对象,SparkConf包含了Spark集群配置的各种参数。初始化后,就可以使用SparkContext对象所包含的各种方......
  • spark-submit 提交的参数
    spark-submit是用于提交Spark应用到集群的命令行工具。它允许用户控制Spark应用的各种参数,比如应用名、集群URL、运行模式、资源分配等。以下是一些常用的spark-submit参数:--master:指定Spark集群的URL,例如local,local[*],spark://23.195.26.187:7077,yarn,mesos等。--d......
  • hive on spark
    1Hive的执行引擎Hive:专业的数仓软件,可以高效的读写和管理数据集。  Hive的运行原理:  ①hive主要是写HQL的(类SQL,相似度90%,剩下的10%就是HQL里面一些独有的语法)  ②写的HQL会根据不同的计算引擎翻译成不同的代码 2数仓搭建技术选型SparkOnHive:基于Hive的Spar......
  • Spark - [04] RDD编程
    题记部分 一、RDD编程模型  在Spark中,RDD被表示为对象,通过对象上的方法调用来对RDD进行转换。经过一系列的transformations定义RDD之后,就可以调用actions触发RDD的计算,action可以是向应用程序返回结果(count,collect等),或者是向存储系统保存数据(saveAsTextFile......
  • Spark - [03] RDD概述
    RDD,分布式数据集,是Spark中最基本的数据抽象。 一、什么是RDDRDD(ResilientDistributedDataset)叫做分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。  二、RDD的属性①一组分区(Partition),即数据......
  • 在 Kubernetes 上运行 Apache Spark 进行大规模数据处理的实践
    在刚刚结束的KubernetesCommunityDay上海站,亚马逊云科技在云原生分论坛分享的“在Kunernets上运行ApacheSpark进行大规模数据处理实践”引起了现场参与者的关注。开发者告诉我们,为了充分利用Kubernetes的高可用设计、弹性,在越来越多的应用场景中,他们选择从Yarn迁移到......
  • hive on spark配置
     hive-site.xml <?xmlversion="1.0"?><?xml-stylesheettype="text/xsl"href="configuration.xsl"?><configuration>  <!--配置Hive保存元数据信息所需的MySQLURL地址-->  <property>    <name>javax......
  • docker-compose spark集群搭建
    需求满足产品数据团队计算相关需求,搭建spark集群,本集群为一主两从(两台设备)部署环境服务器资源docker-compose安装curl-Lhttps://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname-s`-`uname-m`-o/usr/local/bin/docker-compose......
  • spark简介
    一、Spark简介Spark是一种由Scala语言开发的快速、通用、可扩展的大数据分析引擎。Spark主要由五部分组成:SparkCoreSparkCore中提供了Spark最基础与最核心的功能,Spark其他的功能如:SparkSQL,SparkStreaming,GraphX,MLlib都是在SparkCore的基础上进行扩展的S......