Spark入门(一)

253 阅读2分钟

这是我参与8月更文挑战的第12天,活动详情查看:8月更文挑战

一、本地环境搭建

1. 下载解压

# 国内
wget https://mirrors.bfsu.edu.cn/apache/spark/spark-2.4.7/spark-2.4.7.tgz
wget https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.7/spark-2.4.7.tgz
# 通用
wget https://archive.apache.org/dist/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz

# 解压
tar -zxf https://archive.apache.org/dist/spark/spark-2.4.7/spark-2.4.7-bin-hadoop2.7.tgz

2. 构建

export MAVEN_OPTS="-Xmx2g -XX:ReservedCodeCacheSize=1g"
./build/mvn -DskipTests clean package

2. 启动

# master
./sbin/start-master.sh
./sbin/stop-master.sh

# worker: 指定cpu和内存最大使用限制、工作目录
./sbin/start-slave.sh -c 1 -m 2G -h localhost -d /Users/ander/Test/Spark-WorkSpace/ spark://localhost:7077
./sbin/stop-slaves.sh

./sbin/start-slave.sh

# ALL
./sbin/stop-slaves.sh

二、基础

1. 组件&术语

术语含义
RDDResilient Distributed Dataset 弹性分布式数据集,是分布式内存的一个抽象概念,提供了一种高度受限的共享内存模型。
DAGDirected Acyclic Graph 有向无环图,反映 RDD 之间的依赖关系。
Application基于 Spark 的用户程序。由群集上的 驱动程序 和 执行 程序 运行。
Application jar一个包含用户的 Spark 应用程序的 jar。在某些情况下,用户将希望创建一个包含其应用程序及其依赖项的“uber jar”。用户的 jar 永远不应包含Hadoop或Spark库,但是这些库将在运行时添加。
Driver program - 驱动程序运行应用程序的 main() 函数并创建 SparkContext 的过程
Cluster manager用于在群集上获取资源的外部服务(例如,独立管理器,Mesos,YARN)
Deploy mode区分驱动程序进程的运行位置。在“集群”模式下,框架在集群内部启动驱动程序。在“客户端”模式下,提交者在群集外部启动驱动程序。
Worker node可以在集群中运行应用程序代码的任何节点
Executor - 执行程序/执行者为工作节点上的应用程序启动的进程,该进程运行任务并将数据跨任务存储在内存或磁盘存储中。每个应用程序都有自己的执行程序。
Task一种工作单元,将发送给一个执行者
Job甲并行计算由该获取响应于火花动作催生多个任务(例如savecollect); 您会在驱动程序的日志中看到该术语。
Stage每个作业被分为较小的任务集,称为相互依赖的阶段(类似于MapReduce中的map和reduce阶段);您会在驱动程序的日志中看到该术语。