Spark
tom_8899_li
这个作者很懒,什么都没留下…
展开
-
第147课:Spark面试经典系列之Shuffle的性能调优问题
Spark面试经典系列之Shuffle的性能调优问题1、Shuffle原理和运行机制回顾 2、Shuffle性能调优上面的流程中: 性能问题1:Mapper端的Cache:如果Cache设置的大小不恰当,可能产生大量磁盘的访问操作,因为要频繁地往本地磁盘写数据。 性能问题2:Reducer端的Business Logic运行的空间,如果说空间分配不够,业务逻辑运行的时候被迫把数据Spill到磁原创 2017-05-05 16:22:19 · 1334 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第29课:Master HA彻底解密
大数据IMF传奇行动绝密课程第29集:Master HA彻底解密 1、Master HA解析 2、Master HA的四种方式 3、Master HA的内部工作机制 4、Master HA的源码解密 ZooKeeper工作的时候有一台Leader的机器(active),其他的机器是Follower 一般一共3个足够了由于Zookeeper保留了集群信息(Worker、Drivers、原创 2016-08-12 00:19:54 · 497 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第30课:Master的注册机制和状态管理解密
Master的注册机制和状态管理解密一、Master接受Driver注册内幕 二、Master接受Application注册内幕 三、Master接受Worker注册内幕 四、Master处理Driver状态变化内幕 五、Master处理Executor状态变化内幕一、Master对其它组建注册的处理 1、Master接受注册的对象主要是:Driver、Application、Worker原创 2016-08-12 00:23:17 · 446 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第27课:Spark on Yarn彻底解密
Spark on Yarn彻底解密1、Hadoop Yarn的工作流程解密 2、Spark on Yarn两种运行模式实战 3、Spark on Yarn工作流程解密 4、Spark on Yarn工作内幕解密 5、Spark on Yarn最佳实战1、Hadoop Yarn的工作流程解密 1)Hadoop Yarn解析 Yarn是Hadoop推出的整个分布式(大数据)集群的资源管理器,原创 2016-08-10 11:10:26 · 788 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第26课:Spark Runtime内幕揭秘
Spark Runtime内幕揭秘从Runtime角度讲,几大对象: Driver Master Worker Executor1、再论Spark集群部署 1)从Spark Runtime的角度来讲有五大核心对象:Master、Worker、Executor、Driver、 CoarseGraindExecutorBackend 2)Spark在做分布式集群系统设计的时候,最大化功能独立原创 2016-08-08 11:58:08 · 324 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第25课:Spark Sort-Based Shuffle内幕彻底解密
Spark Sort-Based Shuffle内幕彻底解密1、为什么使用Sort-Based Shuffle内幕彻底解密 2、Sort-Based Shuffle实战 3、Sort-Based Shuffle内幕 4、Sort-Based Shuffle的不足1、为什么使用Sort-Based Shuffle内幕彻底解密 1)Shuffle一般包含两阶段任务,第一部分,产生Shuffle数原创 2016-08-07 21:31:24 · 566 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第24课:Spark Shuffle内幕彻底揭秘
Spark Shuffle内幕彻底揭秘1、Hash Shuffle彻底解密 2、Shuffle Pluggable解密 3、Sorted Shuffle解密 4、Shuffle性能优化1、什么是Shuffle? Shuffle是洗牌的意思。需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。2、Shuffle可能面临的问题?运行Task的时候才会产生S原创 2016-08-05 22:53:34 · 411 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第23课:从物理执行的角度透视Spark Job
从物理执行的角度透视Spark Job1、再次思考pipeline 2、窄依赖物理执行内幕 3、宽依赖物理执行内幕 4、Job提交流程1、再次思考pipeline 即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式 1)f(record), f作用于集合的每一条记录,每次只作用于一条记录 2)f(records),f一次性作用于集合点全部数据 Spar原创 2016-08-05 13:55:48 · 441 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第22课:RDD的依赖关系彻底解密
RDD的依赖关系彻底解密RDD依赖关系:窄依赖、宽依赖 窄依赖是指每个父RDD的Partition最多被一个子RDD的一个Partition所使用,例如map, filter等都会产生窄依赖 宽依赖是指一个父RDD的Partition被多个子RDD的Partition所使用,例如groupByKey, reduceByKey等操作都会产生宽依赖总结:如果父RDD的一个Partition被一个子R原创 2016-08-05 10:26:48 · 488 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第31课:Spark资源调度分配内幕天机彻底解密
Spark资源调度分配内幕天机彻底解密一、分配Driver(Cluster) 二、为Application分配资源 三、两种不同的资源分配方式彻底揭秘 四、Spark资源分配的思考一、任务调度与资源调度的区别 1、任务调度是通过DAGScheduler、TaskScheduler、SchedulerBackend等进行的作业调度; 2、资源调度是指应用程序如何获得资源 3、任务调度是在资原创 2016-08-12 22:32:09 · 929 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第53课:Spark性能优化第九季 Spark Tungsten内存使用彻底解密
Spark Tungsten内存使用彻底解密1、到底什么是Page 2、Page具体的两种实现方式 3、Page的使用的源码详解一、Tungsten中到底什么是Page? 1、在Spark中其实不存在Page这个类的!实质上来说,Page是一种数据结构(类似于Stack、List等),从OS的层面来讲,Page代表了一个内存块,在Page里面可以存放数据,在OS中会存在很多不同的Page,当要原创 2016-09-04 14:16:43 · 451 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第22课:RDD的依赖关系彻底解密
RDD的依赖关系彻底解密 RDD依赖关系:窄依赖、宽依赖 窄依赖是指每个父RDD的Partition最多被一个子RDD的一个Partition所使用,例如map, filter等都会产生窄依赖 宽依赖是指一个父RDD的Partition被多个子RDD的Partition所使用,例如groupByKey, reduceByKey等操作都会产生宽依赖总结:如果父RDD的一个Partition被一个原创 2016-08-12 00:02:17 · 533 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第23课:从物理执行的角度透视Spark Job
从物理执行的角度透视Spark Job1、再次思考pipeline 2、窄依赖物理执行内幕 3、宽依赖物理执行内幕 4、Job提交流程1、再次思考pipeline 即使采用pipeline的方式,函数f对依赖的RDD中的数据集合的操作也会有两种方式 1)f(record), f作用于集合的每一条记录,每次只作用于一条记录 2)f(records),f一次性作用于集合点全部数据 Spar原创 2016-08-12 00:04:08 · 400 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第24课:Spark Shuffle内幕彻底揭秘
Spark Shuffle内幕彻底揭秘1、Hash Shuffle彻底解密 2、Shuffle Pluggable解密 3、Sorted Shuffle解密 4、Shuffle性能优化什么是Shuffle? Shuffle是洗牌的意思。需要Shuffle的关键性原因是某种具有共同特征的数据需要最终汇聚到一个计算节点上进行计算。2、Shuffle可能面临的问题?运行Task的时候才会产生Shu原创 2016-08-12 00:07:07 · 382 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第25课:Spark Sort-Based Shuffle内幕彻底解密
Spark Sort-Based Shuffle内幕彻底解密1、为什么使用Sort-Based Shuffle内幕彻底解密 2、Sort-Based Shuffle实战 3、Sort-Based Shuffle内幕 4、Sort-Based Shuffle的不足1、为什么使用Sort-Based Shuffle 1)Shuffle一般包含两阶段任务,第一部分,产生Shuffle数据的阶段(M原创 2016-08-12 00:10:02 · 401 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第26课:Spark Runtime内幕揭秘
Spark Runtime内幕揭秘1、再论Spark集群部署 1)从Spark Runtime的角度来讲有五大核心对象:Master、Worker、Executor、Driver、CoarseGraindExecutorBackend 2)Spark在做分布式集群系统设计的时候,最大化功能独立,模块化封装具体独立的对象、强内聚松耦合 3)当Driver中的SparkContext初始化的时原创 2016-08-12 00:12:45 · 426 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第51课:Spark性能优化第七季
Spark性能优化第七季1、“钨丝计划”产生的根本背景 2、“钨丝计划”内幕详解 3、“钨丝计划”下的Shuffle 一、“钨丝计划”产生的本质原因 1、Spark作为一个一体化多元化的(大)数据处理通用平台,性能一直是其根本性的追求之一,Spark基于内存迭代(部分基于磁盘迭代)的模型,极大的满足了人们对分布式系统处理性能的渴望。但是由于Spark是采用Scala+Java语言编写的,所以原创 2016-09-04 14:11:26 · 403 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第50课:Spark性能优化第六季
大数据IMF传奇行动绝密课程第50课:Spark性能优化第六季 1、关于Shuffle的再次说明 2、Shuffle性能优化 一、Shuffle性能调优 1、问题:Shuffle output file lost? 如果GC尤其是Full GC产生通常会导致线程停止工作,这个时候下一个Stage的Task在默认情况下会尝试重试来获取数据,一般重试3次每次重试的时间为5s,也就是说默认情况下原创 2016-09-04 14:11:02 · 454 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第52课:Spark性能优化第八季
Spark性能优化第八季1、“钨丝计划”Shuffle实例 2、“钨丝计划”下的Shuffle解密./spark-sql --master spark://Master:7077一、使用Tungsten功能 1、如果想让你的程序使用Tungsten的功能,可以配置: spark.shuffle.manager = tungsten-sort 2、DataFrame中自动开启了Tungsten原创 2016-09-04 14:12:59 · 431 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第21课:从Spark架构中透视Job
从Spark架构中透视Job1、通过案例观察Spark架构 2、手动绘制Spark内部架构 3、Spark Job的逻辑视图解析 4、Spark Job的物理视图解析spark粗粒度Spark主从分布: Master Worker在配置文件spark-env.sh中有内存、core的配置 spark-shell默认情况下没有任何job Executors个数有5个,其中4个在worke原创 2016-08-03 20:39:45 · 824 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第20课:Top N彻底解秘
Top N彻底解秘1、基础top N算法 2、分组top N算法只要是改变每一行列的数据,一般都是用map操作,下面是基础topN算法。package com.tom.spark.coresimport org.apache.spark.{SparkConf, SparkContext}/** * TopNBasic.scala */object TopNBasic { def ma原创 2016-08-03 00:14:33 · 537 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第42课:Checkpoint内幕解密
Checkpoint内幕解密1、Broadcast彻底解析 2、Broadcast源码彻底详解 3、Broadcast最佳实践一、Broadcast彻底解析 1、Broadcast就是将数据从一个节点发送到其它的节点上。例如Driver上有一张表,而Executor中的每个并行执行的Task(100万个Task)都要查询这张表,那我们通过Broadcast的方式就只需要往每个Executor把原创 2016-08-29 11:11:34 · 696 阅读 · 1 评论 -
大数据IMF传奇行动绝密课程第82课:Spark Streaming案例动手实战并在电光石火间理解其工作原理
Spark Streaming第1课:案例动手实战并在电光石火间理解其工作原理1、Spark Streaming动手实战演示 2、闪电般理解Spark Streaming原理一切都是流处理:交通、金融、工业、电商业务逻辑的计算提前写好。每秒钟都会基于逻辑有一个job,而job的产生是因为RDD的job实例,也就是写的代码是job的类的模板。时间运动,模板就实例化。 RDD的模板就是DStream原创 2016-09-05 21:52:24 · 437 阅读 · 0 评论 -
第135-141课:Spark面试经典系列之数据倾斜
Spark面试经典系列之数据倾斜Spark面试经典系列之数据倾斜:数据倾斜之痛1、Spark性能真正的杀手 2、数据倾斜之痛数据倾斜两大直接致命性的后果: 1、OOM,一般OOM都是由于数据倾斜所致 2、速度变慢数据倾斜基本形态特征:个别Task处理大量数据数据倾斜的定位: 1、Web UI,可以清晰看见哪些Task运行的数据量大小 2、Log,Log的一个好处是可以清晰的告诉是哪一行出现原创 2017-05-05 16:14:45 · 2439 阅读 · 0 评论 -
第142课:Spark面试经典系列之Cache和Checkpoint
Spark面试经典系列之Cache和Checkpoint1、Cache 2、CheckpointCache:当我们想复用数据的时候一般都会进行Cache,在实际生产环境下复用RDD是最重要的性能优化手段之一(当然,如果能够实现优良的RDD的复用,一定是建立在同时驾驭业务和技术的基础之上的)。所谓的Cache其实是把数据经过第一次计算放在了BlockManager中。Checkpoint:相当于Ca原创 2017-05-05 16:15:38 · 517 阅读 · 0 评论 -
第143课:Spark面试经典系列之Reduce端OOM和shuffle file not found如何解决
Spark面试经典系列之Reduce端OOM和shuffle file not found如何解决1、Reduce端的OOM如何解决? 2、Shuffle file not found如何解决?OOM产生的原因:数据对象太多。通过减少减小Cache层大小,从而减少OOM 代价:从Mapper端拉去数据的次数增多,性能下降如果发生Reducer端的OOM,可以减少每个Reduce Task的缓存的原创 2017-05-05 16:16:59 · 745 阅读 · 0 评论 -
第144课:Spark面试经典系列之NULL值问题及序列化错误
Spark面试经典系列之NULL值问题及序列化错误1、NULL值问题如何解决? 2、序列化错误如何解决?一些场景下,我们并不需要返回具体的值,这个时候往往我们会返回NULL值,但是有时候你可能在下一步的RDD操作中要求RDD的元素不能够是NULL值,如果是的话就会抛出异常,此时该如何处理呢?这个时候我们可以在继续返回NULL值的基础上,在下一步要使用的时候通过Option进行模式匹配(Some和N原创 2017-05-05 16:18:05 · 861 阅读 · 0 评论 -
第145课:Spark面试经典系列之Yarn生产环境下资源不足问题和网络的经典问题详解
Spark面试经典系列之Yarn生产环境下资源不足问题和网络的经典问题详解1、Yarn资源不足无法提交Spark的问题 2、Yarn-Client下网络流量的问题ResourceManager会接收你的提交请求吗?Yarn一般把自己的资源分成不同的类型,我们接收的时候会专门提交到分配给Spark那一组资源,例如说此时资源信息如下:Memory 1000G,Cores 800个,此时你要提交的Spa原创 2017-05-05 16:19:03 · 1215 阅读 · 0 评论 -
第146课:Spark面试经典系列之Yarn Cluster生产环境下JVM的OOM和Stack Overflow问题
Spark面试经典系列之Yarn Cluster生产环境下JVM的OOM和Stack Overflow问题1、Spark on Yarn下JVM的OOM问题及解决方式 2、Spark中Driver的Stack Overflow的问题及解决方式Spark on Yarn cluster mode: 此时有可能会报OOM的错误,具体来说: 由于Client模式下一定没有出现OOM,而在Cluster原创 2017-05-05 16:20:09 · 1265 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第58课:使用Java和Scala在IDE中开发DataFrame实战
使用Java和Scala在IDE中开发DataFrame实战1、使用Java开发DataFrame 2、使用Scala开发DataFrame创建DataFrame的时候可以来自于其它RDD,来源于Hive表,以及其他数据来源,例如json文件 SQLContext只支持SQL一种方言(delax?),HiveContext支持SQL方言以及其它方言,通过设置都可以支持。一、使用Java开发Dat原创 2016-09-07 00:55:24 · 453 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第57课:Spark SQL on Hive配置及实战
Spark SQL on Hive配置及实战因为底层hive最为存储引擎,所以需要配置hive-site.xml//配置以下参数hive.metastore.uristhrift://Master:9083在linux下运行如下命令hive --service metastore >metastore.log 2>& 1&启动spark-shellval hiveContext = org.原创 2016-09-07 00:50:23 · 500 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第11课:彻底解密WordCount运行原理
彻底解密WordCount运行原理1、从数据流动视角揭秘WordCount 2、从RDD依赖关系的视角解密WordCount 3、DAG与Lineage的思考Spark: 分布式、基于内存(部分基于磁盘)、迭代分片大小不完全等于Hadoop的Block开始计算时把Key丢弃了,所以写结果时需要生成Key,符合对称法则第一个Stage有哪些RDD:HadoopRDD, MapPartitions原创 2016-07-24 17:54:01 · 487 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第28课:Spark天堂之门
Spark天堂之门1、Spark天堂之门 2、SparkContext使用案例鉴赏 3、SparkContext内幕 4、SparkContext源码解密1、Spark天堂之门 1)Spark程序在运行的时候分为Driver和Executors两部分; 2)Spark的程序编写是基于SparkContext的,具体来说包含两方面: a)Spark编程的核心基础RDD,是由Spar原创 2016-08-10 19:55:19 · 919 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第40课:CacheManager彻底解密
CacheManager彻底解密1、CacheManager重大价值 2、CacheManager运行原理图 3、CacheManager源码解析Spark厉害的原因 1、基于RDD构成了一体化多元化的大数据处理中心 2、迭代一、CacheManager分析: 1、CacheManager管理的缓存,而缓存可以是基于内存的缓存,也可以是基于磁盘的缓存 2、CacheManager需要通过原创 2016-08-26 10:10:20 · 466 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第41课:Checkpoint彻底解密
Checkpoint彻底解密1、Checkpoint重大价值 2、Checkpoint运行原理图 3、Checkpoint源码解析一、Checkpoint到底是什么? 1、Spark在生产环境下经常会面临Transformation的RDD非常多(例如一个Job中包含1万个RDD)或者具体Transformation产生的RDD本身计算特别复杂和耗时(例如计算时常超过1个小时),此时我们必须考原创 2016-08-26 10:11:18 · 510 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第54课:Spark性能优化第十季之Spark统一内存管理
Spark性能优化第十季之Spark统一内存管理1、传统的Spark内存管理的问题 2、Spark统一内存管理 3、展望Spark内存分为三部分:Execution、Sotrage、Other; Shuffle,当内存不够的时候下,磁盘IO很大负担10个Task并行,则会把内存分为10份,实际运行时Task可能会沾满整个空间,其他任务分配不到空间。 即使一个Task不会把内存用完,另外一个T原创 2016-09-05 21:49:30 · 584 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第33课:Spark Executor内幕彻底解密
Spark Executor内幕彻底解密一、Spark Executor工作原理图 二、ExecutorBackend注册源码揭秘 三、Executor实例化内幕 四、Executor具体是如何工作的?为什么不重新启动一个进程 worker不能计算、worker里面可能有其他Executor,如果其中一个崩溃了,其他也崩溃了。一、Spark Executor工作 1、需要特别注意是在Coa原创 2016-08-15 10:49:26 · 604 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第55课:60分钟从零起步驾驭Hive实战
60分钟从零起步驾驭Hive实战1、Hive本质解析 2、Hive安装实战 3、使用Hive操作搜索引擎数据实战 一、Hive的本质是什么? 1、Hive是分布式数据仓库,同时又是查询引擎,所以SparkSQL取代的只是Hive查询引擎,在企业实际生产环境下Hive+Spark SQL是目前最为经典的数据分析组合; 2、Hive本身就是一个简单单机版本的软件,主要负责: a)把HQL翻译原创 2016-09-05 21:50:13 · 795 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第56课:揭秘Spark SQL和DataFrame的本质
揭秘Spark SQL和DataFrame的本质1、Spark SQL与DataFrame 2、DataFrame与RDD 3、企业级最佳实践 一、SparkSQL与DataFrame 1、SparkSQL之所以是除了SparkCore以外最大的和最受关注的组件,原因是 a)处理一切存储介质和各种格式的数据(同时可以方便的扩展Spake SQL的功能来支持更多类型的数据,例如Kudu)原创 2016-09-07 00:47:17 · 483 阅读 · 0 评论 -
大数据IMF传奇行动绝密课程第21课:从Spark架构中透视Job
从Spark架构中透视Job1、通过案例观察Spark架构 2、手动绘制Spark内部架构 3、Spark Job的逻辑视图解析 4、Spark Job的物理视图解析spark粗粒度Spark主从分布: Master Worker在配置文件spark-env.sh中有内存、core的配置 spark-shell默认情况下没有任何job Executors个数有5个,其中4个在worke原创 2016-08-11 23:52:46 · 732 阅读 · 0 评论