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

从 paxos 到 zookeeper(一):分布式架构之从集中式到分布式

1.1 序言 随着计算机系统规模变得越来越大,将所有的业务单元集中部署在一个或者若干个大型机上的体系结构,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。同时,随着微型计算机的出现,越来越多的廉价的PC机成为了各大企业IT架构的首选,分布式的处...

2018-10-23 07:44:38

阅读数:7

评论数:0

kafka 从入门到放弃(一)kafka的设计和结构

一.基本概念 1.Producer:消费和数据的生产者,向kafka 的topic 发布消息的进程/代码/服务 2.Consumer:消息和数据的消费者,订阅数据(Topic)并且处理其发布的消息进程的进程/代码/服务 3.Comsumer Group : 逻辑概念,对于同一个topic,会广...

2018-10-08 22:45:18

阅读数:35

评论数:0

spark 大型项目实战(五十八):数据倾斜解决方案之sample采样倾斜key进行两次join

当采用随机数和扩容表进行join解决数据倾斜的时候,就代表着,你的之前的数据倾斜的解决方案,都没法使用。 这个方案是没办法彻底解决数据倾斜的,更多的,是一种对数据倾斜的缓解。 原理,其实在上一讲,已经带出来了。 步骤: 1、选择一个RDD,要用flatMap,进行扩容,将每条数据,映射为多...

2018-08-04 17:13:47

阅读数:252

评论数:0

spark 大型项目实战(五十七):数据倾斜解决方案之sample采样倾斜key进行两次join

这个方案的实现思路,跟大家解析一下:其实关键之处在于,将发生数据倾斜的key,单独拉出来,放到一个RDD中去;就用这个原本会倾斜的key RDD跟其他RDD,单独去join一下,这个时候,key对应的数据,可能就会分散到多个task中去进行join操作。 就不至于说是,这个key跟之前其他的...

2018-08-04 17:09:55

阅读数:210

评论数:0

spark 大型项目实战(五十六):数数据倾斜解决方案之将reduce join转换为map join

普通的join,那么肯定是要走shuffle;那么,所以既然是走shuffle,那么普通的join,就肯定是走的是reduce join。 先将所有相同的key,对应的values,汇聚到一个task中,然后再进行join。 将reduce join转换为map join。 reduce...

2018-08-04 17:01:42

阅读数:279

评论数:0

spark 大型项目实战(五十五):数据倾斜解决方案之使用随机key实现双重聚合

使用随机key实现双重聚合 1、原理 2、使用场景 (1)groupByKey (2)reduceByKey 比较适合使用这种方式;join,咱们通常不会这样来做,后面会讲三种,针对不同的join造成的数据倾斜的问题的解决方案。 第一轮聚合的时候,对key进行打散,将原先一样的key,...

2018-08-04 16:54:15

阅读数:52

评论数:0

spark 大型项目实战(五十四):数据倾斜解决方案之提高shuffle操作reduce并行度

spark.default.parallelism,100 提升shuffle reduce端并行度,怎么来操作? 很简单,主要给我们所有的shuffle算子,比如groupByKey、countByKey、reduceByKey。在调用的时候,传入进去一个参数。一个数字。那个数字,就代表...

2018-08-04 16:45:17

阅读数:256

评论数:0

spark 大型项目实战(五十三):数据倾斜解决方案之聚合源数据

数据倾斜的解决,跟之前讲解的性能调优,有一点异曲同工之妙。 性能调优,跟大家讲过一个道理,“重剑无锋”。性能调优,调了半天,最有效,最直接,最简单的方式,就是加资源,加并行度,注意RDD架构(复用同一个RDD,加上cache缓存);shuffle、jvm等,次要的。 数据倾斜,解决方案,第一个...

2018-08-04 16:26:07

阅读数:350

评论数:0

spark 大型项目实战(五十二):数据倾斜解决方案之原理以及现象分析

数据倾斜 在任何大数据类的项目中,都是最棘手的性能问题,最能体现人的技术能力,最能体现RD(Research Developer,研发工程师)的技术水平。 数据倾斜 = 性能杀手 如果没有丰富的经验,或者没有受过专业的技术培训,是很难解决数据倾斜问题的 在执行shuffle操作的时候,...

2018-08-04 13:18:58

阅读数:83

评论数:0

spark 大型项目实战(五十一):troubleshooting之错误的持久化方式以及checkpoint的使用

