- 博客(5)
- 资源 (2)
- 收藏
- 关注
原创 Spark累加器(Accumulator)陷阱及解决办法
程序中可能会使用到spark提供的累加器功能,可是如果你不了解它的运行机制,有时候会带来一些负面作用(错误的累加结果)。 下文会介绍产生错误结果的原因,并提供一种解决办法。Accumulator简介Accumulator是spark提供的累加器,顾名思义,该变量只能够增加。 只有driver能获取到Accumulator的值(使用value方法),Task只能对其做增加操作(使用 +=
2016-03-25 14:32:11 18152 1
原创 Spark Unified Memory Manager分析
spark Executor的内存大小设置一直是长期困扰开发人员和分析师的一个大问题。不同应用使用的算法和数据不同,一次内存设置也是难以评估,设置过大会造成资源浪费,其余任务得不到资源而等待。设置过小,计算过程中会带来频繁的GC和磁盘读写,缓存数据比较少,还有可能会带来OOM,也会影响到性能。 针对上述的问题,spark 1.6 带来了新的内存管理机制,Unified Memory Man
2016-03-22 13:07:01 1124 2
原创 Spark kyro Serialization
序列化在分布式系统中扮演着重要的角色,优化Spark程序时,首当其冲的就是对序列化方式的优化。Spark为使用者提供两种序列化方式: Java serialization: 默认的序列化方式。 Kryo serialization: 相较于 Java serialization 的方式,速度更快,空间占用更小,但并不支持所有的序列化格式,同时使用的时候需要注册class。spar
2016-03-11 16:07:22 6290 1
原创 Spark map-side-join 关联优化
将多份数据进行关联是数据处理过程中非常普遍的用法,不过在分布式计算系统中,这个问题往往会变的非常麻烦,因为框架提供的 join 操作一般会将所有数据根据 key 发送到所有的 reduce 分区中去,也就是 shuffle 的过程。造成大量的网络以及磁盘IO消耗,运行效率极其低下,这个过程一般被称为 reduce-side-join。 如果其中有张表较小的话,我们则可以自己实现在 map
2016-03-09 14:01:22 18752 6
原创 使用Azkaban调度Spark任务
Azkaban是一种类似于Oozie的工作流控制引擎,可以用来解决多个Hadoop(或Spark等)离线计算任务之间的依赖关系问题。 也可以用其代替cron来对周期性任务进行调度,并且更为直观,可靠,同时提供了美观的可视化管理界面。 下文将对azkaban对spark离线任务调度进行简要说明。一. 简介该部分内容可参考官方文档:http://azkaban.github.io/
2016-03-08 22:26:08 19537 9
spark_prometheus_metrics.json
2018-09-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人