![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spark
文章平均质量分 92
shining0903lxy
期待年薪100
展开
-
spark 的RDD分区
RDD的俩种创建方1.从集合中创建RDD,Spark主要提供了两种函数:parallelize和makeRDD使用parallelize()从集合创建scala> val rdd = sc.parallelize(Array(1,2,3,4,5,6,7,8))使用makeRDD()从集合创建scala> val rdd1 = sc.makeRDD(Array(1,2,3,4,5,6,7,8))2.由外部存储系统的数据集创建RDD包括本地的文件系统,还有所有Hadoop支持的数据集原创 2020-11-03 21:00:15 · 404 阅读 · 0 评论 -
spark 的checkpoint 详解
Spark core的checkpoint(1)为什么checkpoint?虽然RDD的血缘关系天然地可以实现容错,当RDD的某个分区数据失败或丢失,可以通过血缘关系重建。但是对于长时间迭代型应用来说,随着迭代的进行,RDDs之间的血缘关系会越来越长,一旦在后续迭代过程中出错,则需要通过非常长的血缘关系去重建,势必影响性能。Spark中对于数据的保存除了持久化操作之外,还提供了一种检查点的机制,检查点(本质是通过将RDD写入Disk做检查点)是为了通过lineage做容错的辅助,lineage过长会造原创 2020-05-12 22:30:08 · 1645 阅读 · 0 评论 -
spark 版本中数字的介绍
spark 版本中数字介绍1.6.01: major version : API change 大版本更新 设计api 变化以及各更新6:minor version : APIS/features add 新特性根性0:path version : pnly bug fixes 修复bug所以一般选择版本一般慎重选择末尾非零的...原创 2020-04-18 11:53:22 · 161 阅读 · 0 评论 -
spark core 优化面试
广播变量广播变量是避免每个excutor 发送一份数据而是一个worker 发送一份数据官网解释:Using the broadcast functionality available in SparkContext can greatly reduce the size of each serialized task, and the cost of launching a job ov...原创 2020-04-17 11:58:30 · 251 阅读 · 0 评论 -
spark 优化
一、开发优化1.1 避免创建重复RDD避免创建多个代表相同数据的rdd,增加作业开销1.2 尽可能复用同一个RDD比如一个RDD[(String,int)] 另外一个RDD只有前一个的value,是RDD[Int],其实可以尽可能使用前一个RDD,对于多个RDD数据有包含重叠关系的,尽可能重复使用一个RDD1.3 多次使用的RDD进行持久化每次执行一次都从源头出开始计算一次性能很差需...原创 2020-03-21 11:53:31 · 165 阅读 · 0 评论 -
sparkSql 中三大数据抽象Rdd,dataFrame,dataSet 详述
1.Rdd2.dateFrame3.dataSet4.Rdd和dataFrame 相互转化5.Rdd和dataSet 相互转化6.dataFrame和dataSet 相互转化7.Rdd,dataFrame,dataSet的共性,区别原创 2020-03-10 12:59:02 · 1176 阅读 · 0 评论 -
spark driver和 excutor的介绍
driver: 创建sparkcontext 上下文对象的应用程序为driver,用于发送任务excutor:接受任务并且执行任务原创 2020-03-06 17:02:58 · 248 阅读 · 0 评论 -
spark JobHistoryServer 的配置
spark JobHistoryServer配置1.前提安装完成spark集群2.配置1)修改spark-default.conf.template名称mv spark-defaults.conf.template spark-defaults.conf2) 修改spark-default.conf文件,开启Log:vi spark-defaults.conf 修改如下内容,注意:...原创 2019-12-04 10:03:00 · 287 阅读 · 0 评论 -
windows 访问hadoop权限问题
windows 访问hadoop 文件系统时候出现权限问题:Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.AccessControlException): Permission denied: user=ba, access=WRITE, inode="/d/_temporary/0":r...原创 2019-12-04 10:47:08 · 787 阅读 · 0 评论 -
spark 本地调试&远程调试
方式一:ieda 中编写代码,以local 模式调试val conf: SparkConf = new SparkConf().setAppName(“WordCount”).setMaster(“local”)//本地调试方式二: ieda 中编写代码,以集群 模式调试val conf: SparkConf = new SparkConf().setAppName(“WordCount”)...原创 2019-12-04 11:10:52 · 581 阅读 · 0 评论 -
spark运行时候的参数设置
首先spark经常 是以jar 包方式提交任务的bin/spark-submit –master spark://hadoop-103:7077 –class org.apache.spark.examples.SparkPi –deploy-mode client –executor-memory 1G –total-executor-cores 2 ./examples/ja...原创 2019-12-04 11:21:38 · 903 阅读 · 0 评论 -
spark 的wordcount 俩种实现
1. 在spark-shell 中实现wordcount sc.textFile("hdfs://hadoop- 101:9000/a.txt").flatMap(_.split("")).map((_,1)).reduceByKey(_+_).collect 2. 在IDEA中实现object WordCount extends App { val conf: SparkC...原创 2019-12-04 11:30:59 · 127 阅读 · 0 评论 -
spark RDD 学习
1. RDD是什么RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个不可变、可分区、里面的元素可并行计算的集合。RDD中是不保存数据的,理解上我们可以看作一个集合rdd里面具体数据是分布在多台机器上的excutor的堆内,堆外,磁盘RDD就是一个类2. RDD的属性–7个特性RDD是由...原创 2019-12-04 13:02:58 · 129 阅读 · 0 评论 -
RDD的transformation转换操作
RDD 分类数值RDDKV类型RDDtransformation转换 算子特性transformation 是懒执行,只有action算子才能触发针对数值RDD 的一些常见算子3.1 map(func) 对RDD上每一个元素进行func操作3.2 mapPartitions(func) 对RDD的每个分区进行操作相比较map,计算次数变少,每个分区的数据封装为一个...原创 2019-12-04 14:08:48 · 302 阅读 · 0 评论 -
reduceByKey和groupByKey的区别
reduceByKey:按照key进行聚合,在shuffle之前有combine(预聚合)操作,返回结果是RDD[k,v].groupByKey:按照key进行分组,直接进行shuffle。开发指导:reduceByKey比groupByKey,建议使用。但是需要注意是否会影响业务逻辑。...原创 2019-12-04 14:10:04 · 4374 阅读 · 0 评论 -
spark 的宽窄依赖
RDD之间是有依赖关系的,这种依赖关系称之为Lineage(血统)依赖也分为窄依赖和宽依赖窄依赖:父RDD的一个分区最多被子的一个分区使用宽依赖:父RDD的一个分区被子的多个分区使用宽依赖一定会有shuffle,效率就会变低...原创 2019-12-04 15:27:39 · 120 阅读 · 0 评论 -
repartition 和 coalesce 的区别
coalesce重新分区,可以选择是否进行shuffle过程。由参数shuffle: Boolean = false/true决定。repartition实际上是调用的coalesce,默认是进行shuffle的。repartition 底层也是调用coalesce的源码如下:def repartition(numPartitions: Int)(implicit ord: Orderi...原创 2019-12-04 16:22:04 · 787 阅读 · 0 评论 -
spark 启动失败
spark 启动失败,出现如下异常 Call From hadoop-103/192.168.23.103 to hadoop-101:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/Connecti...原创 2019-12-05 10:25:05 · 1013 阅读 · 0 评论 -
spark的分区设计
spark 的RDD中对应数据是分区的:对于RDD来说,每个分片都会被一个计算任务处理,并决定并行计算的粒度。一个task 处理一个分区用户可以在创建RDD时指定RDD的分片个数,如果没有指定,那么就会采用默认值。默认值就是程序所分配到的CPU Core的数目。如下就是代码实现,当然rdd也可以采用partitionBy(partitioner)重新分区,只是groupBy 作用在kv ...原创 2019-12-05 14:28:29 · 120 阅读 · 0 评论 -
spark wordCount用java代码实现
前言:java 代码编写spark 的wordCount 使用的方法和scala 基本相同除了生成(单词,1)时候使用的是mapToPair() 方法,代替了map()因为在java中生成kv类型RDD 需要使用xxToPair 方法public class SparkWc { public static void main(String[] args) { //...原创 2019-12-09 16:23:17 · 654 阅读 · 0 评论 -
spark 的kv 类型的Rdd 在java代码中显示
kv 类型RDD 在java 显示:JavaPairRDD<String, Integer>而不是JavaRDD<Tuple2<String, Integer>>这个很重要不要搞错原创 2019-12-09 16:40:50 · 223 阅读 · 0 评论 -
sparkstreaming的reduceByKey()算子 和updateStateByKey() 的区别
reduceByKey(): 只计算当前Duration时间内的聚合updateStateByKey() : 计算从streamingContext 启动开始到当前批次的聚合,当前批次之前的数据保存在内存+checkPoint 设置目录中,不设置checkPoint 会报错如果Duration > 10s , 每隔Duration时间做一次checkPoint如果Duration &...原创 2019-12-11 10:48:16 · 808 阅读 · 0 评论 -
sparkStreaming foreachRDD算子
foreachRDD是Dstream的outPutOperator算子foreachRDD定义:def foreachRDD(foreachFunc : org.apache.spark.api.java.function.VoidFunction[R]) : scala.UnitforeachRDD作用:对Dstream中RDD操作动态改变广播变量值foreachRDD注意事项:f...原创 2019-12-11 16:09:07 · 431 阅读 · 0 评论 -
sparkSql 创建dataFrame几种方式
前提spark2.X 中sparksql 的入口改为spark,不再在是sparkContextsparkcore 底层操作的的是RDD,sparksql 操作的是DataFrameDataFrame 类似mysql的二维表,有schema, 也有数据创建dataFrame的几种方式读json 文件:注意不能读取嵌套类型Json文件 val spark = SparkSessio...原创 2019-12-07 22:23:53 · 319 阅读 · 0 评论 -
sparkStreaming的wordCount
1.需求:使用netcat工具向9999端口不断的发送数据,通过SparkStreaming读取端口数据并统计不同单词出现的次数2.添加依赖<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming_2.11</artifactId...原创 2019-12-17 18:02:33 · 91 阅读 · 0 评论 -
SparkSQL用户自定义UDF函数
scala> val df = spark.read.json("/root/a.json")df: org.apache.spark.sql.DataFrame = [age: bigint, name: string]scala> df.show()±—±------+| age| name|±—±------+|null|Michael|| 30| And...原创 2019-12-18 09:24:13 · 200 阅读 · 0 评论 -
SparkSQL用户自定义聚合函数UDAF(新)
说明:UDAF使用的六个步骤,难点在第三步骤,代码中都有注释1.声明用户自定义聚合函数2.继承UserDefinedAggregateFunction3.实现方法4.创建聚合函数对象5.注册函数6.使用函数本案例实现平均年龄的计算–avg的功能自定义UDAF函数//声明函数//ageAve(age):函数的入参:ageclass MyAgeAvg extends UserDe...原创 2019-12-18 09:56:31 · 188 阅读 · 0 评论 -
spark俩个重要算子 transform foreachRDD
transform foreachRDD 可以做到动态改变广播变量目的原创 2019-12-18 15:41:16 · 303 阅读 · 0 评论 -
spark 累加器
使用累加器三步骤定义累加器注册累加器使用累加器定义累加器:需要继承AccumulatorV2抽象类,实现父类的六个方法该案例累加器内部维护的是mutable.HashMapclass SesionAccumulator extends AccumulatorV2[String,mutable.HashMap[String,Int]]{ //必须可变的hashMap var...原创 2019-12-20 15:11:52 · 312 阅读 · 0 评论 -
spark中使用数据库的注意事项
注意一:数据库链接要在excutor端创建, 否则会出现connection not serializeble注意二:spark sql 写入数据库前要做action 操作,写入才会成功总结数据写到诸如MySQL的外部数据库中。 注意:(1)连接不能写在driver层面,connection无法序列化;(2)如果写在foreach则每个RDD都创建,得不偿失;(3)增加foreac...原创 2019-12-30 17:13:30 · 223 阅读 · 0 评论 -
运行sparkStreaming出错Exception in thread "main" org.apache.spark.SparkException: Only one SparkContent
运行sparkStreaming 程序出错Exception in thread “main” org.apache.spark.SparkException: Only one SparkConte19/12/18 11:21:38 INFO SharedState: Warehouse path is 'file:/C:/Users/baron/Desktop/sparktest/spark...原创 2019-12-18 11:26:09 · 1095 阅读 · 0 评论 -
spark sql页面单跳转换率统计
**1要求 :计算给定的页面访问流的页面单跳转化率**伪代码流程:我们需要去分析每一次的页面访问流程,也就是用户从进入网站到离开网站这个流程中所访问的页面顺序,也就是一个session中的页面访问顺序。假如一个session的页面访问顺序为1,2,3,4,5,那么他访问的页面切片就是1_2,2_3,3_4,4_5,如果得到所有session的切面切片m_n,就可以计算每一...原创 2020-01-06 18:50:09 · 655 阅读 · 0 评论