spark
文章平均质量分 75
大数据玩家
致力于大数据源码研究、底层原理研究!
展开
-
Spark on yarn(HDP) cluster踩坑记
集群环境 ambari:HDP-2.6.5.0 spark-2.1.0-bin-hadoop2.7踩坑一:NoClassDefFoundError: org/glassfish/jersey/server/spi/container或者NoClassDefFoundError:com/sun/jersey/api/client/...原创 2020-03-16 10:36:53 · 443 阅读 · 0 评论 -
Spark on hdp yarn cluster踩坑记
集群环境 ambari:HDP-2.6.5.0 spark-2.1.0-bin-hadoop2.7踩坑一:NoClassDefFoundError: org/glassfish/jersey/server/spi/ontainer或者NoClassDefFoundError:com/sun/jersey/api/client/c...原创 2020-03-04 14:25:07 · 989 阅读 · 0 评论 -
Spark与MapReduce的区别
原创 2019-05-07 09:19:40 · 445 阅读 · 0 评论 -
窄依赖和宽依赖
窄依赖: 指父RDD的每一个分区最多被一个子RDD的分区所用,表现为一个父RDD的分区对应于一个子RDD的分区,和两个父RDD的分区对应于一个子RDD 的分区。图中,map/filter和union属于第一类,对输入进行协同划分(co-partitioned)的join属于第二类。宽依赖: 指子RDD的分区依赖于父RDD的所有分区,这是因为shuffle类操作...转载 2019-03-15 14:16:43 · 178 阅读 · 0 评论 -
Spark源码阅读---Master与Worker启动流程
在最开始,我们一键执行start-all.sh即启动了spark集群,殊不知,最终执行的是Master和Worker的类对象。 Master启动流程首先执行Master的伴生对象,执行main方法,初始化并解析一些参数,然后调用startSystemAndActor方法通过AkkaUtils工具类创建ActorSystem,再创建actor,实例化Master对象。 M...原创 2019-02-26 18:03:12 · 240 阅读 · 0 评论 -
记一次hadoop.tmp.dir配置因重启机器导致无法启动
缘由 线上一直运行的hadopp集群,突然有一天服务器断电重启,集群正常启动,但是spark on yarn上的任务无法提交,报错一提交任务AM就被kill掉。解决方案步骤一 在$HADOOP_HOME/etc/hadoop中的core-site.xml有个 hadoop.tmp.dir 配置的是Hadoop临时目录,比如HDFS的NameNode数据默认都存...原创 2019-02-02 11:44:56 · 801 阅读 · 0 评论 -
YARN资源管理器(Resource Manager、Node Manager、Application Master 、Container)
HADOOP 1.0存在的问题HDFS1.0存在的问题:Namenode单点故障:集群的文件都是以“块(block)”的形式存储,并且为了容错,每个block有多个副本。namenode需要记录整个集群所有block及其副本的元数据信息(fsimage:文件目录结构,block和文件的映射关系等)和操作日志(edits),因此,在hadoop1.0框架中,namenode设计为单个节点,通...原创 2019-01-15 23:41:42 · 9594 阅读 · 0 评论 -
spark使用hive时,数据仓库位置指定
在spark 2.0.1 中,--hiveconf "hive.metastore.warehouse" 参数已经不再生效,用户应该使用 --conf spark.sql.warehouse.dir=hdfs://HOSTNAME:9000/user/hive/warehouse 命令进行代替原创 2019-01-09 23:24:01 · 2073 阅读 · 0 评论 -
spark自定义分区器
我们都知道Spark内部提供了HashPartitioner和RangePartitioner两种分区策略,这两种分区策略在很多情况下都适合我们的场景。但是有些情况下,Spark内部不能符合咱们的需求,这时候我们就可以自定义分区策略。为此,Spark提供了相应的接口,我们只需要扩展Partitioner抽象类,然后实现里面的三个方法:// 这个方法需要返回你想要创建分区的个数...原创 2019-01-09 00:04:52 · 1009 阅读 · 0 评论 -
Spark分区器HashPartitioner和RangePartitioner代码详解
在Spark中分区器直接决定了RDD中分区的个数;也决定了RDD中每条数据经过Shuffle过程属于哪个分区;也决定了Reduce的个数。这三点看起来是不同的方面的,但其深层的含义是一致的。 我们需要注意的是,只有Key-Value类型的RDD才有分区的,非Key-Value类型的RDD分区的值是None的。 在Spark中,存在两类分区函数:HashPartitioner和RangePartitioner,它们都是继承自Partitioner,主要提供了每个RDD有几个分区(numPa转载 2019-01-08 22:56:28 · 343 阅读 · 0 评论 -
Spark-Streaming获取kafka数据的两种消费模式、三种消费语义
两种消费模式一、基于Receiver的方式 Receiver是使用Kafka的高层次Consumer API来实现的。receiver从Kafka中获取的数据都是存储在Spark Executor的内存中的,然后Spark Streaming启动的job会去处理那些数据。 然而,在默认的配置下,这种方式可能会因为底层的失败而丢失数据。如果要启用高可靠机制,让数据...原创 2019-01-08 00:01:27 · 2981 阅读 · 2 评论 -
Spark性能优化指南——高级篇
前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同...转载 2018-12-26 00:34:43 · 125 阅读 · 0 评论 -
spark大数据计算:distinct去重算子实现原理
原创 2018-12-31 13:03:22 · 1109 阅读 · 0 评论 -
Spark性能优化指南——基础篇
前言 在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算...转载 2018-12-30 16:54:51 · 114 阅读 · 0 评论 -
spark中job、stage、task、partition、executor概念理解以及分区数深入探究
概念1. job定义: 我们都知道,在spark rdd中,有action、transform操作,当真正触发action时,才真正执行计算,此时产生一个job任务。2. stage定义: 以shuffle为界,当在一个job任务中涉及shuffle操作时,会进行stage划分,产生一个或多个stage。3. task定义: 一个stage...原创 2018-12-21 00:40:07 · 2944 阅读 · 0 评论