![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
实战
chixushuchu
这个作者很懒,什么都没留下…
展开
-
Spark2.0 一些新特性
① Spark Core& Spark SQL API1、dataframe 与dataset统一,dataframe诞生于1.6,消亡于2.0…dataframe只是dataset[Row]的类型别名2、SparkSession :统一SQLContext 和HiveContext,新上下文入口为SparkSession新的流式调用configuration api3、accu...原创 2018-12-25 16:54:34 · 203 阅读 · 0 评论 -
Spark 2.0 DataSet 各种操作 action操作 基本操作 typed untyped
1、Action操作employee数据表{"name": "Leo", "age": 25, "de原创 2018-12-28 15:26:44 · 2490 阅读 · 0 评论 -
spark电商session分析之随机抽取
一次执行用户访问session分析模块,要抽取出100个sessionsession随机抽取:按每天的每个小时的session数量,占当天session总数的比例,乘以每天要抽取的session数量,计算出每个小时要抽取的session数量;然后呢,在每天每小时的session中,随机抽取出之前计算出来的数量的session。举例:10000个session,100个session;0点1点之...原创 2018-12-11 18:47:29 · 1119 阅读 · 0 评论 -
Spark 大数据 JVM调优 调节executor堆外内存与连接等待时长
executor堆外内存原创 2018-12-17 17:34:54 · 491 阅读 · 0 评论 -
Spark 内存管理 以及oom处理
Spark内存管理Spark执行应用程序时,Spark集群会启动Driver和Executor两种JVM进程,Driver负责创建SparkContext上下文,提交任务,task的分发等。Executor负责task的计算任务,并将结果返回给Driver。同时需要为需要持久化的RDD提供储存。Driver端的内存管理比较简单,这里所说的Spark内存管理针对Executor端的内存管理。Sp...原创 2018-12-17 17:25:41 · 372 阅读 · 0 评论 -
Spark 大数据 JVM调优 以及降低cache内存占比
辅导费原创 2018-12-17 16:38:27 · 1058 阅读 · 0 评论 -
Spark性能调优 调节数据本地化等待时长
原创 2018-12-17 10:40:08 · 273 阅读 · 0 评论 -
Spark性能调优 使用fastutil 优化数据格式
fastutil简介fastutil 是扩展了java 标准集合框架(Map、List、Set;HashMap、ArrayList、HashSet)的类库,提供了特殊类型的map、set、list和queue;fastutil能提供共更小的内存占用,更快的获取速度;我们使用fastutil提供的集合类,来替代自己平时使用的JDK原生的Map、List、Set好处在于,fastutil集合类,可...原创 2018-12-17 10:31:21 · 208 阅读 · 0 评论 -
Spark 性能调优 序列化之使用kryo trouble shooting常见序列化错误
Kryo与Spark内部默认序列化机制优缺点默认优点默认情况下,Spark内部使用java的序列化机制,ObjectOutputStream/ObjectInputStream对象输入输出流机制,来进行序列化,这种默认序列化机制的好处在于,处理起来比较方便,不需要我们自己手动做什么事情,只是,在算子里使用到的变量,必须是实现Serializable接口的,可序列化即可。默认缺点默认序列机...原创 2018-12-17 09:59:50 · 573 阅读 · 0 评论 -
Spark Streaming & Structured Streaming分析
Spark Streaming是老牌的Spark流式计算引擎,底层基于RDD计算引擎。除了类似RDD风格的计算API以外,也提供了更多的流式计算语义,比如window、updateStateByKey、transform等。同时对于流式计算中重要的数据一致性、容错性等也有一定的支持。Spark 2.x中也推出了全新的基于Dataframe/Dataset的Structured Streaming...原创 2018-12-27 10:38:48 · 463 阅读 · 0 评论 -
Spark-sql 自定义UDF函数 UDAF 以及开窗函数 JAVA和SCALA版本
待续原创 2018-12-21 09:28:07 · 578 阅读 · 1 评论 -
基于Spark2.2的 交互式用户活跃度分析 指定范围 访问次数 top10
spark2.0主要就是DataSet的成熟api,提供比rdd原生api更高level的抽象api,更加方便我们的数据开发工作。此外,就是更加完善了对sql语法支持,更加便利使用sql进行大数据分析。为什么要用Spark RDD API来开发这些复杂的业务逻辑,为什么不直接用SQL?当然,用SQL是可以的,但是要区分一下,SQL主要适用于刚才说的大量离线批处理的ETL作业和统计分析逻辑。统计分...原创 2018-12-26 18:22:00 · 1164 阅读 · 2 评论 -
Spark 性能调优 广播大变量
d原创 2018-12-16 00:33:53 · 622 阅读 · 2 评论 -
Spark 性能调优 RDD架构以及RDD持久化
的原创 2018-12-15 23:56:47 · 155 阅读 · 0 评论 -
Spark 性能调优 shuffle调优第一篇
一些会触发shuffle的算子groupByKey把分布在集群各个节点上的数据中的同一个key,对应的values,都给集中到一块儿,集中到集群中同一个节点上,更严密一点说,就是集中到一个节点的一个executor的一个task中。然后呢,集中一个key对应的values之后,才能交给我们来进行处理reduceByKey函数对values集合进行reduce操作,最后变成一个val...原创 2018-12-18 11:36:32 · 145 阅读 · 0 评论 -
Spark shuffle调优之 合并map端输出 基于HashShuffle
SparkShuffle概念– Shuffle Write:上一个stage的每个map task就必须保证将自己处理的当前分区的数据相同的key写入一个分区文件中,可能会写入多个不同的分区文件中。– Shuffle Read:reduce task就会从上一个stage的所有task所在的机器上寻找属于己的那些分区文件,这样就可以保证每一个key所对应的value都会汇聚到同一个节点上去处理...原创 2018-12-18 15:09:17 · 390 阅读 · 0 评论 -
Spark shuffle调优 调节map端内存缓冲
spark.shuffle.file.buffer,默认32kspark.shuffle.memoryFraction,0.2原创 2018-12-18 16:47:05 · 917 阅读 · 0 评论 -
SparkStreaming 对接kafka实时计算程序HA高可用
HA高可用性:High Availability,如果有些数据丢失,或者节点挂掉;那么不能让你的实时计算程序挂了;必须做一些数据上的冗余副本,保证你的实时计算程序可以7 * 24小时的运转1、updateStateByKey、window等有状态的操作,自动进行checkpoint,必须设置checkpoint目录checkpoint目录:容错的文件系统的目录,比如说,常用的是HDFSSpa...原创 2018-12-25 16:04:07 · 745 阅读 · 0 评论 -
Spark 内核设计的艺术架构与实现 第二章Spark模型设计
1 Spark编程模型用户使用SparkContext 提供的API编写Driver段程序(常用的textFile sequenceFile runjob 等)Spark原创 2018-12-30 17:39:04 · 428 阅读 · 0 评论 -
广告流量实时统计 scala版本 过滤黑名单 统计各省市实时广告用户点击量
1.项目分析项目地址:https://gitee.com/jenrey/adv技术分析: SparkStreaming或者Strom数据: 广告流量点击数据需求分析: 1)【 实时】统计【每天】【各省】【热门】广告(分组求广告点击次数多的TopN) 2)实时统计某个...转载 2018-12-24 20:08:10 · 1309 阅读 · 0 评论 -
SparkStreamin 广告流量实时点击 生成黑名单 过滤黑名单 各省市各广告实时统计 每天各省top3广告
标题二、计算各省市各广告各流量实时统计原创 2018-12-24 18:20:44 · 874 阅读 · 0 评论 -
Spark Streaming foreachRDD以及foreachPartition 操作数据库连接写入数据
Spark Streaming foreachRDD的正确使用误区1. 在driver端创建对象在driver上创建连接对象(比如网络连接或数据库连接)如果在driver上创建连接对象,然后在RDD的算子函数内使用连接对象,那么就意味着需要将连接对象序列化后从driver传递到worker上。而连接对象(比如Connection对象)通常来说是不支持序列化的,此时通常会报序列化的异常(se...原创 2018-12-24 14:56:33 · 2005 阅读 · 0 评论 -
Spark2.0 StructuredStreaming
流式计算的现状大多数的流式计算引擎(比如storm、spark streaming等)都仅仅关注流数据的计算方面:比如使用一个map函数对一个流中每条数据都进行转换,或者是用reduce函数对一批数据进行聚合。但是,实际上在大部分的流式计算应用中,远远不只是需要一个流式计算引擎那么简单。相反的,流式计算仅仅在流式应用中占据一个部分而已。因此现在出现了一个新的名词,叫做持续计算/应用,contin...原创 2018-12-29 14:33:29 · 224 阅读 · 0 评论 -
Spark 性能调优之 foreachPartition 优化写数据库性能
foreach 操作写数据库缺点首先,对于每条数据,都要单独去调用一次function,task为每个数据,都要去执行一次function函数。如果100万条数据,(一个partition),调用100万次。性能比较差。另外一个非常非常重要的一点如果每个数据,你都去创建一个数据库连接的话,那么你就得创建100万次数据库连接。但是要注意的是,数据库连接的创建和销毁,都是非常非常消耗...原创 2018-12-18 20:34:39 · 5413 阅读 · 1 评论 -
Spark 性能调优 filter算子使用后 使用coalesce减少分区数量
filter示意图默认情况下,经过了这种filter之后,RDD中的每个partition的数据量,可能都不太一样了。原本每个partition的数据量可能是差不多的。每个partition的数据量变少了,但是在后面进行处理的时候,还是要跟partition数量一样数量的task,来进行处理,有点浪费task 计算资源每个partition的数据量不一样,会导致后面的每个task处理每个...原创 2018-12-18 19:53:44 · 1233 阅读 · 0 评论 -
Spark 性能调优 算子调优 mappartitions提升效率
Spark最基本的原则就是每个task处理一个RDD的partitionmap操作mapPartitions操作由map转为mapPartitions/** * 获取sessionid2到访问行为数据的映射的RDD * @param actionRDD * @return */ public static JavaPairRDD<String, Row> ...原创 2018-12-18 18:54:05 · 1852 阅读 · 0 评论 -
Spark 2.0常用聚合函数 以及其他常用函数
avg sum max min count countDistinct原创 2018-12-29 12:54:23 · 2473 阅读 · 0 评论 -
Spark shuffle调优 HashShuffleManager 与SortShuffleManager
Spark中有两种Shuffle类型,HashShuffle和SortShuffle,Spark1.2之前是HashShuffle默认的分区器是HashPartitioner,在2.0以后 弃用Spark1.2引入SortShuffle默认的分区器是RangePartitioner。https://github.com/JerryLead/SparkInternals/blob/master...原创 2018-12-18 18:39:21 · 2083 阅读 · 3 评论 -
SparkStreaming 实时计算 广告点击流量实时统计 需求 技术方案数据库设计
几大模块内容用户访问session分析模块:会话(session),用户的基础访问行为页面单跳转化率模块:页面(page),用户的页面访问和页面跳转行为各区域热门商品统计模块:商品(product),用户的商品点击行为广告点击流量实时统计模块:广告(ad,advertisement),用户的广告点击行为广告点击流量实时统计模块每次点击一个广告以后,通常来说,网站 / app中都会有...原创 2018-12-24 09:42:19 · 2792 阅读 · 5 评论 -
搜狐实验室 新闻点击量项目
新闻项目大数据实时可视化分析项目项目托管到码云第一章技术点Hadoop2.x、Zookeeper、Flume、Hive、Hbase、Kafka、Spark2.x、SparkStreaming、MySQL、Hue、J2EE、websoket、Echarts需求分析业务需求:1)捕获用户浏览日志信息TB2)实时分析前20名流量最高的新闻话题3)实时统计当前线上...原创 2018-12-29 10:29:37 · 737 阅读 · 5 评论 -
session聚合统计
自定义Accumulator实现 维护数据中间状态我们自己自定义一个Accumulator,实现较为复杂的计算逻辑,一个Accumulator维护了所有范围区间的数量的统计逻辑低耦合,如果说,session数量计算逻辑要改变,那么不用变更session遍历的相关的代码;只要维护一个Accumulator里面的代码即可;如果计算逻辑后期变更,或者加了几个范围,那么也很方便,不用多加好几个Acc...原创 2018-12-10 13:57:30 · 199 阅读 · 0 评论 -
spark 性能调优 项目中调节并行度
原创 2018-12-15 18:55:50 · 608 阅读 · 0 评论 -
Spark电商平台数据分析之 基础数据结构分析 以及业务流程5
刚发的原创 2018-12-06 19:43:09 · 754 阅读 · 0 评论 -
Spark troubleshooting shuffle寻址 以及 解决JVM GC导致拉取文件失败
shuffle寻址图shuffle文件寻址基础知识MapOutputTrackerspark架构中的一个主从模块Driver端主对象MapOutputTrackerMasterExecutor端从对象MapOutputTrackerWorkerBlockManager也是spark架构中的一个模块,也是主从架构Driver端主对象 BlockManagerMasterExec...原创 2018-12-19 16:44:29 · 240 阅读 · 0 评论 -
Spark性能调优 troubleshooting shuffle调优 reduce端缓冲大小以避免OOM
reduce导致 内存溢出原因reduce端拉取map端task,是map端写一点数据,reduce端taskk就会拉取一小部分数据,立即进行后面的聚合、算子函数应用每次拉取数据量大小是有buffer决定的,而默认大小是48M,有时候,map端的数据量很大的情况下,reduce端所有task拉取数据全部达到缓冲最大极限值,然后加上reduce端执行聚合函数代码会创建大量对象。这时候可能会出现内...原创 2018-12-19 16:16:12 · 182 阅读 · 0 评论 -
Spark 性能调优 Rdd 之 reduceByKey 本地聚合(也就是map端聚合算子)
简单代码val lines = sc.textFile(&amp;quot;hdfs://&amp;quot;)val words = lines.flatMap(_.split(&amp;quot; &amp;quot;))val pairs = words.map((_, 1))val counts = pairs.reduceByKey(_ + _)counts.collect()示意图原创 2018-12-19 15:25:41 · 2044 阅读 · 0 评论 -
Spark电商数据分析平台 用户session分析之模块分析4
v原创 2018-12-06 17:28:17 · 507 阅读 · 0 评论 -
Spark 性能调优之 repartition解决spark sql低并行度问题
首先,还是抛出官网文档吧参考2.0版本http://spark.apache.org/docs/2.0.2/tuning.html#level-of-parallelism原创 2018-12-19 14:39:10 · 10976 阅读 · 4 评论 -
项目继续记录 目前到哪一步了
已经做的工作session聚合分析第一步从库里面的task任务 查出对应的action操作信息 比如指定时间段内然后映射为 session,rows信息第二步聚合通过获取rdd &amp;lt;sessionid,聚合信息session2AggrInfoRDD(session,searchKeyWords,clickCategoryIds,(这几个通过session聚合可以拿到)age,p...原创 2018-12-13 11:21:49 · 93 阅读 · 0 评论 -
Spark session聚合分析
目录 Session聚合分析解析 步骤构建spark上下文Session聚合分析解析 步骤构建spark上下文 查取需要执行任务//构建spark上下文 SparkConf conf=new SparkConf().setAppName(MyConstants.SPARK_APP_NAME_SESSION).setMaster("local...原创 2018-12-09 00:39:12 · 310 阅读 · 0 评论