spark
文章平均质量分 62
Xlucas
做自己,做一个最普通的分享者
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spark编程模型Transformation操作一
基本Transformation使用 1、map 2、filter 3、flatMap 4、mapPartitions 5、mapPartitionsWithIndex 6、sample案例和注释package com.paic.Spark;import org.apache.spark.SparkConf;import org.apache.spark.api.j...原创 2018-04-05 16:36:20 · 560 阅读 · 0 评论 -
Spark开发-transformations操作
核心 transformations操作 map(func) 返回一个新的RDD,这个函数的主要功能是对所有元素进行参数上的操作 对每一条输入进行指定的操作,然后为每一条输入返回一个对象 例如 val rdd1=sc.parallelize(Array(1,2,3,4)).map(x=>2*x).collect 这个是对数据 1,2,3,4进行map操作,里面的函数是2*x就是每个元素都原创 2017-09-22 09:39:30 · 704 阅读 · 0 评论 -
Spark开发-RDD分区重新划分
repartition(numPartitions: Int):RDD[T] coalesce(numPartitions: Int, shuffle: Boolean = false):RDD[T]repartition和coalesce是对RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为true的简易实现,所以这里主要讨论coalesce合并函数该如何原创 2017-10-09 23:36:21 · 2785 阅读 · 0 评论 -
Spark开发-控制操作
控制操作 control operation1、cache(): this.type 2、persist(): this.type 3、persist(newLevel: StorageLevel, allowOverride: Boolean): this.type在spark中对RDD进行持久化操作是一项非常重要的功能,可以将RDD持久化在不同层次的存储介质中,以便后续的操作能够重复使用,这原创 2017-10-09 23:52:41 · 569 阅读 · 0 评论 -
Spark开发-广播变量
核心 1、什么是广播变量 2、为什么需要广播变量 3、案例什么是广播变量 Spark有两种共享变量——累加器、广播变量。广播变量可以让程序高效地向所有工作节点发送一个较大的只读值,以供一个或多个Spark操作使用。为什么需要广播变量 Spark中分布式执行的代码需要传递到各个Executor的Task上运行。对于一些只读、固定的数据(比如从DB中读出的数据),每次都需要Driver广播到各原创 2017-10-01 23:48:27 · 1217 阅读 · 0 评论 -
Spark开发-RDD接口编程
一般情况下面RDD包括5个接口partition 分区,一个RDD会有一个或者多个分区 preferredLocations(P) 对于分区P而言,返回数据本地化计算的节点 dependencies() RDD的依赖关系 compute(p,context)原创 2017-10-03 23:57:07 · 1514 阅读 · 0 评论 -
Spark开发-运行架构基本概念
1:基本术语 Application: 基于Spark的用户程序,包含了一个driver program 和 集群中多个的executor Driver Program :运行Application的main()函数并且创建SparkContext,通常用SparkContext代表Driver Program Executor: 是为某Application运行在worker node上的一转载 2017-10-13 00:31:06 · 785 阅读 · 0 评论 -
Spark开发-Spark运行模式及原理一
核心 1、介绍Spark的运行模块有哪几种 2、TaskScheduler和TaskSchedulerBackend介绍 3、Executor介绍spark的运行模式多种多样,灵活多变,部署在单机上时,既可以用本地模式运行,也可以用伪分布模式运行,而当以分布式集群的方式部署时,也有众多的运行模式可以供选择,这取决于集群的实际情况,底层的资源调度既可以依赖于外部的资源调度框架,原创 2017-10-23 00:28:03 · 905 阅读 · 0 评论 -
Spark开发-Local模式
部署及程序运行 Local模式,就是运行在本地,如果不加任何配置,Spark模式设置为Local模式,以WordCount为例,Local模式下的应用程序的启动命令如下 ./bin/run-example org.apache.spark.examples.JavaWordCount local 在WordCount代码的具体实现中,是根据用户传入的参数来选择运行的模式的,如果需要自己在代码中原创 2017-10-24 00:04:55 · 2963 阅读 · 0 评论 -
Spark开发-Standalone模式
Standalone模式 在Spark Standalone模式中,spark集群有Master节点和worker节点组成,用户程序通过与master节点交互,申请所需的资源,Worker节点负责具体executor的启动运行。 以WordCount为例,Standalone模式下的应用程序的启动命令如下 ./bin/run-example org.apache.spark.examp原创 2017-10-24 23:06:24 · 900 阅读 · 0 评论 -
Spark开发-Shuffle优化
调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle调优只能在整个Spark的性能调优中占到一小部分而已。因此大家务必把握住调优的基本原创 2017-11-15 00:09:30 · 555 阅读 · 0 评论 -
Spark开发-Yarn cluster模式
1、部署及程序运行 YARN cluster模型,顾名思义就是通过Hadoop YARN框架来调度spark应用所需的资源,要将Spark集群运行在YARN模式下,首先需要部署一个YARN集群提供该模式使用,在实际应用中,这两者的因果关系往往是反过来的,这是因为用户有一个Hadoop YARN集群,因此希望将spark也纳入YARN的调度管理中,这样有利于系统的资源共享, 打包 对于spark原创 2017-11-05 23:52:04 · 1316 阅读 · 0 评论 -
Spark编程模型Transformation操作三
join cogroup cartesian coalesce repartitionpackage com.paic.Spark;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;imp...原创 2018-04-08 20:55:38 · 554 阅读 · 0 评论 -
Spark本地调试模式错误解决
1、如果本地运行出现下面这个错误: ERROR Shell: Failed to locate the winutils binary in the hadoop binary path原因:本地没有hadoop环境信息:解决方案: 1.下载winutils的windows版本 GitHub上,有人提供了winutils的windows的版本,项目地址是:https://github...原创 2018-04-05 14:18:26 · 1123 阅读 · 0 评论 -
Spark开发-Spark内核细说
核心 1、介绍spark的内核集群模式是Standalone的 ● Driver:就是我们用来提交编写的Spark程序的一台机器,在Driver中最重要的一件事—创建SparkContext ● Application :就是我们编写的程序,类里面创建了SparkContext的程序 ● spark-submit: 就是用来向Spark集群提交application的程序,spa原创 2017-09-21 00:25:21 · 643 阅读 · 0 评论 -
Spark编程模型Transformation操作二
union intersection distinct mapToPair groupByKey reduceByKey sortByKey aggregateByKeypackage com.paic.Spark;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;...原创 2018-04-06 11:21:26 · 428 阅读 · 0 评论 -
Spark本地worldcount详细讲解(Java版本)
package com.xlucas;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;impor...原创 2018-12-12 23:37:44 · 957 阅读 · 0 评论 -
Spark中Transformation的讲解
主要讲解一下map,filter,flatMap,groupByKey,reduceByKey,sortByKey,join,cogroupmap讲解List<Integer> list= Arrays.asList(1,2,3,4,5,6,7,8,9,10); JavaRDD<Integer> line=sc.parallelize(list); ...原创 2018-12-21 00:27:22 · 690 阅读 · 0 评论 -
Spark本地worldcount详细讲解(Scala版本)以及流程
主要介绍Scala来写spark代码的流程package com.xlucas import org.apache.spark.SparkConf import org.apache.spark.SparkContext /** * Created by Xlucas on 2018/12/16. */ object WordCo...原创 2018-12-16 15:11:23 · 1458 阅读 · 1 评论 -
创建RDD创建方式
RDD的创建方式1、集合创建RDD2、使用本地文件创建RDD3、使用HDFS文件创建RDD集合创建RDD1、如果要通过并行化集合来创建RDD,需要针对程序中的集合,调用SparkContext的parallelize()方法。Spark会将集合中的数据拷贝到集群上去,形成一个分布式的数据集合,也就是一个RDD。相当于是,集合中的部分数据会到一个节点上,而另一部分数据会到其他节点上。然后就...原创 2018-12-17 01:05:59 · 1531 阅读 · 0 评论 -
Spark中Action的讲解
主要讲解一下reduce,collect,count,take,saveAsTextFile,countByKeyreduce讲解 // 使用reduce操作对集合中的数字进行累加 // reduce操作的原理: // 首先将第一个和第二个元素,传入call()方法,进行计算,会获取一个结果,比如1 + 2 = 3 //...原创 2018-12-22 00:06:41 · 1136 阅读 · 0 评论 -
Spark核心编程原理
原创 2018-12-11 23:54:05 · 1080 阅读 · 0 评论 -
Spark排序--交换排序
之前我们写过简答的worldcount统计的代码,但是我们如何做到按照value来排序呢??伪代码如下 // 执行我们之前做过的单词计数 JavaRDD<String> lines=line.flatMap(new FlatMapFunction<String, String>() { @Override ...原创 2018-12-28 23:32:05 · 566 阅读 · 0 评论 -
RDD持久化原理
Spark非常重要的一个功能特性就是可以将RDD持久化在内存中。当对RDD执行持久化操作时,每个节点都会将自己操作的RDD的partition持久化到内存中,并且在之后对该RDD的反复使用中,直接使用内存缓存的partition。这样的话,对于针对一个RDD反复执行多个操作的场景...原创 2018-12-23 23:40:08 · 1456 阅读 · 0 评论 -
Spark共享变量
Spark一个非常重要的特性就是共享变量。默认情况下,如果在一个算子的函数中使用到了某个外部的变量,那么这个变量的值会被拷贝到每个task中。此时每个task只能操作自己的那份变量副本。如果多个task想要共享某个变量,那么这种方式是做不到的。 Spark...原创 2018-12-24 00:51:11 · 1793 阅读 · 0 评论 -
Spark二次排序的操作
二次排序原理二次排序就是首先按照第一字段排序,然后再对第一字段相同的行按照第二字段排序,注意不能破坏第一次排序的结果例如输入这样的文件,xlucas1 18 aaxlucas2 18 bbxlucas 19 ccaa 20 xlucasaa 17 xlucasxlucas1 17 ccyy 29 xlucas希望输出的结果是从大到小排序yy 29 xlucasxlucas...原创 2019-01-03 00:24:31 · 702 阅读 · 0 评论 -
Spark中topN和groupTopn讲解
Spark中topN和groupTopn讲解说谎和沉默可以说是现在人类社会里日渐蔓延的两大罪恶。事实上,我们经常说谎,动不动就沉默不语。——村上春树本文主要介绍了Spark中去topN的操作和分组取topN的操作topN的实现思路:1、首先我们需要采用PairRDD的方式来存储数据对象,PairRDD里面的key和value尽量都保存成一样的2、在采用sortByKey对key进行排序3、在采用M...原创 2019-01-14 01:26:25 · 1542 阅读 · 0 评论 -
Spark内核架构解析
本文主要介绍了spark运行的大概流程。已经每个组件大概做了什么工作1、Spark-submit提交的时候有多种方式,其实会通过反射的方式,创建和构造一个DriverActor进程出来2、在构造SparkContext的时候,构造出DAGScheduler和TaskScheduler3、DAGScheduler会将job划分为多个stage,然后每个stage创建一个Taskset4、T...原创 2019-01-24 23:32:13 · 601 阅读 · 0 评论 -
SparkContext原理解析和源码解析
SparkContext主要介绍下面几个点TaskSchedulerDAGSchedulerSparkUI环境是spark1.6.3TaskScheduler初始化机制createTaskScheduler()->TaskSchedulerImpl->SparkDeploySchedulerBackend->initialize()->ScheduleP...原创 2019-01-27 23:01:52 · 571 阅读 · 0 评论 -
DataFrames与RDDs的相互转换
SparkSQL:DataFrames与RDDs的相互转换SparkSQL 支持2种RDDs转换DataFrames的方式1、使用反射获取RDD内的schema,当已知类的schema的时候,使用这种基于发射的方法会让代码更加简洁而且效果也很好 2、通过编程接口指定schema,通过spark sql的接口创建RDD的schema,这种方式会让代码比较冗长,这种方式的好处是,在运行时才知道数据的列原创 2017-03-28 00:51:42 · 1485 阅读 · 0 评论 -
spark transformation和action算子
spark transformation和action的算子 map(func) 返回一个新的分布式数据集,由每个原元素经过func函数处理后的新元素组成 filter(func) 返回一个新的数据集,由经过func函数处理后返回值为true的原元素组成 flatMap(func) 类似于map,但是每一个输入元素,会被映射为0个或多个输出元素,(因此,func函数的返回值是一个seq,原创 2016-08-30 00:35:45 · 5573 阅读 · 0 评论 -
spark dataframe函数编程
以下函数的说明之针对于spark1.4.1dataframe类的说明。 Only for spark version1.4.1 DataFrame 的函数 Action 操作 1、 collect() ,返回值是一个数组,返回dataframe集合所有的行 2、 collectAsList() 返回值是一个java类型的数组,返回dataframe集合所有的行 3、 count() 返回原创 2016-09-11 00:59:56 · 2606 阅读 · 0 评论 -
spark编程模型
1、spark应用程序有两部分组成: –driver –executor 2、spark应用程序基本概念 application:基于spark的用户程序,包含了driver program和集群中多个executor driver program:运行application的main()函数并且创建sparkcontext,通常用sparkcontext代表driver program原创 2016-08-09 23:06:05 · 578 阅读 · 0 评论 -
spark编程模型二
并行化scala集合 1、spark使用parallelize方法转换成RDD 2、val rdd1=sc.Parallelize(Array(1,2,3,4,5)) 3、val rdd2=sc.Parallelize(List(0 to 10),5) 4、参数slice是对数据集切片,每一个slice启动一个task进行处理hadoop数据集 1、spark可以将任何hadoop所支持原创 2016-08-09 23:56:19 · 871 阅读 · 0 评论 -
spark运行模式
spark运行模式列表 基本上,spark的运行模式取决于传递给sparkcontext的deployMode和master环境变量的值,个别模式还需要辅助的程序接口来配合使用,目前master有LOCAL、YARN 、STANDALONE 、MESOS 模式。而deploy-mode必须是cluster、client的一种 spark 1.6里面用数字表示了启动的模式// Cluste原创 2016-09-05 00:26:14 · 2966 阅读 · 0 评论 -
spark运行架构
概念 job :包含多个task组成的并行计算,往往由spark action催生 stage job的调度单位,对应于taskset taskset 一组关联的相互之间没有shuffle依赖关系的人去组成的任务集 task 被送到某个executor上的工作单元 通常一个partition上面就是一个task1、spark 程序分2部分,一个是以sparkContext的 Driver原创 2016-08-26 00:20:08 · 814 阅读 · 0 评论 -
Spark-shell编程
RDD的partition分片,每个partition由一个task来处理 //parallelize演示 val num=sc.parallelize(1 to 10) 创建一个1到10的数组,默认和executor的个数一样 val doublenum=num.map(_*2) 数组的每个值乘以 2 val threenum=doublenum.filter(_%3 ==0)原创 2016-08-14 23:31:51 · 986 阅读 · 0 评论 -
Spark 应用程序调优
对于很多刚接触Spark的用户来说,他们可能主要关心数据处理的逻辑,而对于如何高效运行Spark应用程序了解较少。由于Spark是一种分布式内存计算框架,其性能往往受限于CPU、内存、网络等多方面的因素,对于用户来说,如何在有限的资源下高效地运行Spark应用程序显得尤为重要。下面只针对Spark-On-Yarn的一些常用调优策略做详细分析。配置参数优化 资源申请参数 Spark-On-Yarn转载 2016-11-04 10:34:57 · 948 阅读 · 0 评论 -
Storage 模块整体架构
问题导读: 1、如何理解Spark模块整体架构? 2、理解Spark中各个类的功能作用都有什么? Storage模块负责了Spark计算过程中所有的存储,包括基于Disk的和基于Memory的。用户在实际编程中,面对的是RDD,可以将RDD的数据通过调用org.apache.spark.rdd.RDD#cache将数据持久化;持久化的动作都是由Storage模块完成的。包括Shuffle过程中原创 2016-11-17 09:00:51 · 1258 阅读 · 0 评论 -
Spark初级入门详解
问题导读1.spark中什么是Application? 2.spark中什么是Driver Program? 3.Executor负责什么? 4.什么是Stage? 5.客户Spark程序(Driver Program)来操作Spark集群是通过哪个对象来进行的? 6.创建SparkContext一般要经过几个步骤? 7.Spark的运行模式取决于什么? 8. RDD的共享变量有几种?转载 2016-11-15 08:47:35 · 1158 阅读 · 0 评论
分享