
Spark
lds_include
在职人员
展开
-
Spark的Shuffle过程
Spark的Shuffle过程说明shuffle操作,是在spark操作中调用了一些特殊算子才会触发的一种操作,shuffle操作,会导致大量的数据在不同的节点之间传输,由上可知,shuffle过程是spark中最复杂、最消耗性能的一种操作举例reduceByKey算子会将一个RDD中的每一个key对应的所有value都聚合成一个value,然后生成一个新的RDD,新...原创 2019-04-10 22:15:28 · 1784 阅读 · 0 评论 -
Spark的shuffle的Shuffle read和shuffle write过程
Spark的shuffle的Shuffle read和shuffle write过程在发生shuffle的过程中,会发生shuffle write和shuffle read。shuffle write:发生在shuffle之前,把要shuffle的数据写到磁盘为什么:为了保证数据的安全性,避免占用大量的内存shuffle read:发生在shuffle之后,下游RDD读取上...原创 2019-04-13 09:42:55 · 5123 阅读 · 2 评论 -
Spark的checkpoint
Spark的checkpoint什么时候需要做检查点有时候中间结果数据或者shuffle后的数据需要在以后的job中经常调用,此时需要做checkpoint,checkpoint的目的地推荐最好把数据checkpoint到HDFS,保证数据安全性的前提下也便于集群所有节点能够获取到目的提高运算效率保证数据的安全性步骤1、设置目录sc.setCh...原创 2019-04-13 09:45:03 · 206 阅读 · 0 评论 -
Spark中transformation和Action的RDD算子
Spark中transformation和Action有的区别区别transformationtransformation是在现有的RDD上通过一定方法转换生成新的RDD,转换时延时执行(lazy)的;actionactions是指在RDD上进行计算,得到返回结果给驱动程序或写入文件系统, 触发job。综合执行了多次transformation,RDD并不一定会真正执行运算...原创 2019-04-13 11:03:27 · 436 阅读 · 0 评论 -
Spark2.0程序中的持久化数据到数据库中foreachPartition()方法报错
Spark2.0程序中的持久化数据到数据库中foreachPartition()方法报错出错的地方是foreachPartition(data2Mysql)中的方法data2Mysql报错代码val data2Mysql = (it:Iterable[(String, Int)]) => { var conn: Connection = null; var ps: ...原创 2019-04-13 16:55:23 · 560 阅读 · 0 评论 -
Spark的将IP转换为Long型的方法
Spark的将IP转换为Long型的方法ip格式192.168.111.4转换方法/** * 把IP转化为long类型的数据 * @param ip * @return */ def ip2Long(ip: String): Long = { val fragments = ip.split("[.]") var ipNum = 0L...原创 2019-04-13 17:13:15 · 516 阅读 · 0 评论 -
Spark连接mysql数据库的方法
Spark连接mysql数据库的方法引入pom文件在maven项目中的pom.xml中引入mysql连接的依赖 <!--mysql驱动依赖--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-conn...原创 2019-04-13 17:23:21 · 664 阅读 · 0 评论 -
Spark sql理论简介
Spark sql简介什么是spark sqlSpark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用。了解Spark Sql的必要性我们知道hive,它是将Hive SQL转换成MapReduce然后提交到集群上执行,大大简化了编写MapReduce的程序的复杂性,由于MapReduce这种计算模型执行...原创 2019-04-14 17:02:13 · 184 阅读 · 0 评论 -
Spark的DataFrame创建实例
Spark的DataFrame创建实例说明是一个分布式数据集(是一个数据描述),封装了RDD和Schema信息,底层还是调用的RDD,我们可以像操作二维表的方式进行操作,简单来说,DataFream就是RDD和Schema信息的结合体什么是DataFrames与RDD类似,DataFrame也是一个分布式数据容器。然而DataFrame更像传统数据库的二维表格,除了数据以外,还记录数...原创 2019-04-14 19:02:25 · 338 阅读 · 0 评论 -
Spark中的Task,partitioner,executor,cores等相关概念
Spark中的Task,partitioner,executor,cores等相关概念说明输入多个hdfs文件,每个文件有多个block,当spark读取多个文件时,将多个block合并为一个输入分片(InputSplit,它是不能跨文件的),每个输入分片对应一个task,一个task会被分配到某个节点的一个executor上执行,每个executor上有多个cores(一个executo...转载 2019-04-12 23:14:23 · 1255 阅读 · 0 评论 -
Spark2.3.0解决Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern component
Spark2.3.0解决Exception in thread “main” java.lang.IllegalArgumentException: Illegal pattern component: XXX 报错出错的调用代码此问题出现在调用spark.read.json或者csv的时候出现。res.write .mode("append") .json("c://out")...原创 2019-04-16 10:55:02 · 4865 阅读 · 0 评论 -
Spark的DAG
Spark的DAG什么是DAGDAG(Directed Acyclic Graph)叫做有向无环图,原始的RDD通过一系列的转换就就形成了DAG,根据RDD之间的依赖关系的不同将DAG划分成不同的Stage,对于窄依赖,partition的转换处理在Stage中完成计算。对于宽依赖,由于有Shuffle的存在,只能在parent RDD处理完成后,才能开始接下来的计算,因此宽依赖是划分Sta...原创 2019-04-12 19:31:14 · 456 阅读 · 0 评论 -
Spark中的shuffle能够调优的参数
Spark中的shuffle能够调优的参数属性名称默认值属性说明spark.reducer.maxSizeInFlight48mreduce task的buffer缓冲,代表了每个reduce task每次能够拉取的map side数据最大大小,如果内存充足,可以考虑加大,从而减少网络传输次数,提升性能spark.shuffle.blockTransferServ...原创 2019-04-10 22:32:20 · 339 阅读 · 0 评论 -
Spark中的Lineage血统
Spark中的Lineage血统说明RDD只支持粗粒度转换,即在大量记录上执行的单个操作。将创建RDD的一系列Lineage(即血统)记录下来,以便恢复丢失的分区。RDD的Lineage会记录RDD的元数据信息和转换行为,当该RDD的部分分区数据丢失时,它可以根据这些信息来重新运算和恢复丢失的数据分区。体现过程RDD在计算过程中,如果有一个RDD的分区信息丢失,该RDD会首先判断是否...原创 2019-04-11 11:18:59 · 696 阅读 · 0 评论 -
Spark集群上跑wordcount
Spark集群上跑wordcount1、创建WordCount程序的jar(maven项目)编写SparkWC.scala文件import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}/** * scala:是一个强类型语言 * 模板代码 */object SparkWC...原创 2019-04-02 17:06:00 · 432 阅读 · 0 评论 -
Spark是什么、能干什么、特点-一目了然
Spark是什么、能干什么、特点-一目了然什么是Spark(官网:http://spark.apache.org)Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPLab,2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkS...原创 2019-04-08 16:21:45 · 45819 阅读 · 0 评论 -
Spark计算模型
Spark计算模型一、弹性分布式数据集RDD1、什么是RDDRDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升...原创 2019-04-08 17:04:29 · 638 阅读 · 0 评论 -
Scala中的map和flatMap
Scala中的map和flatMaplist中map和flatMap的实现:map源码abstract class List[T]{ def map[U](f: T => U): List[U] = this match { case first :: last = f(first) :: last.map(f) case Nil = Nil }说明:map...原创 2019-04-02 20:33:33 · 413 阅读 · 0 评论 -
Scala&Hadoop&Spark的maven的全量集的pom
Scala&Hadoop&Spark的maven的全量集的pom.xml文件<?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-i...原创 2019-04-02 20:38:19 · 449 阅读 · 0 评论 -
Spark的RDD缓存
Spark的RDD缓存说明Spark速度非常快的原因之一,就是在不同操作中可以在内存中持久化或缓存多个数据集。当持久化某个RDD后,每一个节点都将把计算的分片结果保存在内存中,并在对此RDD或衍生出的RDD进行的其他动作中重用。这使得后续的动作变得更加迅速。RDD相关的持久化和缓存,是Spark最重要的特征之一。可以说,缓存是Spark构建迭代式算法和快速交互式查询的关键。RDD缓存方式...原创 2019-04-12 17:24:29 · 265 阅读 · 0 评论 -
spark的DataFrame常用操作
spark的DataFrame常用操作DSL风格语法查看DataFrame中的内容personDF.show查看DataFrame部分列中的内容personDF.select(personDF.col("name")).showpersonDF.select(col("name"), col("age")).showpersonDF.select("name").show...原创 2019-04-15 09:19:09 · 376 阅读 · 0 评论