自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (8)
  • 收藏
  • 关注

原创 Spark-Sql源码解析之八 Codegen

Codegen,动态字节码技术,那么什么是动态字节码技术呢?先看来一段代码,假设SparkPlan为Sortcase class Sort( sortOrder: Seq[SortOrder], global: Boolean, child: SparkPlan) extends UnaryNode { override def requiredChildDis

2016-08-12 13:06:58 6166 1

原创 Spark-Sql源码解析之七 Execute: executed Plan -> RDD[Row]

SparkPlan如何执行呢,SparkPlan是如何转变为RDD[Row]的呢?首先看一段代码:SQLContext sqlContext = new SQLContext(jsc);DataFrame dataFrame = sqlContext.parquetFile(parquetPath);dataFrame.registerTempTable(source);String s

2016-08-12 13:03:25 3346

原创 Spark-Sql源码解析之六 PrepareForExecution: spark plan -> executed Plan

在SparkPlan中插入Shuffle的操作,如果前后2个SparkPlan的outputPartitioning不一样的话,则中间需要插入Shuffle的动作,比分说聚合函数,先局部聚合,然后全局聚合,局部聚合和全局聚合的分区规则是不一样的,中间需要进行一次Shuffle。比方说sql语句:selectSUM(id) from test group by dev_chnid其从逻辑计划

2016-08-12 12:57:38 1636

原创 Spark-Sql源码解析之五 Spark Planner:optimized logical plan –> spark plan

前面描述的主要是逻辑计划,即sql如何被解析成logicalplan,以及logicalplan如何被analyzer以及optimzer,接下来主要介绍逻辑计划如何被翻译成物理计划,即SparkPlan。lazy val sparkPlan: SparkPlan = { SparkPlan.currentContext.set(self) planner.plan(optimized

2016-08-12 10:56:52 3113

原创 Spark-Sql源码解析之四 Optimizer: analyzed logical plan –> optimized logical plan

Optimizer的主要职责是将Analyzer给Resolved的Logical Plan根据不同的优化策略Batch,来对语法树进行优化,优化逻辑计划节点(Logical Plan)以及表达式(Expression),也是转换成物理执行计划的前置。它的工作原理和analyzer一致,也是通过其下的batch里面的Rule[LogicalPlan]来进行处理的。object DefaultO

2016-08-12 10:49:28 2483

原创 Spark-Sql源码解析之三 Analyzer:Unresolved logical plan –> analyzed logical plan

Analyzer主要职责就是将通过Sql Parser未能Resolved的Logical Plan给Resolved掉。lazy val analyzed: LogicalPlan = analyzer.execute(logical)//分析过的LogicalPlanprotected[sql] lazy val analyzer: Analyzer = new Analyzer(c

2016-08-11 16:51:33 3193

原创 Spark-Sql源码解析之二 Sqlparser:sql –> unresolved logical plan

前面章节讲解了Spark-SQL中的核心流程,接下来主要讲解如何将sql语句转化为UnResolved Logical Plan(包含UnresolvedRelation、 UnresolvedFunction、 UnresolvedAttribute)。protected[sql] def parseSql(sql: String): LogicalPlan = { val ret =

2016-08-11 16:18:03 1849

原创 Spark-Sql源码解析之一 引言

1.1 Demo以一个Spark-Sql的例子开始:public class TestSparkSql {    public static void main(String[] args) {        Logger log = Logger.getLogger(TestSparkSql.class);        System.setProperty

2016-08-11 13:38:48 2472

IK中文分词器原理

详细讲解IK分词器原理

2017-05-12

Spark1.4.1 RDD算子详解

结合代码详细描述RDD算子的执行流程,并配上执行流程图

2017-03-02

从PAXOS到ZOOKEEPER分布式一致性原理与实践

从PAXOS到ZOOKEEPER分布式一致性原理与实践

2017-02-07

Spark-Sql源码解析

详细描述了Spark-sql的原理,从sql语句如何转换为逻辑计划,然后是物理计划,最后是rdd

2016-08-22

kafka源码解析新手版本

kafka源码解析,适合新手,免积分下载

2016-04-11

linux同时监控cpu磁盘网络的工具nmon

linux同时监控cpu磁盘网络的工具nmon,可以方便性能调优的时候观察服务器的性能瓶颈

2016-02-02

SparkCore源码阅读

绝对原创,SparkCore源码阅读,适合新手

2016-01-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除