spark
yj2434
贪财好色,一身正气
展开
-
spark 性能优化相关
1.资源优化1) .搭建 Spark 集群的时候要给 Spark 集群足够的资源(core,memory)在 spark 安装包的 conf 下 spark-env.shSPARK_WORKER_CORESSPARK_WORKER_MEMORYSPARK_WORKER_INSTANCE2) .在提交 Application 的时候给 Application 分配更多的资源。提交命令选项:(在提交 Application 的时候使用选项)–executor-cores–executor-m原创 2020-12-20 18:37:21 · 104 阅读 · 0 评论 -
Spark高级应用之spark累加器原理
累加器理解图:累加器在 Driver 端定义赋初始值,累加器只能在 Driver 端读取,在 Excutor 端更新。示例代码:import org.apache.spark.rdd.RDDimport org.apache.spark.util.LongAccumulatorimport org.apache.spark.{SparkConf, SparkContext}/** * 累加器的代码 * 累加器只能在Driver端定义,在Executor端累加,获取累加器的值 : ac原创 2020-10-31 17:42:42 · 787 阅读 · 0 评论 -
Spark-Submit 提交参数解析
Options:–masterMASTER_URL, 可 以 是 spark://host:port, mesos://host:port, yarn, yarn-cluster,yarn-client, local–deploy-modeDEPLOY_MODE, Driver 程序运行的地方,client 或者 cluster,默认是 client。–classCLASS_NAME, 主类名称,含包名–jars逗号分隔的本地 JARS, Driver 和 executor 依赖的第三方原创 2020-10-30 14:31:03 · 414 阅读 · 0 评论 -
Spark之两种方式分组取topN
原始数据:class1 90class2 56class1 87class1 76class2 88class1 95class1 74class2 87class2 67class2 77import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.RDDimport scala.util.control.Breaks/** * 分组取topN问题,分好组之后,两种获取topN数原创 2020-10-29 18:52:54 · 479 阅读 · 0 评论 -
Spark二次排序简单实现
import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.rdd.RDDcase class SecondSortKey(first: Int, second: Int) extends Ordered[SecondSortKey] { override def compare(that: SecondSortKey): Int = { if (this.first == that.first) {原创 2020-10-28 23:43:44 · 161 阅读 · 0 评论 -
spark action算子之foreach与foreachPartition区别
import org.apache.spark.{SparkConf, SparkContext}import scala.collection.mutable.ListBufferobject TestForeachPartition { def main(args: Array[String]): Unit = { val context: SparkContext = new SparkContext(new SparkConf() .setAppName("Forea原创 2020-10-28 16:18:48 · 464 阅读 · 0 评论 -
spark资源调度和任务调度流程
Spark 资源调度和任务调度的流程:启动集群后,Worker 节点会向 Master 节点汇报资源情况,Master 掌握了集群资源情况。当 Spark 提交一个 Application 后,根据 RDD 之间的依赖关系将 Application 形成 一 个 DAG 有 向 无 环 图 。 任 务 提 交 后 , Spark 会 在 Driver 端 创 建 两 个 对 象 :DAGScheduler 和 TaskScheduler,DAGScheduler 是任务调度的高层调度器,是一个...原创 2020-10-27 19:45:42 · 309 阅读 · 0 评论 -
浅谈spark中如何划分stage
窄依赖指父RDD的每一个分区最多被一个子RDD的分区所用,表现为一个父RDD的分区对应于一个子RDD的分区两个父RDD的分区对应于一个子RDD 的分区。宽依赖指子RDD的每个分区都要依赖于父RDD的所有分区,这是shuffle类操作Stage:一个Job会被拆分为多组Task,每组任务被称为一个Stage就像Map Stage, Reduce Stage。Stage的划分,简单的说是以shuffle和result这两种类型来划分。在Spark中有两类task,一类是shuffleMapTask原创 2020-10-26 17:44:39 · 560 阅读 · 0 评论 -
Spark术语与宽窄依赖
1. 术语解释Master(standalone):资源管理的主节点(进程)ClusterManager:在集群上获取资源的外部服务(如standalone,mesos,yarn)WorlerNode:资源管理的从节点(进程),或者说管理本机资源的进程Application:基于spark的用户程序,包含了driver程序和运行在集群上的executor程序Driver program:用来连接工作进程(worker)的程序Executor:是在一个worker进程所管理的节点上为某Applic原创 2020-10-26 17:14:35 · 83 阅读 · 0 评论 -
Spark基于Yarn-cluster模式提交任务流程
原创 2020-12-18 12:45:05 · 220 阅读 · 0 评论 -
Spark 基于 Yarn 模式提交任务原理
原创 2020-12-18 12:44:53 · 118 阅读 · 0 评论 -
Required executor memory (1024 MB), offHeap memory (0) MB, overhead (384 MB), and PySpark memory (0
spark基于yarn运行时抛错。具体错误如下Exception in thread "main" java.lang.IllegalArgumentException: Required executor memory (1024 MB), offHeap memory (0) MB, overhead (384 MB), and PySpark memory (0 MB) is above the max threshold (1024 MB) of this cluster! Please chec原创 2020-10-26 01:04:58 · 2012 阅读 · 0 评论 -
Standalone-cluster 提交任务流程
./spark-submit --master spark://mynode1:7077--deploy-mode cluster --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.12-3.0.1.jar 100执行流程cluster 模式提交应用程序后,会向 Master 请求启动 Driver.Master 接受请求,随机在集群一台节点启动 Driver 进程。Driver 启动后为.原创 2020-12-18 12:45:30 · 164 阅读 · 0 评论 -
spark基于standalone client模式提交任务流程
执行流程client 模式提交任务后,会在客户端启动 Driver 进程。Driver 会向 Master 申请启动 Application 启动的资源。Master 收到请求之后会在对应的 Worker 节点上启动 ExecutorExecutor 启动之后,会注册给 Driver 端,Driver 掌握一批计算资源。Driver 端将 task 发送到 worker 端执行。worker 将 task 执行结果返回到 Driver 端。特点:当客户端提交多个spark appli.原创 2020-12-18 12:45:21 · 192 阅读 · 0 评论 -
spark3.0.1 Standalone 集群搭建
本机已经安装好hadoop2.10.0Scala-2.12.12jdk1.8Standalone 集群是 Spark 自带的资源调度框架,支持分布式搭建,这里建议搭建 Standalone 节点数为 3 台,1 台 master 节点,2 台 worker 节点,这虚拟机中每台节点的内存至少给 2G 和 2 个 core,这样才能保证后期 Spark 基于 Standalone 的正常运行。搭建 Standalone 集群的步骤如下:1.登录spark官网下载spark安装包https://原创 2020-10-24 16:32:02 · 564 阅读 · 0 评论 -
什么是spark RDD?
RDD:弹性分布式数据集 (Resilient Distributed DataSet)。Spark 中最基本的数据抽象是 RDD。1,RDD 有五个基本特性RDD 是由一系列的 partition 组成的。函数是作用在每一个 partition(split)上的。RDD 之间有一系列的依赖关系。分区器是作用在 K,V 格式的 RDD 上。RDD 提供一系列最佳的计算位置。分区每一个 RDD 包含的数据被存储在系统的不同节点上。逻辑上我们可以将 RDD 理解成一个大的数组,数组中的每个原创 2020-10-15 12:53:10 · 150 阅读 · 0 评论