错误的持久化使用方式: usersRDD,想要对这个RDD做一个cache,希望能够在后面多次使用这个RDD的时候,不用反复重新计算RDD;可以直接使用通过各个节点上的executor的BlockManager管理的内存 / 磁盘上的数据,避免重新反复计算RDD。 usersRDD.cache...

2018-08-04 13:02:39

阅读数:39

评论数:0

spark 大型项目实战(五十):troubleshooting之解决yarn-cluster模式的JVM内存溢出无法执行问题

总结一下yarn-client和yarn-cluster模式的不同之处: yarn-client模式,driver运行在本地机器上的;yarn-cluster模式,driver是运行在yarn集群上某个nodemanager节点上面的。 yarn-client会导致本地机器负责spark作...

2018-08-04 11:19:43

阅读数:40

评论数:0

spark 大型项目实战(四十九):troubleshooting之解决yarn-client模式导致的网卡流量激增问题

yarn-client模式下,会产生什么样的问题呢? 由于咱们的driver是启动在本地机器的,而且driver是全权负责所有的任务的调度的,也就是说要跟yarn集群上运行的多个executor进行频繁的通信(中间有task的启动消息、task的执行统计消息、task的运行状态、shuffle的...

2018-07-03 00:17:21

阅读数:46

评论数:0

spark 大型项目实战(四十八):troubleshooting之解决算子函数返回NULL导致的问题

在算子函数中,返回null // return actionRDD.mapToPair(new PairFunction<Row, String, Row>() { // // private static final ...

2018-07-03 00:13:11

阅读数:46

评论数:0

spark 大型项目实战(四十七):troubleshooting之解决各种序列化导致的报错

你会看到什么样的序列化导致的报错? 用client模式去提交spark作业,观察本地打印出来的log。如果出现了类似于Serializable、Serialize等等字眼,报错的log,那么恭喜大家,就碰到了序列化问题导致的报错。 虽然是报错,但是序列化报错,应该是属于比较简单的了,很好处理。...

2018-07-03 00:10:49

阅读数:55

评论数:0

spark 大型项目实战(四十六):troubleshooting之解决YARN队列资源不足导致的application直接失败

如果说,你是基于yarn来提交spark。比如yarn-cluster或者yarn-client。你可以指定提交到某个hadoop队列上的。每个队列都是可以有自己的资源的。 跟大家说一个生产环境中的,给spark用的yarn资源队列的情况:500G内存,200个cpu core。 比如说,某个...

2018-07-03 00:03:51

阅读数:54

评论数:0

spark 大型项目实战(四十五):troubleshooting之解决JVM GC导致的shuffle文件拉取失败

1. 比如,executor的JVM进程,可能内存不是很够用了。那么此时可能就会执行GC。minor GC or full GC。总之一旦发生了JVM之后,就会导致executor内,所有的工作线程全部停止。 2. 下一个stage的executor,可能是还没有停止掉的,task想要去上一...

2018-07-02 23:57:32

阅读数:59

评论数:0

spark 大型项目实战(四十四):troubleshooting之控制shuffle reduce端缓冲大小以避免OOM

1. map端的task是不断的输出数据的,数据量可能是很大的。 但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,立即进行后面的聚合、算子函数的应用。 每次re...

2018-07-02 23:49:40

阅读数:57

评论数:0

spark 大型项目实战(四十三):算子调优之reduceByKey本地聚合介绍

下面给出一个图解: map端的task是不断的输出数据的,数据量可能是很大的。 但是,其实reduce端的task,并不是等到map端task将属于自己的那份数据全部写入磁盘文件之后,再去拉取的。map端写一点数据,reduce端task就会拉取一小部分数据,立即进行后面的聚合、算子函数的...

2018-06-24 15:24:12

阅读数:174

评论数:0

spark 大型项目实战(四十二):算子调优之reduceByKey本地聚合介绍

下面看一段简单的world count val lines = sc.textFile("hdfs://") val words = lines.flatMap(_.split(" "))...

2018-06-24 09:20:04

阅读数:146

评论数:3

spark 大型项目实战(四十一):算子调优之使用repartition解决Spark SQL低并行度的性能问题

并行度:之前说过,并行度是自己可以调节,或者说是设置的。 1、spark.default.parallelism 2、textFile(),传入第二个参数,指定partition数量(比较少用) 咱们的项目代码中,没有设置并行度,实际上,在生产环境中,是最好自己设置一下的。官网有推荐的设置方...

2018-06-24 09:14:17

阅读数:285

评论数:0

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