精华内容
下载资源
问答
  • Spark笔试

    2018-01-17 17:15:16
    1.Spark 的四大组件下面哪个不是 (D ) A.Spark Streaming B Mlib C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 (C ) A.8080 B.4040 C.8090 D.18080 3.spark...

    1.Spark 的四大组件下面哪个不是 (D )
    A.Spark Streaming B Mlib
    C Graphx D Spark R

    2.下面哪个端口不是 spark 自带服务的端口 (C )
    A.8080 B.4040 C.8090 D.18080

    3.spark 1.4 版本的最大变化 (B )
    A spark sql Release 版本 B 引入 Spark R
    C DataFrame D支持动态资源分配

    4.Spark Job 默认的调度模式 (A )
    A FIFO B FAIR
    C 无 D 运行时指定

    5.哪个不是本地模式运行的个条件 ( D)
    A spark.localExecution.enabled=true B 显式指定本地运行 C finalStage 无父 Stage D partition默认值

    6.下面哪个不是 RDD 的特点 (C )
    A. 可分区 B 可序列化 C 可修改 D 可持久化

    7.关于广播变量,下面哪个是错误的 (D )
    A 任何函数调用 B 是只读的 C 存储在各个节点 D 存储在磁盘或 HDFS

    8.关于累加器,下面哪个是错误的 (D )
    A 支持加法 B 支持数值类型
    C 可并行 D 不支持自定义类型

    9.Spark 支持的分布式部署方式中哪个是错误的 (D )
    A standalone B spark on mesos
    C spark on YARN D Spark on local

    10.Stage 的 Task 的数量由什么决定 (A )
    A Partition B Job C Stage D TaskScheduler

    11.下面哪个操作是窄依赖 (B )
    A join B filter
    C group D sort

    12.下面哪个操作肯定是宽依赖 (C )
    A map B flatMap
    C reduceByKey D sample

    13.spark 的 master 和 worker 通过什么方式进行通信的? (D )
    A http B nio C netty D Akka

    14 默认的存储级别 (A )
    A MEMORY_ONLY B MEMORY_ONLY_SER
    C MEMORY_AND_DISK D MEMORY_AND_DISK_SER

    15 spark.deploy.recoveryMode 不支持那种 (D )
    A.ZooKeeper B. FileSystem
    D NONE D Hadoop

    16.下列哪个不是 RDD 的缓存方法 (C )
    A persist() B Cache()
    C Memory()

    17.Task 运行在下来哪里个选项中 Executor 上的工作单元 (C )
    A Driver program B. spark master
    C.worker node D Cluster manager

    18.hive 的元数据存储在 derby 和 MySQL 中有什么区别 (B )
    A.没区别 B.多会话 C.支持网络环境 D数据库的区别

    19.DataFrame 和 RDD 最大的区别 (B )
    A.科学统计支持 B.多了 schema
    C.存储方式不一样 D.外部数据源支持

    20.Master 的 ElectedLeader 事件后做了哪些操作 (D )
    A. 通知 driver B.通知 worker
    C.注册 application D.直接 ALIVE

    答案:
    DCBAD CDDDA
    BCDAD CCBBD

    展开全文
  • Spark 笔试

    2020-01-19 10:25:30
    1. spark 的四大组件下面哪个不是 ( ) A.Spark Streaming B Mlib C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 ( ) A.8080 B.4040 C.8090 D.18080 3.spark 1.4 版本的最大变化 ( ) A spark sql ...

    1. spark 的四大组件下面哪个不是 ( )
    A.Spark Streaming B Mlib C Graphx D Spark R


    2.下面哪个端口不是 spark 自带服务的端口 ( )
    A.8080 B.4040 C.8090 D.18080


    3.spark 1.4 版本的最大变化 ( )
    A spark sql Release 版本 B 引入 Spark R C DataFrame D支持动态资源分配


    4. Spark Job 默认的调度模式 ( )
    A FIFO   B FAIR   C 无   D 运行时指定


    5.哪个不是本地模式运行的个条件 ( )
    A spark.localExecution.enabled=true   B 显式指定本地运行 C finalStage 无父 Stage D partition默认值


    6.下面哪个不是 RDD 的特点 ( )
    A. 可分区   B 可序列化   C 可修改   D 可持久化


    7. 关于广播变量,下面哪个是错误的 ( )
    A 任何函数调用    B 是只读的   C 存储在各个节点    D 存储在磁盘或 HDFS


    8. 关于累加器,下面哪个是错误的 ( )
    A 支持加法 B 支持数值类型 C 可并行 D 不支持自定义类型


    9.Spark 支持的分布式部署方式中哪个是错误的 ( )
    A standalone B spark on mesos   C spark on YARN D Spark on local


    10.Stage 的 Task 的数量由什么决定 ( )

    A Partition B Job C Stage D TaskScheduler


    11.下面哪个操作是窄依赖 ( )
    A join B filter C group D sort


    12.下面哪个操作肯定是宽依赖 ( )
    A map B flatMap C reduceByKey D sample


    13.spark 的 master 和 worker 通过什么方式进行通信的? ( )
    A http B nio C netty D Akka


    14 默认的存储级别 ( )
    A MEMORY_ONLY B MEMORY_ONLY_SER
    C MEMORY_AND_DISK D MEMORY_AND_DISK_SER


    15 spark.deploy.recoveryMode 不支持那种 ( )
    A.ZooKeeper B. FileSystem D NONE D hadoop


    16.下列哪个不是 RDD 的缓存方法 ( )
    A persist() B Cache() C Memory()


    17.Task 运行在下来哪里个选项中 Executor 上的工作单元 ( )
    A Driver program B. spark master C.worker node D Cluster manager


    18.hive 的元数据存储在 derby 和 mysql 中有什么区别 ( )
    A.没区别 B.多会话 C.支持网络环境 D数据库的区别


    19.DataFrame 和 RDD 最大的区别 ( )
    A.科学统计支持 B.多了 schema C.存储方式不一样 D.外部数据源支持


    20.Master 的 ElectedLeader 事件后做了哪些操作 ( )
    A. 通知 driver B.通知 worker C.注册 application D.直接 ALIVE


    答案:

    DCBAD   CDDDA

    BCDAD   CCBBD
    ————————————————
    版权声明:本文为CSDN博主「洪荒或有仙」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/sang1203/article/details/51477134

    展开全文
  • 原标题:实时计算引擎Spark笔试题:Spark Catalyst 查询优化器原理这里我们讲解一下SparkSQL的优化器系统Catalyst,Catalyst本质就是一个SQL查询的优化器,而且和 大多数当前的大数据SQL处理引擎设计基本相同(Impala...

    原标题:实时计算引擎Spark笔试题:Spark Catalyst 查询优化器原理

    这里我们讲解一下SparkSQL的优化器系统Catalyst,Catalyst本质就是一个SQL查询的优化器,而且和 大多数当前的大数据SQL处理引擎设计基本相同(Impala、Presto、Hive(Calcite)等)。了解Catalyst的SQL优化流程,也就基本了解了所有其他SQL处理引擎的工作原理。

    *SQL优化器核心执行策略主要分为两个大的方向:基于规则优化(RBO)以及基于代价优化(CBO),基于规则

    优化是一种经验式、启发式地优化思路,更多地依靠前辈总结出来的优化规则,简单易行且能够覆盖到大部分优

    化逻辑,但是对于核心优化算子Join却显得有点力不从心。举个简单的例子,两个表执行Join到底应该使用

    BroadcastHashJoin 还是SortMergeJoin?当前SparkSQL的方式是通过手工设定参数来确定,如果一个

    表的数据量小于这个值就使用BroadcastHashJoin,但是这种方案显得很不优雅,很不灵活。基于代价优化

    就是为了解决这类问题,它会针对每个Join评估当前两张表使用每种Join策略的代价,根据代价估算确定一种

    代价最小的方案

    *我们这里主要说明基于规则的优化,略提一下CBO

    如上图是一个SQL经过优化器的最终生成物理查询计划的留存,红色部分是我们要重点说明的内容。大 家思考我们写的一个SQL最终如何在Spark引擎中转换成具体的代码执行的。任何一个优化器工作原理都大同小异:SQL语句首先通过Parser模块被解析为语法树,此棵树称为Unresolved Logical Plan; Unresolved Logical Plan通过Analyzer模块借助于数据元数据解析为Logical Plan;此时再通过各种基于规则的优化策略进行深入优化,得到Optimized Logical Plan;优化后的逻辑执行计划依然是逻辑的,并不能被Spark系统理解,此时需要将此逻辑执行计划转换为Physical Plan;为了更好的对整个过程进行理解,下文通过一个简单示例进行解释。

    Parser

    Parser简单来说是将SQL字符串切分成一个一个Token,再根据一定语义规则解析为一棵语法树。Parser模块目前基本都使用第三方类库 ANTLR 进行实现,比如Hive、 Presto、SparkSQL等。下图是一个示例性的SQL语句(有两张表,其中people表主要存储用户基本信息,score表存储用户 的各种成绩),通过Parser解析后的AST语法树如下图所示:

    Analyzer

    通过解析后的逻辑执行计划基本有了⻣架,但是系统并不知道score、sum这些都是些什么⻤,此 时需要基本的元数据信息来表达这些词素,最重要的元数据信息主要包括两部分:表的Scheme和 基本函数信息,表的scheme主要包括表的基本定义(列名、数据类型)、表的数据格式(Json、Text)、表的物理位置等,基本函数信息主要指类信息。

    Analyzer会再次遍历整个语法树,对树上的每个节点进行数据类型绑定以及函数绑定,比如people 词素会根据元数据表信息解析为包含age、id以及name三列的表,people.age会被解析为数据类型 为int的变量,sum会被解析为特定的聚合函数,如下图所示:

    Optimizer

    优化器是整个Catalyst的核心,上文提到优化器分为基于规则优化和基于代价优化两种,此处只介 绍基于规则的优化策略,基于规则的优化策略实际上就是对语法树进行一次遍历,模式匹配能够满 足特定规则的节点,再进行相应的等价转换。因此,基于规则优化说到底就是一棵树等价地转换为 另一棵树。SQL中经典的优化规则有很多,下文结合示例介绍三种比较常⻅的规则:谓词下推(Predicate Pushdown)、常量累加(Constant Folding)和列值裁剪(Column Pruning)

    1.谓词下推, 下图左边是经过Analyzer解析后的语法树,语法树中两个表先做join,之后再使用age>10对结果进行过滤。大家知道join算子通常是一个非常耗时的算子,耗时多少一般取决于参与join的两个表的大小,如果能够减少参与join两表的大小,就可以大大降低join算子所需 时间。谓词下推就是这样一种功能,它会将过滤操作下推到join之前进行,下图中过滤条件age>0以及id!=null两个条件就分别下推到了join之前。这样,系统在扫描数据的时候就对数据 进行了过滤,参与join的数据量将会得到显著的减少,join耗时必然也会降低。

    2.常量累加,如下图。 常量累加其实很简单,就是 x+(1+2) -> x+3 这样的规则,虽然是一个很小的改动,但是意义巨大。示例如果没有进行优化的话,每一条结果都需要执行一次100+80的操作,然后再与变量math_score以及english_score相加,而优化后就不需要再执行100+80操作。

    3.列值裁剪,如下图。这是一个经典的规则,示例中对于people表来说,并不需要扫描它的所有列值,而只需要列值id,所以在扫描people之后需要将其他列进行裁剪,只留下列id。这个 优化一方面大幅度减少了网络、内存数据量消耗,另一方面对于列存数据库(Parquet)来说 大大提高了扫描效率

    物理计划

    经过上述步骤,逻辑执行计划已经得到了比较完善的优化,然而,逻辑执行计划依然没办法真正执行,他们只是逻辑上可行,实际上Spark并不知道如何去执行这个东⻄。比如Join只是一个抽象概 念,代表两个表根据相同的id进行合并,然而具体怎么实现这个合并,逻辑执行计划并没有说明。

    此时就需要将逻辑执行计划转换为物理执行计划,将逻辑上可行的执行计划变为Spark可以真正执 行的计划。比如Join算子,Spark根据不同场景为该算子制定了不同的算法策略,有BroadcastHashJoin、ShuffleHashJoin以及SortMergeJoin等(可以将Join理解为一个接口, BroadcastHashJoin是其中一个具体实现),物理执行计划实际上就是在这些具体实现中挑选一个耗时最小的算法实现,这个过程涉及到基于代价优化(CBO)策略,所谓基于代价 , 是因为物理执行计划的每一个节点都是有执行代价的,这个代价主要分为两部分

    第一部分:该执行节点对数据集的影响,或者说该节点输出数据集的大小与分布(需要去采集)

    第二部分:该执行节点操作算子的代价(相对固定,可用规则来描述)

    在SQL 执行之前会根据代价估算确定一种代价最小的方案来执行。我们这里以Join为例子做个简单说明

    *在 Spark SQL 中 ,Join 可 分 为 Shuffle based Join 和 BroadcastJoin 。 Shuffle based

    Join 需要引入 Shuffle,代价相对较高。BroadcastJoin 无须 Join,但要求至少有一张表足够小,

    能通过 Spark 的 Broadcast 机制广播到每个 Executor 中。

    *在不开启 CBO 中,Spark SQL 通过 spark.sql.autoBroadcastJoinThreshold 判断是否启用

    BroadcastJoin。其默认值为 10485760 即 10 MB。并且该判断基于参与 Join 的表的原始大小。

    *在下图示例中,Table 1 大小为 1 TB,Table 2 大小为 20 GB,因此在对二者进行 join 时,由于二者

    都远大于自动 BroatcastJoin 的阈值,因此 Spark SQL 在未开启 CBO 时选用 SortMergeJoin 对二者

    进行 Join。

    *而开启 CBO 后,由于 Table 1 经过 Filter 1 后结果集大小为 500 GB,Table 2 经过 Filter 2

    后结果集大小为 10 MB 低于自动 BroatcastJoin 阈值,因此 Spark SQL 选用 BroadcastJoin。

    责任编辑:

    展开全文
  • Spark笔试

    万次阅读 2016-11-09 06:54:16
    1. Spark 的四大组件下面哪个不是 (D ) A.Spark Streaming B Mlib  C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 (C ) A.8080 B.4040 C.8090 D.18080 3.spark 1.4 版本的最大变化 (B ...
    1. Spark 的四大组件下面哪个不是 (D )
    A.Spark Streaming B Mlib 
    C Graphx D Spark R


    2.下面哪个端口不是 spark 自带服务的端口 (C )
    A.8080 B.4040 C.8090 D.18080


    3.spark 1.4 版本的最大变化 (B )
    A spark sql Release 版本 B 引入 Spark R 
    C DataFrame D支持动态资源分配


    4. Spark Job 默认的调度模式 (A )
    A FIFO   B FAIR   
    C 无   D 运行时指定


    5.哪个不是本地模式运行的个条件 ( D)
    A spark.localExecution.enabled=true   B 显式指定本地运行 C finalStage 无父 Stage D partition默认值


    6.下面哪个不是 RDD 的特点 (C )
    A. 可分区   B 可序列化   C 可修改   D 可持久化


    7. 关于广播变量,下面哪个是错误的 (D )
    A 任何函数调用    B 是只读的   C 存储在各个节点    D 存储在磁盘或 HDFS


    8. 关于累加器,下面哪个是错误的 (D )
    A 支持加法 B 支持数值类型 
    C 可并行 D 不支持自定义类型


    9.Spark 支持的分布式部署方式中哪个是错误的 (D )
    A standalone B spark on mesos  
    C spark on YARN D Spark on local


    10.Stage 的 Task 的数量由什么决定 (A )
    A Partition B Job C Stage D TaskScheduler


    11.下面哪个操作是窄依赖 (B )
    A join B filter 
    C group D sort


    12.下面哪个操作肯定是宽依赖 (C )
    A map B flatMap 
    C reduceByKey D sample


    13.spark 的 master 和 worker 通过什么方式进行通信的? (D )
    A http B nio C netty D Akka


    14 默认的存储级别 (A )
    A MEMORY_ONLY B MEMORY_ONLY_SER
    C MEMORY_AND_DISK D MEMORY_AND_DISK_SER


    15 spark.deploy.recoveryMode 不支持那种 (D )
    A.ZooKeeper B. FileSystem 
    D NONE D Hadoop


    16.下列哪个不是 RDD 的缓存方法 (C )
    A persist() B Cache() 
    C Memory()


    17.Task 运行在下来哪里个选项中 Executor 上的工作单元 (C )
    A Driver program B. spark master 
    C.worker node D Cluster manager


    18.hive 的元数据存储在 derby 和 MySQL 中有什么区别 (B )
    A.没区别 B.多会话 C.支持网络环境 D数据库的区别


    19.DataFrame 和 RDD 最大的区别 (B )
    A.科学统计支持 B.多了 schema 
    C.存储方式不一样 D.外部数据源支持


    20.Master 的 ElectedLeader 事件后做了哪些操作 (D )
    A. 通知 driver B.通知 worker 
    C.注册 application D.直接 ALIVE






    答案:
    DCBAD   CDDDA
    BCDAD   CCBBD
    展开全文
  • spark笔试题1

    千次阅读 2019-06-17 09:55:14
    1. Spark 的四大组件下面哪个不是 (D ) A.Spark Streaming B Mlib C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 (C ) A.8080 B.4040 C.8090 D.18080 3.spark 1.4 版本的最大变化 (B ) A spark ...
  • spark笔试题下

    2020-02-13 19:27:58
    23.持久化? 持久化的算子:cache和persist cache底层实现的是persist ...26.spark 提交方式? 区别? 一.client mode: In client mode, the driver is launched in the same process as the client t...
  • 说明:Spark是目前大数据中非常流行的运算框架,Spark的Shuffle机制是完成运算最重要的一环,面试时经常会被问到. 在Spark中,Shuffle分为map阶段和reduce阶段,也可称之为shuffle write和shuffle read阶段,Spark在...
  • Spark Streaming 反压机制是1.5版本推出的特性,用来解决处理速度比摄入速度慢的情况,简单来讲就是做流量控制。当批处理时间(Batch Processing Time)大于批次间隔(Batch Interval,即BatchDuration)时,说明处理数据...
  • Spark Streaming 反压机制是1.5版本推出的特性,用来解决处理速度比摄入速度慢的情况,简单来讲就是做流量控制。当批处理时间(Batch Processing Time)大于批次间隔(Batch Interval,即BatchDuration)时,说明处理数据...
  • *在不开启 CBO 中,Spark SQL 通过 spark.sql.autoBroadcastJoinThreshold 判断是否启用 BroadcastJoin。其默认值为 10485760 即 10 MB。并且该判断基于参与 Join 的表的原始大小。 *在下图示例中,Table 1 大小为 ...
  • 1.设定基本的存储内存和执行内存区域(spark.storage.storageFraction参数),该设定确定了 双方各自拥有的空间的范围。 2.双方的空间都不足时,则存储到硬盘;若己方空间不足而对方空余时,可借用对方的空间; ...
  • *在不开启 CBO 中,Spark SQL 通过 spark.sql.autoBroadcastJoinThreshold 判断是否启用 BroadcastJoin。其默认值为 10485760 即 10 MB。并且该判断基于参与 Join 的表的原始大小。 *在下图示例中,Table 1 大小为 ...
  • hbase与spark笔试题(选择题)

    千次阅读 2019-02-24 20:02:17
    二、spark笔试题 spark 的四大组件下面哪个不是 ( D ) A.Spark Streaming B Mlib C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 ( C ) A.8080 B.4040 C.8090 D.18080 3.spark 1.4 版本的...
  • Spark repartition和coalesce的区别 1.1. repartition只是coalesce接口中shuffle为true的实现 1.2. 不经过 shuffle,也就是coaleasce shuffle为false,是无法增加RDD的分区数的,比如你源RDD 100个分区,想要...
  • spark笔试题上

    2020-02-13 12:26:45
    1.什么是sparkSpark 是一个用来实现快速而通用的集群计算的平台。 2.Spark生态系统? spark core:spark 核心计算 spark sql: 对历史数据的交互式查询 spark streaming : 近实时计算 spark ml : 机器学习 ...
  • 大数据真实企业的面试题 spark面试笔试题 如需获取更多真实企业面试题,请添加微信;
  • Spark 的四大组件下面哪个不是 (D ) A.Spark Streaming B Mlib C Graphx D Spark R 2.下面哪个端口不是 spark 自带服务的端口 (C ) A.8080 B.4040 C.8090 D.18080 3.spark 1.4 版本的最大变化 (B ) A spark sql ...
  • 第二章 Spark 2.1 Spark 原理 2.1.1 Shuffle 原理 2.1.1.1 SortShuffle mapTask将map(聚合算子)或array(join算子)写入内存 达到阀值发生溢写,溢写前根据key排序,分批写入磁盘,最终将所有临时文件...
  • 文章大纲基础spark集群运算的模式RDDRDD中reduceBykey与groupByKey哪个性能好,为什么rdd 怎么分区宽依赖和窄依赖简述Spark的宽窄依赖,以及Spark如何划分stage,每个stage又根据什么决定task个数?Dataframe其他...
  • 文章大纲基本资源参数调优num-executorsexecutor-memoryexecutor-coresdriver-...参数说明:该参数用于设置Spark作业总共要用多少个Executor进程来执行。Driver在向YARN集群管理器申请资源时,YARN集群管理器会
  • 由于SparkLauncher需要指定SPARK_HOME,因此如果你的机器可以执行spark-submit,那么就看一下spark-submit里面,SPARK_HOME是在哪 [xinghailong@hnode10 launcher]$ which spark2-submit /var/lib/hadoop-hdfs...
  • Spark调优

    2019-05-05 16:02:17
    Spark的调优是面试或者笔试考察的重点:总结下 1.开发调优: 原则一:避免创建重复的RDD。 原则二:尽可能复用同一个RDD。 原则三:对多次使...
  • Spark的调优是面试或者笔试考察的重点:总结下 ​ ​ 1.开发调优: 原则一:避免创建重复的RDD。 原则二:尽可能复用同一个RDD。 原则三:对多次使用的RDD进行持久化。 原则四:尽量避免使用shuffle类算子 。 ...

空空如也

空空如也

1 2 3 4 5
收藏数 87
精华内容 34
关键字:

spark笔试