摘要:1.创建项目 2.下载apache-maven-3.3.9-bin.tar.gz 3.修改配置文件 <localRepository>D:/module/maven/maven_repository</localRepository> <mirrors> <mirror> <id>aliyunmav
阅读全文
摘要:1.修改hadoop配置文件yarn-site.xml<!-- 物理内存 --><property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value></property><!-- 虚拟内存 --><prope
阅读全文
摘要:Scala语言中,foldLeft函数的三个使用场景: 列表内数值的相加,作用相当于sum; List(1,7,2,9).foldLeft(0)(_-_) (1)List从左开始 (2)结果在左面 0-1 (0-1)-7 ((0-1)-7)-2 (((0-1)-7)-2)-9 List(1,7,2,
阅读全文
摘要:package spark2021 import org.apache.spark.{SparkConf, SparkContext} import org.apache.spark.rdd.RDD object Ordered_Test { def main(args: Array[String]
阅读全文
摘要:在执行Spark的应用程序时,Spark集群会启动Driver和Executor两种JVM进程,前者为主控进程,后者负责执行具体的计算任务。 由于Driver的内存管理相对简单,本文主要对Executor的内存管理进行分析,下文中的Spark内存均特指Executor的内存。 1.堆内存和堆外内存
阅读全文
摘要:1.Shuffle简介 Shuffle描述着数据从map task输出到reduce task输入的这段过程。shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。 因为在分布式情
阅读全文
摘要:1.任务调度 (1)在使用spark-summit或者spark-shell提交spark程序后,根据提交时指定(deploy-mode)的位置,创建driver进程,driver进程根据sparkconf中的配置,初始化sparkcontext。Sparkcontext的启动后,创建DAG Sch
阅读全文
摘要:Spark 内核泛指 Spark 的核心运行机制,包括 Spark 核心组件的运行机制、Spark 任务调度机制、Spark 内存管理机制、Spark 核心功能的运行原理。 1、Spark核心组件 1.1 Driver Spark 驱动器节点,用于执行 Spark 任务中的 main 方法,负责实际
阅读全文
摘要:checkpoint 检查点是很多分布式系统的常用容错容灾机制,其本质就是将系统运行时的内存数据结构和状态持久化到磁盘上,在需要的时候对这些数据进行读取,然后重新构造出运行时的状态。 在Spark中使用检查点就是为了将RDD的状态保存下来,在重新执行时就不需要计算,直接从检查点读取即可 1.什么时候
阅读全文
摘要:1.1. RDD的缓存 Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或缓存数据集。 当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。 RDD相关的持久化和缓存,是Spark最重要
阅读全文
摘要:1.RDD 1.1定义 1.1.1 数据集 存储数据的计算逻辑 1.1.2 分布式 数据得来源,数据得存储 1.1.3 弹性 (1)血缘(依赖关系):spark可以通过特殊的处理方案简化依赖关系(2)计算:Spark是基于内存的,性能特别高,可以和键盘灵活切换(3)分区:Spark在创建默认分区后,
阅读全文
摘要:(1)SparkContext SparkContext是Spark中Driver程序的一部分,向资源管理器cluster manager(可以是mesos、yarn、standalone)申请spark应用所需的资源executor,资源管理器在各个worker上分配一定的executor。 当我
阅读全文
摘要:1.用户自定义UDF函数 import org.apache.spark.{SparkConf,SparkContext} import org.apache.spark.sql.{DataFrame, Dataset, SparkSession} import org.apache.spark.r
阅读全文
摘要:在Spark SQL中有两种方式可以在DataFrame和RDD进行转换 首先在maven项目的pom.xml中添加Spark SQL的依赖 <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_${scala.
阅读全文
摘要:(1) 什么是SparkSQL? spark SQL是spark的一个模块,主要用于进行结构化数据的处理。它提供的最核心的编程抽象就是DataFrame。 (2)SparkSQL的作用 提供一个编程抽象(DataFrame) 并且作为分布式 SQL 查询引擎 DataFrame:它可以根据很多源进行
阅读全文
摘要:1.RDD1.1 定义1.1.1 数据集:存储数据得计算逻辑1.1.2 分布式:数据的来源,计算,数据的存储1.1.3 弹性: 血缘(依赖关系):SPARK可以通过特殊的处理方案简化依赖关系 计算:spark的计算基于内存的,所以性能特别高,可以和磁盘灵活切换 分区:spark在创建默认分区后,可以
阅读全文
摘要:1. 共享变量 累加器 (accumulator):用来对信息进行聚合,主要用于累计计数等场景; 广播变量 (broadcast variable):主要用于在节点间高效分发大对象。 2. 理解闭包 2.1 Scala 中闭包的概念 这里先介绍一下 Scala 中关于闭包的概念: var more
阅读全文
摘要:文件格式:Text文件,Json文件,Csv文件,Sequence文件,Object文件 文件系统:本地文件系统,HDFS,HBASE以及数据库 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkCont
阅读全文
摘要:只有key-value类型的rdd才有分区器 1 HashPartitioner 分区方法 HashPartitioner 是通过对 RDD中的key求取hash值,再对hash值对分区数partitions 取余数得到,如果余数<0,那么就取“余数+partitions”,作为该row对应的分区编
阅读全文
摘要:1. cache/persist Spark 中一个很重要的能力是将数据persisting持久化(或称为caching缓存),在多个操作间都可以访问这些持久化的数据。 当持久化一个 RDD 时,每个节点的其它分区都可以使用 RDD 在内存中进行计算,在该数据上的其他 action 操作将直接使用内
阅读全文