MapReduce性能优化
检测系统瓶颈 性能调优 创建一项基线,用来评估系统的首次运行性能(即集群默认配置) 分析Hadoop计数器,修改,调整配置,并重新执行任务,与基线进行比较 重复执行第2步,直到最高效率 识别资源瓶颈 内存瓶颈 当发现节点…
Simple And Naive
检测系统瓶颈 性能调优 创建一项基线,用来评估系统的首次运行性能(即集群默认配置) 分析Hadoop计数器,修改,调整配置,并重新执行任务,与基线进行比较 重复执行第2步,直到最高效率 识别资源瓶颈 内存瓶颈 当发现节点…
Analyzed LogicalPlan生成 Sql经过AstBuilder的处理得到的 未解析逻辑算子树 主要由UnresolvedRelation 和UnresolvedAttribute两个对象组成。Analyze…
SparkSQL逻辑计划概述 逻辑计划阶段被定义为LogicalPlan类,主要有三个阶段: 由SparkSqlParser中的AstBuilder将语法树的各个节点转换为对应LogicalPlan节点,组成未解析的逻辑…
从SQL到RDD // 创建SparkSession类。从2.0开始逐步替代SparkContext称为Spark应用入口 var spark = SparkSession.builder().appName("appN…
分布式快照算法: Chandy-Lamport 主要用于在分布式系统中确定一个全局状态,一般用在分布式系统的状态恢复上。 Filnk中的Snapshot使用的是这个算法的改进版;Duird的KafkaIndex中也应用了…
查询执行 查询执行逻辑 所有的查询会依次转化为SqlQueryExecution、SqlStageExecution和SqlTaskExecution,并在不同(除非设置允许在同一Worker上运行来自同一SqlStag…
查询调度 生成调度执行器 对于每一个Stage会生成对应的SqlStageExecution实例,承载Stage启动和任务调度。 由SqlQueryExecution.analyzeQuery生成subPlan 根据su…
生成查询执行计划(下) 执行计划的生成 执行计划节点 执行计划树中的节点分为以下几种类型 AggregationNode 用于聚合操作的节点,在执行计划优化前所有的聚合节点都是单点聚合,优化后拆分为为其他两种 FINAL…
生成查询执行计划(上) 基本概念 Node 语法解析后生成AST(抽象语法树),其中的每一个节点都是一个Node(抽象类),包含的子类如下: Approximate:近似查询 ExplainOption:表示Explai…
RESTful框架解析 Presto几乎所有操作都依赖AirLift框架构建的RESTful服务来完成(数据传输,节点通信,心跳感应,计算调度,计算分布等)。包括4类RESTful接口,包括Statement,Query…