1.上传spark-2.4.0-bin-hadoop2.6.tgz到/opt目录,并解压到/usr/localtar -zxf /opt/spark-2.4.0-bin-hadoop2.6.tgz -C /usr/local/ 进入/usr/local/spark-2.4.0-bin-hadoop2 ...
转载 2021-10-22 09:18:00
129阅读
2评论
[性能测试]Spark1.x-2.xBenchmark
原创 6月前
14阅读
1、Spark2.x实现了对Spark SQLHive SQL操作API的统一2Spark2.x引入了SparkSession的概念,提供了一个统一的切入口来使用Spark的各项功能,统一了旧的SQLContextHiveContext3、统一了DataFrameDataSets的API4、Spark Streaming基于Spark SQL构建了high-level API,...
原创 2022-05-16 09:39:53
539阅读
# Spark2.x内存调优 ## 概述 在使用Apache Spark进行大规模数据处理时,合理的内存调优是非常重要的。本文将介绍Spark2.x内存调优的流程具体实施步骤,帮助你提高Spark应用的性能稳定性。 ## 流程图 下面是内存调优的整体流程图,包括了几个关键步骤。 ```mermaid graph TD A(启动Spark应用) --> B(监控应用内存使用情况) B --
原创 2023-09-09 16:08:28
56阅读
rn 启动 先把这三个文件的名字改一下 配置slaves 配置spark-env.sh 将spark 配置分发到其他节点并修改每个节点特殊配置 scp -r spark-2.2.0-bin bigdata-pro01.kfk.com:/opt/modules/ scp -r spark-2.2.0-
原创 2022-06-17 22:56:47
304阅读
Spark2.x集群安装文章网上已经有很多,这里整合了多篇文章安装步骤,并详细讲解了Master、Worker的启动命令、spark-env.sh文件的详细配置等,由于Spark2.x集群安装需要用的JDK、Scala等组建的支撑,由于安装比较简单,我这里不在讲解,只简单列一下我这里用到的软件版本:版本信息:操作系统 :CentOS Linux release 7.2.1511 (Core)JDK
原创 2021-03-10 10:24:30
706阅读
1.BlockManagerMaster创建      BlockManagerMaster要负责整个应用程序在运行期间block元数据的管理维护,以及向从节点发送指令执行命令,它是在构造SparkEnv的时候创建的,Driver端是创建SparkContext的时候创建SparkEnv,SparkEnv中对应的初始化代码如下:    val blockManagerMaster = new B
原创 2021-03-10 09:42:03
311阅读
一、概述    之前的文章已经把Spark2.x的Mater启动、Worker启动注册、Driver启动、Executor启动、Task运行以及最重要的Shuffle原理部分都做了详细的剖析,整个流程中Task读写、Shuffle读写阶段都会涉及到BlockManager,那它是干啥的呢?其实BlockManager是Spark底层负责数据的读写管理的一个模块。    对于每一个Spark任务,
原创 2021-03-10 09:42:57
297阅读
一、概述    CacheManager主要发生在利用RDD的数据执行算子的时候,之前我们讲过在ShufffleWriter进行数据写时,会调用RDD对应的Iterator()方法,获取RDD对应的数据,CacheManager主要干三件事:    a. 管理Spark的缓存,可以基于内存,也可以基于磁盘;    b.底层是通过BlockManager进行数据的读写操作;    c.Task运行会
原创 2021-03-10 09:38:42
526阅读
1.checkpoint功能是什么呢?   对于一个复杂的应用程序,可能中间会涉及到多个RDD的转换操作,计算过程中可能由于某些原因,导致中间关键的计算数据丢失,如果出现上述情况,而集群没有容错机制的话,后面的操作恰恰需要前面的RDD数据时,就需要重新计算一次,这时候就可以启用checkpoint机制,来实现集群的容错高可用。2.设置checkpoint目录        启用checkpoin
原创 2021-03-10 09:41:26
254阅读
一、概述     我们已经将Spark的Shuffle原理、ShuffleWrite、ShufffleRead的具体实现细节也做了深入的源码剖析, 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。了解相关的原理之后,就可以对Spark任务的Shuffle过程进行相关的优化,之前做源码剖析的时候,涉及到的比较重要的参数也提到过
原创 2021-03-10 09:37:08
451阅读
软件软件:       spark版本是apache spark2.2.0       kafka版本是kafka0.10.0    采用Direct Approach的方式来融合Spark StreamingKafka。没有采用Receiver-Based的方式。后续我会专门整理一篇文章分析两种融合方式不同。1.kafka数据准备:创建kafka的topic命令:/usr/hdp/2.6.3.
原创 2021-03-10 10:36:50
777阅读
一、概述    之前我们写了几篇文章详细讲解了Spark Shuffle的Writer原理、技术演进历程及Spark2.x中三种Writer机制的具体实现,这里我们对Shuffler Read的源码进行深度剖析。    对于每个stage来说,它的上边界,要么从外部存储读取数据,要么读取parent stage的输出。而下边界要么是写入到本地文件系统(需要有shuffle),提供给child st
原创 2021-03-10 09:43:31
473阅读
一、概述    接上篇文章:Spark2.x精通:源码剖析BypassMergeSortShuffleWriter具体实现,这里将Spark Shuffle的第二种实现UnsafeShuffleWriter,这里回顾下触发条件:    1).shuffle依赖不带有聚合(aggregation)操作    2).支持序列化值的重新定位,即使用KryoSerializer或者SparkSQL自定义的
原创 2021-03-10 09:45:32
277阅读
一、概述    接上篇文章:Spark2.x精通:Executor进程源码深度剖析,CoraseGrainedExecutorBackEnd接收LaunchTask消息之后,会立即调用executor.launchTask()函数执行task任务,里面封装了TaskRunner线程,这样就会执行TaskRunner的run()方法,这里我们就看一下他是如何执行Task任务的,这篇文章东西比较多也比
原创 2021-03-10 09:49:43
231阅读
通过上一篇文章“Spark2.2.0精通:Spark系统架构、任务提交流程”,我们对Spark的整个架构提交流程有了大致的了解,我们知道SparkContext是一个程序的入口,无论是用java、scala,甚至是python编写程序的第一行基本都是SparkConext,它主要包含以下三块比较重要的部分:TaskScheduler初始化、向SparkMaster节点进行Application、
原创 2021-03-10 10:18:53
439阅读
跑一下这个结果 参考代码 运行结果 改一下这里 下面是运行结果 打开这个地址 我们来产生一个job 从监控页面我们可以看到 随便敲一些单词用作测试 因为我目前的节点2的hdfs是active状态 可以看到报错了,文件目录已经存在了,我们必须要是一个不存在的路径才可以 可以看到成功了 我们查看一下hd
原创 2022-06-17 22:57:06
128阅读
一、概述    BlockManager是分布式块存储管理。核心机制是每个节点存储自己的内存空间磁盘空间。BlockManagerMaster负责与其他节点的BlockManager通信并负责块在节点间的复制。BlockInfoManager负责管理块的元数据并提供读写锁的功能。当从本地的BlockManager获取不到块时,从远程节点Fetcher这个Block数据块。    上篇文章我们已经
原创 2021-03-10 09:40:44
371阅读
一、概述    上篇文章:Spark2.x精通:三种ShuffleWriter触发条件,我们讲了ShuffleHandle如何选择不同的ShuffleWrite策略,这里我们从源码角度剖析BypassMergeSortShuffleWriter实现策略的原理具体的实现细节。    BypassMergeSortShuffleWriter具体的实现都在对应类的write()函数中,我们直接看源码进
原创 2021-03-10 09:46:44
230阅读
Master在收到RegisterApplication注册消息后,会进行Application的注册,并在Worker上启动对应的Executor,在Standalone模式下,SparkContext初始化TaskSchedulerImpl时,调用TaskSchedulerImp的start()方法,里面会调用StandaoneSchedulerBackend.scala的start()方法,
原创 2021-03-10 09:50:34
241阅读
  • 1
  • 2
  • 3
  • 4
  • 5