
Spark
码动乾坤
求知若饥,虚心若愚
展开
-
Spark的join聚合操作
使用场景:join必须作用于 RDD[K,V] 类型的数据,相当于SQL中的内关联join,只返回两个RDD根据K可以关联上的结果在类型为(K,V)和(K,W)类型的数据集上调用时,返回一个相同key对应的所有元素对在一起的(K, (V, W))数据集,只返回根据key可以关联上的数据,关联不上的, 直接舍去了示例:[K,V] join[K,W] 返回值类型[K,(V,W)]...原创 2020-01-07 18:51:31 · 413 阅读 · 0 评论 -
Spark中两个可以改变分区的算子:repartition coalesce
两个可以改变分区的算子举例: repartition(10) = coalesce(10,true)参数: shuffle: 数据是否重新分发。 简单理解: 一个分区的数据是否会被分配到多个分区中。repartition: 重新分区 ,数据必须要进行shuffle。coalesce: 常用于 减少分区 ,合并分区。 数据不会进行shuffle。如何使用:...原创 2020-01-07 16:36:06 · 820 阅读 · 0 评论 -
Spark实现列转行------求平均温度案例
import org.apache.spark.{SparkConf, SparkContext}object MySparkUtil { //获取本地的SparkContext def apply(appName: String): SparkContext = { val conf = new SparkConf() .setAppName(appName)...原创 2020-01-07 16:24:14 · 2050 阅读 · 0 评论 -
Spark之WordCount 在本地模式下运行
在本地模式下运行,必须设置 Master AppNamelocal模式下,不会有监控界面出现:object WordCountLocal { def main(args: Array[String]): Unit = { if (args.length != 2) { println( """ |cn.uhome.spark...原创 2020-01-07 15:07:29 · 494 阅读 · 1 评论 -
Spark之WordCount,提交到集群中运行
在idea中写好程序,提交到集群中运行object WordCount { def main(args: Array[String]): Unit = { if (args.length != 2) { println( """ |cn.uhome.spark01.WordCount <input> <output...原创 2020-01-07 15:05:16 · 206 阅读 · 0 评论 -
Spark 从 Kafka 读数并发问题
经常使用 Apache Spark 从 Kafka 读数的同学肯定会遇到这样的问题:某些 Spark 分区已经处理完数据了,另一部分分区还在处理数据,从而导致这个批次的作业总消耗时间变长;甚至导致 Spark 作业无法及时消费 Kafka 中的数据。为了简便起见,本文讨论的 Spark Direct 方式读取 Kafka 中的数据,这种情况下 Spark RDD 中分区和 Kafka...原创 2018-12-24 01:05:03 · 441 阅读 · 0 评论 -
Spark性能调优:调节并行度
并行度:其实就是Spark作业中,各个stage的task数量,也就代表了Spark作业的在各个阶段(stage)的并行度。如果不调节并行度,导致并行度过低,会怎么样?假设,现在已经在spark-submit脚本里面,给我们的spark作业分配了足够多的资源,比如50个executor,每个executor有10G内存,每个executor有3个cpu core。基本已经达到了集群或者...原创 2018-12-09 21:47:09 · 217 阅读 · 0 评论 -
Spark性能调优:如何分配更多资源
性能调优的王道,就是增加和分配更多的资源,性能和速度上的提升,是显而易见的;基本上,在一定范围之内,增加资源与性能的提升,是成正比的;写完了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,就是要来调节最优的资源配置;在这个基础之上,如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,公司资源有限;那么才是考虑去做其他的调优工作。...原创 2018-12-09 20:53:15 · 418 阅读 · 0 评论 -
RDD分区概述
1.RDD是一个基本的抽象,操作RDD就像操作一个本地集合一样,降低了编程的复杂度RDD里面并不存储真正要计算的数据,你对RDD进行操作,他会在Driver端转换成task,下发到Executor计算分散在多台集群上的数据RDD的算子分为两类,一类是Transformation(lazy),一类是Action(触发任务执行)RDD不存真正要计算的数据,而是记录了RDD的转换关系(调用了什么...原创 2018-12-07 00:56:55 · 2154 阅读 · 0 评论 -
全局topN问题
import org.apache.spark.{SparkConf, SparkContext}object FavTeacher { def main(args: Array[String]): Unit = { val conf = new SparkConf() .setAppName("FavTeacher") .setMaster("local...原创 2018-12-14 00:25:05 · 335 阅读 · 0 评论 -
Yarn和Spark的StandAlone调度模式的对比
Yarn和Spark的StandAlone调度模式的对比:MapReduce中的maptask和reducetask都是在YarnChild中进行计算的,YarnChild是一个进程,使用jps命令可以看到1.yarn中的ResourceManager和Spark中的master作用:都是管理子节点,资源调度,接收任务请求2.yarn中的nodemanager和spark中的worker:管...原创 2018-12-02 00:25:14 · 2191 阅读 · 0 评论 -
Spark任务执行过程简介
--executor-memory 每一个executor使用的内存大小--total-executor-cores 整个application使用的核数1.提交一个spark程序到spark集群,会产生哪些进程? SparkSubmit(也叫做Driver),主要作用是提交任务,也可以调度任务 Executor 用于执行需要计算的任务 2.在提交spa...原创 2018-12-01 01:48:41 · 843 阅读 · 0 评论 -
Spark概述
spark是什么?-------------------------------- Spark是一种通用的大数据计算框架,正如传统大数据技术Hadoop的MapReduce、Hive引擎,以及Storm流式实时计算引擎等。 Spark包含了大数据领域常见的各种计算框架:比如Spark Core用于离线计算(可以替换Hadoop中的MapReduce),Spark SQL用于...转载 2018-11-27 15:13:52 · 209 阅读 · 0 评论 -
Spark入门
spark是 什么? spark是一个快速且通用的集群计算平台 spark特点: spark是快速的 spark扩充了MapReduce计算模型 spark是基于内存计算的 当我们处理大批量的数据的时候,难免会产生中间数...转载 2018-11-27 15:16:16 · 633 阅读 · 0 评论 -
Spark入门之JavaLambdaWordCount
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import scala.Tuple2;imp...原创 2018-12-04 15:07:47 · 270 阅读 · 0 评论 -
Spark入门之Java实现WordCount
import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaPairRDD;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.a...原创 2018-12-04 13:45:38 · 508 阅读 · 0 评论