![](https://img-blog.csdnimg.cn/20190912104914708.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spark
文章平均质量分 51
肯德基套餐
这个作者很懒,什么都没留下…
展开
-
Spark搭建pipeline bakup
#!/usr/bin/env bash#pre_request#ssh login without password from master to all salves and from all slaves to mastersudo vim /etc/hostname (change to master or slave1, slave2, slave3..)sudo vim /...原创 2020-03-30 16:01:42 · 215 阅读 · 0 评论 -
【bigger than spark.driver.maxResultSize】
提交spark程序后报如下错误Caused by: org.apache.spark.SparkException: Job aborted due to stage failure: Total size of serialized results of 90 tasks (1025.7 MB) is bigger than spark.driver.maxResultSize (1024.0...原创 2018-09-23 23:43:50 · 4543 阅读 · 0 评论 -
SparkDataFrame 将多行数据平铺展开
场景如下,某个user_id在不用的月份在id1~id_12上都有数据,机器学习训练时,这些id对应不同月份上的数据要么在一起进行编码,最终成为一行数据,要么把这些id对应不同月份的数据展开,成为新的feature,比如id1在201805上的数据可以作为一个新的feature–>201805_id1变成如下的形式(每个id在不同月份的值变成了新id)user_id20170...原创 2018-09-26 20:46:00 · 3906 阅读 · 2 评论 -
Spark数据倾斜之发现篇
用spark做大数据处理,不怕数据大,就怕发生数据倾斜,一发生数据倾斜,轻则spark job要跑很久才能结束,重则OOM,把一个executor的存储空间撑爆,导致程序终止。一个spark job 是由多个stage组成的 ,stage之间具有先后关系,所以是串行执行的 ,一个stage是由多个task 组成的,每个task之间可以并行运行,一个stage的运行时间由耗时最长的那个task来决...原创 2018-10-20 15:34:19 · 1702 阅读 · 7 评论 -
Spark save result to Local file System but only SUCCESS
运行如下代码,把结果保存到本地文件系统而不是HDFS上,但是结果中只有success文件没有内容文件 val data1 =sc.parallelize(Array(("a",1),("b",1),("c",1),("d",1))) .map(x=>x._1 + x._2.toString) .repartition(1)data1.saveAsT...原创 2018-10-29 11:10:23 · 883 阅读 · 0 评论 -
Spark先分区再排序
记录目的在于弄清楚spark 排序后再partition会不会导致原来的顺序改变(是不会改变的),从而达到数据按照某个属性分区,并且分区后内部是按照其他属性排好序的数据为DF格式时代码 val spark =SparkSession.builder().config(new SparkConf()).getOrCreate() val sc =spark.sparkConte...原创 2018-10-27 14:08:18 · 3943 阅读 · 0 评论 -
spark 自定义Partitioner
在对RDD数据进行分区时,默认使用的是 HashPartitioner,该partitioner对key进行哈希,然后mod 上分区数目,mod的结果相同的就会被分到同一个partition中如果嫌HashPartitioner 功能单一,可以自定义partitioner自定义partitioner1.继承org.apache.spark.Partitioner2.重写numPartiti...原创 2018-11-01 17:56:41 · 1023 阅读 · 0 评论 -
spark在HDFS上保存/读取 map
保存:序列化以后保存位ObjectFileval sc =spark.sparkContextvar EncodeMap = scala.collection.mutable.Map[String,Map[String,Int]]()sc.parallelize(EncodeMap.toSeq).saveAsObjectFile(feature_map_path)读取:先定义Map结...原创 2018-11-02 15:52:14 · 1596 阅读 · 0 评论 -
Caused by: java.io.NotSerializableException: org.apache.spark.SparkContext
User class threw exception: org.apache.spark.SparkException: Task not serializableat org.apache.spark.util.ClosureCleaner$.ensureSerializable(ClosureCleaner.scala:298)at org.apache.spark.util.Closu...原创 2018-11-08 20:30:52 · 5562 阅读 · 0 评论 -
java.lang.NoSuchMethodError: scala.Predef$.refArrayOps
check一下pom中的scala版本与Modules 中的scala版本是否一致原创 2019-03-17 15:31:25 · 1163 阅读 · 0 评论 -
Spark: Wrong FS: hdfs://localhost:9000/user/... expected: file:///
在CommonUtils 里面写个对于HDFS路径操作的方法,在保存文件前查看文件是否存在,如果存在则先删除。删除的函数如下所示 def pathDelete(path:String, sc: SparkContext): Unit ={ val fs = FileSystem.get(sc.hadoopConfiguration) if (fs.exists(new Path...原创 2019-03-17 21:22:32 · 2117 阅读 · 0 评论 -
对sparkDataFrame 多列进行多个函数操作
最近做机器学习项目的特征工程遇到问题,就是对spark的dataframe 进行处理时,要对某个feature(也就是列)进行多个函数操作,场景如下:数据的schema如下,先groupBy(“user_id”),然后对分组后的每个feature 求一些统计特征比如max min avg等等root |-- user_id: string (nullable = true) |-- mon...原创 2018-09-23 12:41:21 · 8201 阅读 · 3 评论 -
Idea 本地运行spark程序参数配置
在idea上运行spark程序,需要配置部分如下 点击run->Edit configurationVM options 配置的是配置参数,规定了spark运行的一些配置 program arguments 配置的是输入的参数,要注意的是,输入变量和对应的值之间用空格分开,并且值不需要用引号括起来...原创 2018-08-25 16:37:20 · 5390 阅读 · 0 评论 -
No applicable constructor/method found for actual parameters
在用case class 解析parquet文件时,比如先去查看下数据的schema,是如下形式的 构造一个case class如下case class xxx( id:String, idType:Byte, appUsage: Map[String,Map[String,Map[String,Long]]] )解析的时候报如...原创 2018-08-23 09:48:10 · 2448 阅读 · 0 评论 -
Spark 介绍以及相关概念
Spark起源:Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley 加州大学伯克利AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出结果可以保存在内存中,从而不再需要读写H...原创 2018-02-09 10:33:07 · 1373 阅读 · 0 评论 -
Spark架构图详解
Spark架构架构图如下: Spark结构主要分为四个部分: 1. 用来提交作业的Client程序:client是什么呢,比如spark中提交程序的shell窗口,宏观上讲,是一台提交程序的物理机。负责将打包好的spark程序提交到集群中,提交完程序这个客户端客户端程序还发挥什么作用呢?yarn-client模式下,客户端提交程序后,在该客户端上又运行着一个driver程序,这个cl...原创 2018-02-09 12:57:34 · 19302 阅读 · 1 评论 -
Spark中stage的划分
如下为Spark中划分stage的源码: DAGScheduler将Job分解成具有前后依赖关系的多个stageDAGScheduler是根据ShuffleDependency划分stage的stage分为ShuffleMapStage和ResultStage;一个Job中包含一个ResultStage及多个ShuffleMapStage一个stage包含多个tasks,task的个...原创 2018-02-12 00:31:30 · 930 阅读 · 0 评论 -
Spark的Shuffle过程
shuffle原理:Shuffle是MapReduce框架中的一个特定的phase,介于Map phase和Reduce phase之间,当Map的输出结果要被Reduce使用时,输出结果需要按key哈希,并且分发到每一个Reducer上去,这个过程就是shuffle。shuflle描述着数据从map task到reduce task输入的这段过程,如果在分布式的情况下,reduce task...原创 2018-02-12 00:39:41 · 2501 阅读 · 0 评论 -
RDD基础
RDD介绍RDD概念一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可以分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算。RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,不能直接修改,只能基于稳定的物理存储中的数据集来创建RDD,或者通过在其他R...原创 2018-07-28 16:06:28 · 12661 阅读 · 0 评论 -
RDD弹性分布式数据集
RDD介绍RDD概念一个RDD就是一个分布式对象集合,本质上是一个只读的分区记录集合,每个RDD可以分成多个分区,每个分区就是一个数据集片段,并且一个RDD的不同分区可以被保存到集群中不同的节点上,从而可以在集群中的不同节点上进行并行计算。RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,不能直接修改,只能基于稳定的物理存储中的数据集来创建RDD,或者通过在其他RDD...原创 2018-07-22 21:05:01 · 3431 阅读 · 0 评论 -
spark内存管理
在执行 Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务的调度,后者负责在工作节点上执行具体的计算任务,并将结果返回给 Driver,同时为需要持久化的 RDD 提供存储功能。由于 Dr...原创 2018-07-22 21:15:39 · 252 阅读 · 0 评论 -
Spark-yarn伪分布式搭建
配环境1.etc/profileexport SPARK_HOME=/usr/local/spark/spark2.2export PATH=$SPARK_HOME/bin:$PATH2.spark/conf/spark-env.shexport JAVA_HOME=/usr/local/java/jdk1.8.0_161export SPARK_MASTER_HOST=12...原创 2018-07-22 21:16:29 · 657 阅读 · 0 评论 -
Spark 出现Initial job has not accepted any resources
提交spark作业时,程序无法正常运行,一直显示 可能的原因是之前用ctrl +C终止spark程序的时候并没有能够让spark程序终止(正常是可以的,或者通过sparkUI kill掉程序),导致spark程序一直在后台死循环般的运行,让后来提交的spark程序一直处于等待状态中,如下可以看到有个spark程序一直在运行,占用了所有的cpu内核,导致后面的程序一直处于等待中,...原创 2018-08-12 22:28:07 · 2279 阅读 · 0 评论 -
Spark学习之driver
driver在spark中并不是一个非常重要的概念,但是在学习过程中对于他的理解感觉比其他组件都要费劲,花了几天的功夫终于把Driver弄明白了,希望这篇博客能对刚学习spark的人有点帮助因为driver这个概念的理解与spark的运行模式有关,所以在讲解spark之前会先讲一下spark的四种分布式运行模式spark的四种分布式运行模式 如图所示,上方为spark的架构图,s原创 2018-01-14 20:18:10 · 9632 阅读 · 2 评论