排序:
默认
按更新时间
按访问量

四、Spark性能优化:shuffle调优

shuffle调优 调优概述       大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素...

2018-09-07 15:31:44

阅读数:27

评论数:0

三、Spark性能优化:数据倾斜调优

前言    继《Spark性能优化:开发调优篇》和《Spark性能优化:资源调优篇》讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。 1.数据倾斜调优 调优概述 ...

2018-09-07 15:31:05

阅读数:19

评论数:0

二、Spark性能优化:资源调优篇

   在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用...

2018-09-07 15:30:19

阅读数:26

评论数:0

一、Spark性能优化:开发调优篇

1、前言       在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用S...

2018-09-07 15:29:18

阅读数:23

评论数:0

记录两次sparkjob优化,性能提升几十倍不止

目前在做两个项目,一个搜索平台化一个排序服务化,在项目开发中两者都用到了spark开发数据处理,遇到问题多多,但解决后性能提升几十倍不止,下面记录下两次优化。 一、在特征处理中,需要读取hive的数据进行业务逻辑处理写入到kv系统中,为了减少shuffle,每次处理直接用mapPartitons...

2018-09-04 18:04:38

阅读数:43

评论数:0

Kafak(04) Kafka生产者事务和幂等

Kafak(04) Kafka生产者事务和幂等 来源:http://www.heartthinkdo.com/?p=2040 目录 [隐藏] 1 生产者幂等性 1.1 引入 1.2 幂等性实现 1.2.1 PID 和 Sequence Number 1.2.2 生成PID的...

2018-07-28 16:32:08

阅读数:168

评论数:0

Java并发之AQS详解(转发一下很经典)

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的Reen...

2018-07-19 10:35:06

阅读数:66

评论数:0

spark参数调优

最近在搞一个sparkjob,耗时真的是醉醉的,最终的reduce过程只占三分之一的时间,其他的占了三分之二的时间,非常不合理,这个重新调整下摘要  1.num-executors  2.executor-memory  3.executor-cores  4.driver-memory  5.s...

2018-05-29 20:56:00

阅读数:288

评论数:0

记一次mr中限流报的异常问题

在将特征处理的项目从mr改造成spark过程中又加入了新的编码方式,本来原始mrjob代码什么都没动,结果线上跑起来就报Exception,这是在项目中使用ratelimit进行处理限速,然后配置了失败率就凉凉了INFO 2018-05-23 20:11:17 syncmapreduce 50 L...

2018-05-24 19:39:35

阅读数:366

评论数:0

Maven依赖中的scope详解

Maven的一个哲学是惯例优于配置(Convention Over Configuration), Maven默认的依赖配置项中,scope的默认值是compile,项目中经常傻傻的分不清,直接默认了。今天梳理一下maven的scope。scope的分类compile默认就是compile,什么都...

2018-05-24 10:29:23

阅读数:244

评论数:0

在Mac上配置全局的Git忽略文件

同时搞着好几个项目,在Xcode、IDEA、Eclipse之间频繁的切换,每个项目的忽略文件列表都不一样,每个项目都有一个.gitignore,甚是麻烦,今天网上拔出来一个设置全局忽略的办法jianshengs-MacBook-Pro:~ jianshengfu$ vim .gitignore_g...

2018-05-23 10:21:39

阅读数:603

评论数:0

JAVA深入研究——Method的Invoke方法

  在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到Method,这时去调用父类的对象也会报错。虽然这是很符合多态的现象,也符合java的动态绑定规...

2018-04-28 19:43:30

阅读数:245

评论数:0

spark reparation和coalesce

repartition(numPartitions:Int):RDD[T]和coalesce(numPartitions:Int,shuffle:Boolean=false):RDD[T] 他们两个都是RDD的分区进行重新划分,repartition只是coalesce接口中shuffle为tru...

2018-04-25 19:43:28

阅读数:242

评论数:0

分布式环境下限流方案的实现redis RateLimiter Guava,Token Bucket, Leaky Bucket

业务背景介绍 对于web应用的限流,光看标题,似乎过于抽象,难以理解,那我们还是以具体的某一个应用场景来引入这个话题吧。 在日常生活中,我们肯定收到过不少不少这样的短信,“双11约吗?,千款….”,“您有幸获得唱读卡,赶快戳链接…”。这种类型的短信是属于推广性质的短信。为什么我要说这个呢?听我慢慢...

2018-04-25 11:11:07

阅读数:235

评论数:0

akka系列文章(讲的不错)

akka系列文章目录akka学习教程(十四) akka分布式实战akka学习教程(十三) akka分布式akka学习教程(十二) Spring与Akka的集成akka学习教程(十一) akka持久化akka学习教程(十) agentakka学习教程(九) STM软件事务内存akka学习教程(八) ...

2018-03-21 10:50:15

阅读数:389

评论数:0

双数组trie树的基本构造及简单优化(DAT没那么复杂)

一 基本构造 Trie树是搜索树的一种,来自英文单词"Retrieval"的简写,可以建立有效的数据检索组织结构,是中文匹配分词算法中词典的一种常见实现。它本质上是一个确定的有限状态自动机(DFA),每个节点代表自动机的一个状态。在词典中这此状态包括“词前缀”,“已成词”...

2018-01-30 17:27:32

阅读数:416

评论数:4

JVM 问题排查

CPU使用率高 找出使用率高的进程的pid top 找出使用率高的线程tpidtop -p pid -H 查看使用率高的线程当前在干什么jstack -l pid > stack.log // 将线程的tpid转为16进制,到stack.log中查找 grep tpid stack.lo...

2018-01-01 18:39:33

阅读数:385

评论数:0

git统计操作

统计代码git提交的行数 $ git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1...

2017-12-12 10:11:21

阅读数:281

评论数:0

git 出现 fatal: Pathspec 'assets/' is in submodule 'public/components/clockpicker',解决方法是

[html] view plain copy 简述下出现的情况:       1.之前从github上,clone了一个clockpicker的插件,然后,直接将整个版本库,复制到了项目中       2.发现版本库中,并未记录到该目录!查看 '.gitignor...

2017-10-31 16:42:00

阅读数:490

评论数:0

Java远程调试(Remote Debug)方法

Java远程调试的原理是两个VM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。 首先被debug程序的虚拟机在启动时要开启debug模式,启动debug监听程序。jdwp是Java Debug Wire Protocol的缩写。 在...

2017-10-10 11:45:51

阅读数:723

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