Spark入门

目录

  1. Spark入门: 概述+历史+概述
  2. SparkCore:RDD
  3. SparkSQL:
  4. SparkStreaming
  5. Spark内核调优

Spark概述

回顾: Hadoop = HDFS存储 + MR分析计算 + YARN调度
Hadoop的MR计算中的shuffle需要落盘,速度不够快。
Spark是一种基于内存的分析计算引擎。

历史

2009诞生于加州伯克利分校,项目采用scala编写。
2010年开源。
2013年6月成为Apache孵化项目,将资源和任务调度分开。
2014年2月成为Apache顶级项目。

两种模式

  1. standalone独立部署模式:不可以更换为MR来计算
  2. yarn模式:可以更换为MR来分析计算

Hadoop和Spark的对比

  1. Hadoop MR框架: 计算过程中Map和Reduce之间的shuffle过程需要落盘,reduce结束后也需要落盘。
  2. Spark RDD框架:会主动考虑前后数据的逻辑性,只在必要时进行shuffle落盘。适合迭代式计算,图形计算。Spark支持优化,避免了一些重复冗余的计算操作,是基于懒加载机制的框架。

Spark模块和特点

模块: SparkSQL + SparkCore +Yarn
特点:

  1. 快:基于内存运算比Hadoop MR快100倍以上, 有很强的自适应优化,帮你自动计算出最合适的任务资源调度方案。
  2. 易用:支持java, Python, Scala的API
  3. 通用:提供了统一的解决方案,支持SQL、实时流处理
  4. 兼容性:调度和计算分离,支持其他调度器,比如yarn调度器

安装部署

本地模式

  1. 提交Spark任务
bin/spark-submit \ # 提交任务
--class org.apache.spark.examples.SparkPi \
--master local[2] \ # 运行模式
# Spark案例任务,求PI
./examples/jars/spark-examples_2.12-3.1.1.jar \   
10  # 任务跑10次,取平均值

–master : 表示运行模式,默认是local[], 中括号里面表示CPU核数, 表示当前机器的全部CPU。

  1. hadoop102:4040 Spark任务运行查看界面,建议将10替换为1000,任务结束后无法进入。可以看到计算过程的有向无环图。

YARN模式

  1. 关闭虚拟机
  2. 重新解压spark,命名为spark-yarn目录
  3. 关闭物理和虚拟的内存检查
  4. 修改spark-env.sh配置文件的YARN_CONF_DIR,告诉spark,yarn配置文件在哪里。
  5. hadoop103:8088 通过YARN查看任务执行情况。
  6. 配置历史服务
    • 修改spark-defaults.conf, 配置日志存储路径
    • 修改spark-env.sh, 添加如下配置
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080 
-Dspark.history.fs.logDirectory=hdfs://hadoop102:8020/directory 
-Dspark.history.retainedApplications=30"
  1. 创建历史服务器的目录
  2. sbin/start-history-server.sh,启动历史服务器HistoryServer
  3. 再次提交计算PI的任务,使用Hadoop102:18080查看任务DAG图解,查看有多少个阶段和计算过程。主要查看executor界面,查看任务申请了多少个执行器,和执行器的运行时间。
    10.配置历史日志,为了能够通过YARN网页跳转到Spark历史日志网页中。在spark-defaults.conf添加如下信息:
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080

运行流程

Spark yarn 也有两种模式:

  1. 客户端模式:初始化,任务的切分都在本地执行。适合内网执行,大数据一般都是内网运行,故一般是客户端模式,任务结果就在当前客户端可以看到。
  2. 集群模式:初始化,任务的切分在集群的AM中执行,适合外网执行,任务结果需要到YARN中才能查看到。

你可能感兴趣的:(spark,大数据,分布式)