spark
奔跑的max蜗牛
这个作者很懒,什么都没留下…
展开
-
map和flatMap之间的区别
scala> rdd5.flatMap(t=>{t.split("\t")}).collectres8: Array[String] = Array(75, 2018-09-17 19:15:34.0, BK-HTML5-JY-1819, BK181713017, 张帅杰, 2018-09-17 19:50:37.0, 34, 0, 55, 55, 75, 2018-09-17 19...转载 2018-12-28 09:19:12 · 3954 阅读 · 0 评论 -
idea运行spark程序启动报错
错误信息如下:java.lang.IllegalArgumentException: System memory 259522560 must be at least 471859200. Please increase heap size using the --driver-memory option or spark.driver.memory in Spark configurati...原创 2019-07-03 15:58:09 · 522 阅读 · 0 评论 -
case class在spark的executor端传输不需要序列化
只要在声明类时 在class关键字前加上case关键字 这个类就成为了样例类样例类和普通的区别在于: (1)默认实现序列化接口 (2)默认自动覆盖 toString equals hashCode方法 (3)不需要new可以直接生成对象这个代码是不会报错,是可以正常执行的。...原创 2019-01-23 15:24:36 · 1033 阅读 · 0 评论 -
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/Logging
在spark1.X以前,Logging使用的是org.apache.spark.Logging这个类,但是在spark2.X以后,这个类被改成了import org.apache.spark.internal.Logging。下图的spark版本是2.x,可以看出对于org.apache.spark.Logging这个类,它已经不识别了,所以这里需要将spark的版本替换成2.X。...原创 2019-01-15 20:54:29 · 4554 阅读 · 2 评论 -
spark2.2.0中stage划分的源码解析
这里主要讲解的是stage的划分。stage的划分工作是在DAGScheduler中完成的,在DAGScheduler中会将一个job根据宽窄依赖划分为多个stage。下面会详细介绍stage的划分过程。1.首先你需要有一个spark2.X源码,因为你可以在源码的基础上进行注释,方便你后期的学习。双击shift->输入RDD2.进入到RDD的源码,你会发现我们调用的spar...原创 2019-01-18 21:30:41 · 885 阅读 · 1 评论 -
Idea左侧栏不显示目录结构
使用Idea有时候会遇到左侧栏的目录结构显示不出来的情况,这时候可以这样解决:1.删除该项目根目录下的.idea文件夹;2.重启Idea即可看到目录结构转载 2019-01-13 23:28:25 · 4301 阅读 · 0 评论 -
spark2.x中使用累加器
spark1.X和2.X定义累加器的方式是不同的:累加器的作用:可以实现一个变量在不同的executor端能保持状态的累加。使用累加器的代码实现累加: def main(args: Array[String]): Unit = { val ssc = SparkSession.builder().appName("ac").master("local[*]").getOr...原创 2019-01-17 17:39:14 · 2160 阅读 · 1 评论 -
什么是RDD
RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD具有数据流模型的特点:自动容错、位置感知性调度和可伸缩性。RDD允许用户在执行多个查询时显式地将工作集缓存在内存中,后续的查询能够重用工作集,这极大地提升了查询速度。下面是RDD属性的介绍:- A list of pa...原创 2019-01-07 10:43:07 · 278 阅读 · 0 评论 -
Spark自定义类在Driver和Executor端传输问题
方式一:自定义一个类,并且这个类需要实现Serializable接口1.首先写一个class自定义类class Rules extends Serializable { val rulesMap = Map("hadoop" -> 2.7, "spark" -> 2.2) //val hostname = InetAddress.getLocalHost.getHost...原创 2019-01-06 15:55:54 · 1405 阅读 · 0 评论 -
SparkStreaming实现HA高可用
一:RDD高可用spark streaming,从原理上来说,是通过receiver来进行数据接收的;接收到的数据,会被划分成一个一个的block;block会被组合成一个batch;针对一个batch,会创建一个rdd;启动一个job来执行我们定义的算子操作。receiver主要接收到数据,那么就会立即将数据写入一份到容错文件系统(比如hdfs)上的checkpoint目录中的,一份磁盘文件中...原创 2019-01-06 15:32:51 · 767 阅读 · 0 评论 -
Spark-Streaming之window滑动窗口应用
Spark-Streaming之window滑动窗口应用,Spark Streaming提供了滑动窗口操作的支持,从而让我们可以对一个滑动窗口内的数据执行计算操作。每次掉落在窗口内的RDD的数据,会被聚合起来执行计算操作,然后生成的RDD,会作为window DStream的一个RDD。网官图中所示,就是对每三秒钟的数据执行一次滑动窗口计算,这3秒内的3个RDD会被聚合起来进行处理,然后过了两秒...转载 2019-01-06 13:49:37 · 266 阅读 · 0 评论 -
对DStream.foreachRDD的理解
官方文档解释:将函数func应用于从流生成的每个RDD的最通用的输出运算符。此函数应该将每个RDD中的数据推送到外部系统,例如将RDD保存到文件中,或者通过网络将其写入数据库。请注意,函数func是在运行流应用程序的驱动程序进程中执行的,并且通常在函数func中包含RDD操作,这将强制计算流RDD。对于这个定义会产生一个疑问:在一个batch interval里面会产生几个RDD?结论:有且...原创 2019-01-05 23:28:29 · 662 阅读 · 0 评论 -
Idea中使用maven打包出现Cleaning up unclosed ZipFile for archive?
原因:因为因为maven打包的时候内存不够导致解决办法:一:右击package->选中下面截图所示选项二:添加参数(-Xms1024m -Xmx1024m) 点击applay三:此时会多处这个Run Configurations四:打包选择使用Run Configuraions中自己配置进行打包...原创 2019-07-12 16:30:30 · 9097 阅读 · 0 评论