Spark 从 0 到 1 学习(12) —— Spark 相关问题

1. Spark 比 MR 块的原因?

  1. Spark 的计算结果可以放入内存,支持基于内存的迭代,MR 不支持。
  2. Spark 有 DAG 有向无环图,可以实现 pipeline 的计算模式。
  3. 资源调度模式:Spark 是粗粒度资源调度,MR 是细粒度资源调度。
  4. 资源复用:Spark 中的 task 可以复用同一批 Executor 的资源。MR 里面每个 map task 对应一个 jvm,不能复用资源。

2. Spark 中主要进程的作用

  1. Driver进程:负责任务的分发和结果的回收。
  2. Executor进程:负责具体任务的执行。
  3. Master进程:Spark 资源管理的主进程,负责资源调度。
  4. Worker进程:Spark资源管理的从进程,Worker 节点主要运行 Executor

3. Spark 故障解决

3.1 shuffle file cannot find:磁盘小文件找不到

  1. connection timeout ---- shuffle file cannot find

    提高建立连接的超时时间,或者降低gc,降低gc了那么spark不能对外提供服务的时间就少了,那么超时的可能就会降低。

  2. fetch data fail ---- shuffle file cannot find

    提高拉取数据的重试次数以及间隔时间。

  3. OOM/executor lost ---- shuffle file cannot find

    提高堆外内存大小,提高堆内内存大小。

3.2 Reduce OOM

BlockManager拉取的数据量大,reduce task处理的数据量小

解决方法:

  1. 降低每次拉取的数据量
  2. 提高shuffle聚合的内存比例
  3. 提高Executor的内存比例

猜你喜欢

转载自blog.csdn.net/dwjf321/article/details/109056421
今日推荐