新公司网站建设流程最有效的15个营销方法
目录
- Spark入门: 概述+历史+概述
- SparkCore:RDD
- SparkSQL:
- SparkStreaming
- Spark内核调优
Spark概述
回顾: Hadoop = HDFS存储 + MR分析计算 + YARN调度
Hadoop的MR计算中的shuffle需要落盘,速度不够快。
Spark是一种基于内存的分析计算引擎。
历史
2009诞生于加州伯克利分校,项目采用scala编写。
2010年开源。
2013年6月成为Apache孵化项目,将资源和任务调度分开。
2014年2月成为Apache顶级项目。
两种模式
- standalone独立部署模式:不可以更换为MR来计算
- yarn模式:可以更换为MR来分析计算
Hadoop和Spark的对比
- Hadoop MR框架: 计算过程中Map和Reduce之间的shuffle过程需要落盘,reduce结束后也需要落盘。
- Spark RDD框架:会主动考虑前后数据的逻辑性,只在必要时进行shuffle落盘。适合迭代式计算,图形计算。Spark支持优化,避免了一些重复冗余的计算操作,是基于懒加载机制的框架。
Spark模块和特点
模块: SparkSQL + SparkCore +Yarn
特点:
- 快:基于内存运算比Hadoop MR快100倍以上, 有很强的自适应优化,帮你自动计算出最合适的任务资源调度方案。
- 易用:支持java, Python, Scala的API
- 通用:提供了统一的解决方案,支持SQL、实时流处理
- 兼容性:调度和计算分离,支持其他调度器,比如yarn调度器
安装部署
本地模式
- 提交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。
hadoop102:4040
Spark任务运行查看界面,建议将10替换为1000,任务结束后无法进入。可以看到计算过程的有向无环图。
YARN模式
- 关闭虚拟机
- 重新解压spark,命名为spark-yarn目录
- 关闭物理和虚拟的内存检查
- 修改spark-env.sh配置文件的YARN_CONF_DIR,告诉spark,yarn配置文件在哪里。
hadoop103:8088
通过YARN查看任务执行情况。- 配置历史服务
- 修改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"
- 创建历史服务器的目录
- sbin/start-history-server.sh,启动历史服务器HistoryServer
- 再次提交计算PI的任务,使用Hadoop102:18080查看任务DAG图解,查看有多少个阶段和计算过程。主要查看executor界面,查看任务申请了多少个执行器,和执行器的运行时间。
10.配置历史日志,为了能够通过YARN网页跳转到Spark历史日志网页中。在spark-defaults.conf添加如下信息:
spark.yarn.historyServer.address=hadoop102:18080
spark.history.ui.port=18080
运行流程
Spark yarn 也有两种模式:
- 客户端模式:初始化,任务的切分都在本地执行。适合内网执行,大数据一般都是内网运行,故一般是客户端模式,任务结果就在当前客户端可以看到。
- 集群模式:初始化,任务的切分在集群的AM中执行,适合外网执行,任务结果需要到YARN中才能查看到。