| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Spark源码系列(零)-如何开始分析Spark源码 -> 正文阅读 |
|
[大数据]Spark源码系列(零)-如何开始分析Spark源码 |
如果想更深入的理解Spark,那么就需要深入去研究下源码实现。关于Spark源码下载可以到官方网站或者github进行下载,而阅读源码的最好方式就是调试,Spark源码调试有很多种办法,本文介绍一种我常用的调试方法。 在调试Spark代码之前,可以先找一台linux主机安装Spark,这里最简单的方式用local方式即可,只需要下载官网编译好的Spark安装包即可,当然也可以部署一套Standalone模式的SPark集群,或者使用Spark on Yarn模式(推荐这种方法,不过需要搭建一套Hadoop集群,使用YARN调度,HDFS作为文件存储,搭建可以使用Ambari),然后下载对应安装版本的Spark源码即可开始进行调试。 在开始调试源码之前,先对Spark源码整体做个梳理,源码主要包括以下几个方面:
? ? SparkSession ? ? SparkContext ? ? SparkEnv ? ? SparkConf ? ? RpcEnv ? ? SparkStatus ? ? Tracker ? ? SecurityManager ? ? SparkUI ? ? MetricsSystem ? ? TaskScheduler
???????????SerializerManager ??????????BroadcastManager ????????? ShuffleManager ????????? MemoryManager ????? ? ? NettyBlockTransferService ????????? BlockManagerMaster ????????? BlockManager ???????? CacheManager
???????? MemoryManager ???????? MemoryPool ???????? ExecutionMemoryPool ???????? StorageMemoryPool ???????? MemoryStore ???????? UnifiedMemoryManager
???????? LiveListenerBus ???????? MapOutputTracker ???????? DAGScheduler ???????? TaskScheduler ???????? ExecutorAllocationManager ???????? OutputCommitCoordinator ???????? ContextClearner
???????? LocalSparkCluster ???????? Standalone ???????? Mater/Executor/Worker的容错 ???????? Spark Streaming ???????? StreamingContext ???????? Receiver ???????? Dstream ???????? 窗口操作
???????? Catalog ???????? TreeNode ???????? 词法解析器 ???????? ParserRule ???????? Executor ???????? Analyzer与Optimizer ???????? Hive SQL相关 了解清楚源码的大概脉络之后,就可以开始源码调试了。调试过程可以用最简单的测试代码,比如SparkPi或者WordCount程序,Spark源码自带了example,咱们直接通过命令行启动即可,只需要在driver或executor的JVM参数中加入debug参数,如下是我本地一条调试命令
如需要调试YARN模式下代码,那么把--master参数设置为yarn即可,需要调试executor则设置
同时在Eclispe或Idea中打开Spark源码,然后设置Remote debug,修改debug的host地址即可 ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 9:49:45- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |