spark重点知识-1

本文详细介绍了Spark中的RDD、DataFrame、DataSet及其特点,包括Broadcast变量和Accumulator的使用。深入探讨了Spark的部署模式,如standalone、yarn、mesos和k8s。同时讲解了Stage的Task并行度、宽依赖与窄依赖的概念,以及cache、persist、checkpoint和容错机制。此外,还对比了Spark与MapReduce的速度差异,并分析了Spark提交任务的执行流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RDD,DataFrame,DataSet
  • DataSet
    • 产生于spaek1.6
    • 比DataFrame多了泛型的支持
    • DataFrame就是DataSet[row]
    • DataSet[T]的元素经过tungsten优化,是内存的优化,可以节省空间85%
    • 自动支持各种类型的编码器,就是强类型
      • 基本类型 int ,long ,string
      • row
      • jvm对象,case class 对象
    • 使得元素是样例类对象【student(name:string;age:int】时,将类的属性名映射成sql的表字段名,所以全面支持sql和dsl操作
    • 支持编译时类型安全检查(ds.map(s=>s.不存在的字段) 这句代码编译时不通过
Hadoop,spark的各种端口
  • 当使用standalone模式时,才设计下面4个端口
    • 7077 sparkMaster进程的通信端口
    • 8080 Master 的web ui 的查看端口
    • 7078 spark worker 进程的通信端口
    • 8081 worker 的webui 的查看端口
  • 18080 spark 历史任务的webui查看端口
  • 4040 查看某个蒸菜运行的spark application 的web端口
  • 198888 是hadoop 的 mapreduce类型的任务的jobHistory的web端口
  • 8088 是hadoop Yarn 类型的任务的监控页面
RDD的特点
  • 五大特性

    • 分区列表
    • 依赖关系
    • 计算函数
    • 如果元素是key-value类型是,可以指定分区器
    • 位置优先性
  • 一个job,从action算子的最后一个RDD追溯到初始RDD之间的依赖关系,叫血缘关系,也叫lineaeg

    • 依赖分为,宽依赖和窄依赖
Broadcast 广播变量

在这里插入图片描述

  • 在driver中定义一个广播变量
    obj对象需要支持序列化 val obj =new XXX val bc = sc.broadCast(obj)
  • 注意obj需要序列化,因为要从driver端网络传输到各个Executor端
  • 在分布式的Executor的代码汇总获取对象
    rdd.map(x=>{ //次obj是经过网络传输后反序列化后的 val obj =bc.value })
  • spark 默认是将对象广播扫executor的每个task中,随着task数量增加,网络的传输压力也会增加,但是executor的数目比task要少很多,更适合将对象广播到executor中 ,executor 中的所有task都共享这个变量
Accumulator 累加器
  • 多个节点对同一个变量进行累加操作,spark目前只支持累加操作
  • spark有3个原生的累加器 : LongAccumulator ,DoubelAccumulator ,CollectionAccumulator
  • 还可以自定义累加
### COCO 数据集概述 COCO 是一个大规模的对象检测、分割和描述数据集[^1]。它包含了丰富的图像以及对应的标注信息,广泛应用于计算机视觉领域中的研究和开发工作。 对于 `val2017` 部分的数据下载,官方提供了标准化的下载地址和方法: #### 官方下载链接 可以通过访问 COCO 官方网站获取 `val2017` 数据集的相关资源: - **官方网站**: [http://cocodataset.org](http://cocodataset.org) - **直接下载链接**: - 图像文件: [http://images.cocodataset.org/zips/val2017.zip](http://images.cocodataset.org/zips/val2017.zip) - 对应的标注文件: [http://images.cocodataset.org/annotations/annotations_trainval2017.zip](http://images.cocodataset.org/annotations/annotations_trainval2017.zip) #### 下载说明 为了正确使用 `val2017` 数据集,通常需要同时下载两部分内容: 1. **图像压缩包 (`val2017.zip`)**: 包含验证集中所有的图片。 2. **标注文件压缩包 (`annotations_trainval2017.zip`)**: 包括训练集和验证集的 JSON 文件,其中 `instances_val2017.json` 和其他相关标注文件用于对象检测任务。 解压后,推荐按照如下结构组织数据以便于后续处理: ```plaintext dataset/ ├── annotations/ │ ├── instances_val2017.json │ └── ... └── val2017/ ├── 000000000139.jpg └── ... ``` 如果本地路径不符合预期,可以利用软链技术调整目录映射关系[^2]: ```powershell New-Item -ItemType SymbolicLink -Path "目标路径" -Target "实际存储路径" ``` 此外,在某些特定框架下(如 MMDetection),可能还需要将数据转换为兼容的格式[^3]。例如通过脚本工具完成从原始标注COCO 格式的适配操作。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值