spark
五块兰州拉面
你的所有烦恼都来自于读书太少而想的太多 ——杨绛
展开
-
Spark-RDD的依赖关系
RDD和它依赖的父RDD的关系有两种不同的类型,即窄依赖和宽依赖。窄依赖子rdd对应一个或有限个父rdd宽依赖子rdd对应所有父rdd宽依赖就会发生shuffle过程Lineage(血统)将创建RDD的一系列Lineage(即血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。DAG有向无环图RDD任务的切分并行度:程序同一时间执行作业的线程个数。原原创 2020-12-27 16:12:34 · 488 阅读 · 1 评论 -
spark所需依赖
spark-parent<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apach原创 2020-12-21 15:58:50 · 2154 阅读 · 0 评论 -
Spark Streaming超神学习05
1.流批对比Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量和容错能力强等特点.2.输入位置和输出位置和Spark基于RDD的概念很相似,Spark Streaming使用离散化流(discretized stream)作为抽象表示,叫作DStream。DStream 是随时间推移而收到的数据的序列。在内部,每个时间区间收到的数据都作为 RDD 存在,而 DStream 是由这些 RDD 所组成的序原创 2020-12-21 15:23:37 · 186 阅读 · 0 评论 -
SparkSQL修仙学习04
Spark SQL是Spark用来处理结构化数据的一个模块.在SparkSQL中Spark为我们提供了两个新的抽象,分别是DataFrame和DataSet。他们和RDD有什么区别呢?首先从版本的产生上来看:RDD (Spark1.0) —> Dataframe(Spark1.3) —> Dataset(Spark1.6)效率逐个变高sparksql实操1.SparkSession操作步骤object Demo1 { def main(args: Array[Strin原创 2020-12-21 10:19:48 · 128 阅读 · 0 评论 -
shuffle发生数据倾斜的解决方案之一(局部聚合+全局聚合)
sparksql对于进行group by操作过程中产生的数据倾斜的处理。使用sql来解决sparksql编程过程中出现的数据倾斜问题以group by之后的dataskew为例来说明dataskew:什么是数据倾斜,表现有如何?1. 数据分布不均匀,体现在,某一/几字段的数据特别多,只有在进行聚合计算的时候,数据才会进行重新分布。2. 这个过程就是shuffle操作,shuffle操作的本质是相同key的数据汇聚到同一个计算节点上面进行聚合计算,这样才会出现前面说的特点,某一个分区的数据可能原创 2020-12-21 09:51:46 · 600 阅读 · 0 评论 -
SparkCore-RDD编程操作03
1. Spark程序执行过程1.1. WordCount案例程序的执行过程1.2. Spark程序执行流程2. RDD的操作2.1. RDD的初始化 RDD的初始化,原生api提供的2中创建方式,一种就是读取文件textFile,还有一种就是加载一个scala集合parallelize。当然,也可以通过transformation算子来创建的RDD。2.2. RDD的操作需要知道RDD操作算子的分类,基本上分为两类:transformation和action,当然更加细致的分,可以分为原创 2020-12-20 20:45:31 · 115 阅读 · 1 评论 -
SparkCore-RDD共享变量
Normally, when a function passed to a Spark operation (such as map or reduce) is executed on a remote cluster node, it works on separate copies of all the variables used in the function. These variables are copied to each machine, and no updates to the va.原创 2020-12-20 16:47:53 · 96 阅读 · 1 评论 -
SparkCore-RDD持久化操作
什么是持久化One of the most important capabilities in Spark is persisting (or caching) a dataset in memory across operations. When you persist an RDD, each node stores any partitions of it that it computes in memory and reuses them in other actions on that dat原创 2020-12-20 01:26:53 · 123 阅读 · 1 评论 -
action行动算子使用案例大全
所有的这些算子都是在rdd,rdd上的分区partition上面执行的,不是在driver本地执行。是spark作业执行的动因foreach打印rddarr.foreach(println)foreachPartitionobject Demo3 { def main(args: Array[String]): Unit = { val conf = new SparkConf() .setAppName("Demo2") .setMaster("local原创 2020-12-20 01:03:07 · 149 阅读 · 1 评论 -
transformation转换算子详细案例大全
maprdd.map(func):RDD,对rdd集合中的每一个元素,都作用一次该func函数,之后返回值为生成元素构成的一个新的RDD。 listRDD.map(num => num * 7)mapPartitions/mapPartitionsWithIndex/** * map(p: A => B) * 对集合中的每一条记录操作,将元素A转化为元素B * mapPartitions(p: Iterator[A] => Iterator[B])原创 2020-12-20 00:45:28 · 380 阅读 · 1 评论 -
spark之SparkCore代码入门02
1. Spark项目的创建 说明一点,这里创建的项目,比之前稍微复杂一点点–基于maven的聚合和继承项目。创建父工程,再创建多个子模块,这里用到spark-core因为我不想再重新截图,所以用之前的,模块名会不完全相同,但都是一个意思,但能看懂注意:父模块,一般不做开发,也就可以删除src相关目录;主要的作用就是用来管理所有的子模块,管理整个项目中使用到的依赖及其版本。创建子目录–通用common2. 项目编码1. 添加模块为scala项目第一步,在src下面创建一个s原创 2020-12-19 00:30:06 · 266 阅读 · 1 评论 -
报错:Container killed by YARN for exceeding memory limits
虚拟内存超过物理内存这个错误。Container killed by YARN for exceeding memory limits. 15.6 GB of 15.5 GB physical memory used.解决问题:在yarn-site.xml中添加如下两个配置 <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false&l原创 2020-12-19 00:22:29 · 840 阅读 · 1 评论 -
报错:is not a valid DFS filename
java.lang.IllegalArgumentException: Pathname /E:/data/hello.txt from hdfs://ns1/E:/data/hello.txt is not a valid DFS filename原因就在于,已经在classpath下面加载了hdfs-site.xml和core-site.xml的配置文件,则会自动理解输入的文件路径为hdfs的,自然会报错。所以,在此情况下还想加载本地文件,那么就告诉机器以本地文件的格式或者协议读取即可把/E:/da原创 2020-12-18 23:48:19 · 7283 阅读 · 2 评论 -
spark之安装,介绍01
1 Spark介绍1.1 什么是Spark spark官网地址:http://spark.apache.org和https://databricks.com/Spark它就是一个集成离线计算,实时计算,SQL查询,机器学习,图计算为一体的通用的计算框架。1.2 RDD说的太好了,都写上何为RDD,其实RDD就是一个不可变的scala的并行集合。 Spark的核心概念就是RDD,指的是一个只读的,可分区的分布式数据集,这个数据的全部或者部分可以缓存在内存中,在多次计算间被重用。原创 2020-12-18 21:51:01 · 481 阅读 · 3 评论 -
shuffle类算子及其弊端
尽量避免使用shuffle类算子 如果有可能的话,尽量避免使用shuffle类算子。因为Spark作业运行过程中,最消耗性能的地方就是shuffle过程。shuffle过程,就是将分布在集群中多个节点上的同一个key,拉取到同一个节点上,进行聚合或join等操作。比如reduceByKey、join等算子,都会触发shuffle操作。shuffle过程中,各个节点上的相同key都会先写入本地磁盘文件中,然后其他节点需要通过网络传输拉取各个节点上的磁盘文件中的相同key。而且相同key都拉取到同一个节点转载 2020-12-09 09:55:15 · 813 阅读 · 0 评论