Spark
文章平均质量分 98
逃出你的肖生克
这个作者很懒,什么都没留下…
展开
-
Spark做数据分析:输入法性能指标分析
本文主要介绍如何使用Spark来对输入法用户使用日志数据进行分析,从数据源加载=》数据分析处理逻辑=》代码打包提交集群运行=》运行结果展示几个方面来进行介绍。数据源本文采用的数据是某输入法的用户使用日志数据,数据样本如下图所示: 这里的字段以“~”分割,分别为用户ID,产品ID,平台,版本,渠道,时间,等数据分析案例代码这里以上面数据作为数据源,在用户ID,产品ID,平台,版本与渠道5个维度的基础原创 2017-06-08 17:32:23 · 637 阅读 · 1 评论 -
Spark源码之reduceByKey与GroupByKey
Spark中针对键值对类型的RDD做各种操作比较常用的两个方法就是ReduceByKey与GroupByKey方法,下面从源码里面看看ReduceByKey与GroupByKey方法的使用以及内部逻辑。官方源码解释:三种形式的reduceByKey总体来说下面三种形式的方法备注大意为: 根据用户传入的函数来对(K,V)中每个K对应的所有values做merge操作(具体的操作类型根据用户定义的函数原创 2017-07-26 09:53:15 · 13795 阅读 · 3 评论 -
Spark读Lzo压缩格式的文件
第一种方式:val rdd = sc.newAPIHadoopFile("path/*.lzo",classOf[com.hadoop.mapreduce.LzoTextInputFormat],classOf[org.apache.hadoop.io.LongWritable],classOf[org.apache.hadoop.io.Text]).map(_._2.toString)第二种方式原创 2017-07-07 14:44:44 · 3477 阅读 · 0 评论 -
Spark性能优化——解决Spark数据倾斜(Data Skew)的N种姿势
转载文章,原文博客地址http://www.jasongj.com/spark/skew摘要本文结合实例详细阐明了Spark数据倾斜的几种场景以及对应的解决方案,包括避免数据源倾斜,调整并行度,使用自定义Partitioner,使用Map侧Join代替Reduce侧Join,给倾斜Key加上随机前缀等。为何要处理数据倾斜(Data Skew)什么是数据倾斜对Spark/Hadoop这样的大数转载 2017-07-04 16:40:04 · 351 阅读 · 0 评论 -
Spark性能调试之小分区合并
Spark性能调试是使用Spark的用户在进行大数据处理的时候必须面对的问题,性能调优的方法有很多,这里首先介绍一种常见的调优问题-小分区合并问题。小分区合并问题介绍在使用Spark进行数据处理的过程中,常常会使用filter方法来对数据进行一些预处理,过滤掉一些不符合条件的数据。在使用该方法对数据进行频繁过滤或者是过滤掉的数据量过大的情况下就会造成大量小分区的生成。在Spark内部会对每一个分区分原创 2017-07-04 13:28:20 · 2363 阅读 · 0 评论 -
Windows下搭建Spark源码阅读与调试环境
了解和使用Spark有一段时间了,但是对Spark的一些原理和内部机制了解的不够深入,故打算研读一下Spark源码。今天首先介绍一下Spark源码阅读与调试环境的搭建。开发工具安装首先是一些必要的工具的安装,这里不一一介绍了,请读者自行提前安装好:(以下工具版本可自行选择,但是要符合Spark版本环境安装要求,可以参考官方文档) - Java1.8 - Scala 2.11.11 - M原创 2017-06-12 17:32:22 · 4875 阅读 · 0 评论 -
Spark奠基者博士论文中文版
由 CSDN CODE翻译社区 组织的长篇论文翻译An Architecture for Fast and General Data Processing on Large Clusters 经过长达3个月的历程终于全部翻译完成。该论文是Spark主要开发者Matei Zaharia的博士论文,全文共6章,超过4万字,是一部Spark方面的基本文献。从10月底开始,通过 社区招募,先后有35名译者,转载 2017-06-12 15:07:50 · 1389 阅读 · 0 评论 -
Spark源码解析之任务提交(spark-submit)篇
今天主要分析一下Spark源码中提交任务脚本的处理逻辑,从spark-submit一步步深入进去看看任务提交的整体流程,首先看一下整体的流程概要图: 接下来按照图中结构出发一步步看源码:spark-submit#!/usr/bin/env bash## Licensed to the Apache Software Foundation (ASF) under one or more# con原创 2017-07-12 09:58:24 · 12258 阅读 · 4 评论 -
Spark源码之persist方法,cache方法以及StorageLevel
今天看Spark源码的时候看到了persist方法与cache方法,这里就说明一下两者的区别,也解决了自己之前的疑惑。cache方法Spark2.11关于cache方法的源码是这样的: /** * Persist this RDD with the default storage level (`MEMORY_ONLY`). * 缓存RDD,缓存级别为仅在内存中 * 这里的cach原创 2017-07-07 16:58:54 · 5514 阅读 · 0 评论 -
Spark源码之checkpoint方法解析
今天在阅读Spark源码的时候看到了checkpoint方法,之前也在处理数据的的时候用到过,但是没有深入理解这个方法,今天结合官方文档以及网上博客重新认识了一下这个方法,这里做个总结。主要从两个方面讲解: 1.官方对这个方法的解释 2.这个方法的使用场景checkpoint官方源码以及解释 /** * Mark this RDD for checkpointing. It will b原创 2017-07-11 13:10:02 · 399 阅读 · 0 评论 -
Spark性能调优-集群资源分配策略
开发完成Spark作业之后,我们在运行Spark作业的时候需要为其配置一些资源参数,比如num-executors,executor-memory等,这些参数基本上都是可以在spark-submit命令中作为参数设置,但是如何设置合适的参数值是需要我们权衡考虑的(集群资源,调优经验,任务大小等)。参数设置的不合适往往会导致集群资源得不到有效的利用,设置的太大可能会导致资源不够而引发异常,太小的话会使原创 2017-08-04 11:05:20 · 3676 阅读 · 0 评论