spark笔记

spark on yarn

yarn client :适用于交互和调试

1.Driver在任务提交机器上执行

2.ApplicationMaster只负责向ResourceManager申请executor需要的资源

3.基于yarn时,spark-shell和pyspark必须要使用yarn-client模式

yarn cluster:适用于生产环境

spark核心

1.Spark基于弹性分布式数据集(RDD)模型,具有良好的通用性、容错性与并行处理数据的能力

2.RDD(ResilientDistributedDataset):弹性分布式数据集(相当于集合),它的本质是数据集的描述(只读的、可分区的分布式数据集),而不是数据集本身

3.RDD的关键特征:

  • RDD使用户能够显式将计篇结果保存在内存中,控制数据的划分,并使用更丰富的操作集合来处理
  • 使用更丰富的操作来处理,只读(由一个RDD变换得到另一个RDD,但是不能对本身的RDD修改)
  • 记录数据的变换而不是数据本身保证容错(lineage)
  1. 通常在不同机器上备份数据或者记录数据更新的方式完成容错,但这种对任务密集型任务代价很高
  2. RDD采用数据应用变换(map.filter.join),若部分数据丟失,RDD拥有足够的信息得知这部分数据是如何计算得到的,可通过重新计算来得到丟失的数据
  3. 这种恢复数据方法很快,无需大量数据复制操作,可以认为Spark是基于RDD模型的系统
  • 懒操作,延迟计算,action的时候才操作
  • 瞬时性,用时才产生,用完就释放

官网文档练习

由于spark默认从hdfs读取文件,所以官方实例中会报错:

解决办法,在读取文件的时候指定从本地文件路径读取:

还有读取多文件的api是wholeTextFiles。

textFile与wholeTextFiles

原文地址:https://www.cnblogs.com/luozeng/p/9015965.html