热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Spark八股文

Spark八股文Spark解决什么问题Spark为什么会有自己的资源调度器Spark运行模式Spark常用端口号简述Spark的架构与作业提交流程Spark任务使用什么进行提交&#


Spark 八股文

  • Spark解决什么问题
  • Spark为什么会有自己的资源调度器
  • Spark运行模式
  • Spark 常用端口号
  • 简述Spark的架构与作业提交流程
  • Spark任务使用什么进行提交,JavaEE界面还是脚本
  • Spark提交作业参数
  • RDD五大属性
  • Spark 的 transformation 算子
  • Spark的action算子
  • map和mapPartitions区别
  • Repartition和Coalesce区别


Spark解决什么问题

Hadoop主要解决 : 海量数据的存储和海量数据的分析计算

Spark主要解决 : 海量数据的分析计算


Spark为什么会有自己的资源调度器

Hadoop 的 Yarn 框架比 Spark 框架诞生的晚,所以 Spark 自己也设计了一套资源调度框架


Spark运行模式

Local:运行在一台机器上。 测试用

Standalone:是Spark自身的一个调度系统。 对集群性能要求非常高时用。国内很少使用

Yarn:采用Hadoop的资源调度器。 国内大量使用

Mesos:国内很少使用


Spark 常用端口号

4040 spark-shell 任务端口

7077 内部通讯端口。 类比 Hadoop 的 8020/9000

8080 查看任务执行情况端口。 类比Hadoop的8088

18080 历史服务器。类比 Hadoop 的19888


由于Spark 只负责计算,所有并没有 Hadoop 中存储数据的端口 50070



简述Spark的架构与作业提交流程

在这里插入图片描述


Spark任务使用什么进行提交,JavaEE界面还是脚本

Shell 脚本


Spark提交作业参数

executor-cores : 每个 executor 使用的内核数,默认为 1 ,官方建议2 - 5个

num-executors : 启动 executors 的数量,默认为 2

executor-memory : executor 内存大小,默认 1 G

driver-cores : driver 使用内核数,默认为 1

driver-memory : driver 内存大小,默认 512 M

例子 :

spark-submit \
--master local[5] \
--driver-cores 2 \
--driver-memory 8g \
--executor-cores 4 \
--num-executors 10 \
--executor-memory 8g \
--class PackageName.ClassName XXXX.jar \
--name "Spark Job Name" \
InputPath \
OutputPath

RDD五大属性


Spark 的 transformation 算子

单Value


  • map
  • mapPartitions
  • mapPartitionsWithIndex
  • flatMap
  • glom
  • groupBy
  • filter
  • sample
  • distinct
  • coalesce
  • repartition
  • sortBy
  • pipe

双vlaue


  • intersection
  • union
  • subtract
  • zip

Key-Value


  • partitionBy
  • reduceByKey
  • groupByKey
  • aggregateByKey
  • foldByKey
  • combineByKey
  • sortByKey
  • mapValues
  • join
  • cogroup

Spark的action算子


  • reduce
  • collect
  • count
  • first
  • take
  • takeOrdered
  • aggregate
  • fold
  • countByKey
  • save
  • foreach

map和mapPartitions区别

map:每次处理一条数据

mapPartitions:每次处理一个分区数据


Repartition和Coalesce区别


推荐阅读
  • 什么是大数据lambda架构
    一、什么是Lambda架构Lambda架构由Storm的作者[NathanMarz]提出,根据维基百科的定义,Lambda架构的设计是为了在处理大规模数 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Hibernate延迟加载深入分析-集合属性的延迟加载策略
    本文深入分析了Hibernate延迟加载的机制,特别是集合属性的延迟加载策略。通过延迟加载,可以降低系统的内存开销,提高Hibernate的运行性能。对于集合属性,推荐使用延迟加载策略,即在系统需要使用集合属性时才从数据库装载关联的数据,避免一次加载所有集合属性导致性能下降。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • ZooKeeper 学习
    前言相信大家对ZooKeeper应该不算陌生。但是你真的了解ZooKeeper是个什么东西吗?如果别人面试官让你给他讲讲ZooKeeper是个什么东西, ... [详细]
  • importorg.apache.hadoop.hdfs.DistributedFileSystem;导入方法依赖的package包类privatevoidtestHSyncOpe ... [详细]
  • mapreduce源码分析总结
    这篇文章总结的非常到位,故而转之一MapReduce概述MapReduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的ÿ ... [详细]
  • 【转】腾讯分析系统架构解析
    TA(TencentAnalytics,腾讯分析)是一款面向第三方站长的免费网站分析系统,在数据稳定性、及时性方面广受站长好评,其秒级的实时数据更新频率也获得业界的认可。本文将从实 ... [详细]
author-avatar
莫怀嘉805
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有