分布式空间分析引擎-Simba架构分析与源码阅读
airfan92
三军可夺帅也,匹夫不可以夺其志
展开
-
分布式空间分析引擎-Simba架构分析与源码阅读之SpatialJoin实现与总结
在分区器和索引部分铺垫了很多,其实Simba中Spatial join算子的部分是真正利用前面的结构来有效降低计算量的逻辑,也是simba最大的亮点。simba主要实现了三类spatial join算子:KNN query:select * from table IN KNN ($target) within ($k);Distance join:SELECT * FROM R JOIN ...原创 2019-11-23 21:56:42 · 761 阅读 · 0 评论 -
分布式空间分析引擎-Simba架构分析与源码阅读之SparkPlan优化
Simba在计算过程中主要进行了两方面的SparkPlan优化:1)基于索引的谓词下推;2)一些分区器的分区数动态计算。对这些概念有些模糊的朋友可以参见前几篇博客。基于索引的谓词下推为了减少参与join运算的计算量,simba专门为spatial join设计了谓词下推的优化,这部分主要是通过org.apache.spark.sql.simba.SimbaSessionState、org....原创 2019-11-23 21:37:49 · 445 阅读 · 0 评论 -
分布式空间分析引擎-Simba架构分析与源码阅读之索引部分源码
Simba实现了五种类型的数据索引,并结合Spark的RDD结构构建了two-level index的机制:在数据分区内部构建local index,以及为各个数据分区构建global index。本章会首先介绍simba的two-level机制,然后具体介绍几种类型的two-level index的具体实现,最后会结合上一章的分区器对几种索引进行总结与比较。two-level index机制...原创 2019-11-23 21:30:34 · 508 阅读 · 0 评论 -
分布式空间分析引擎-Simba架构分析与源码阅读之分区器源码
分区器是Spark中的一个概念,Spark依据分区器定义的分区规则把数据划分到多个数据分区,每个数据分区在一个task中由一个executor进行处理。开发者可以方便地继承Partitioner接口实现自己的分区器,定义numPartitions规定RDD的分区数以及在getPartition中实现分区规则。abstract class Partitioner extends Seriali...原创 2019-11-23 20:55:18 · 595 阅读 · 0 评论 -
分布式空间分析引擎-Simba架构分析与源码阅读之总体架构
Simba(SpatialIn-MemoryBig dataAnalytics)是一个基于Spark开发的分布式空间分析引擎,主打空间大数据的高spatialjoin性能 。它基于Spark SQL框架进行扩展,针对空间场景进行了一系列的算法研究和工程优化,在spatial join领域相对geospark、SpatialHadoop、Hadoop GIS等空间分析引擎具有一定的优势。下面...原创 2019-11-23 20:45:44 · 857 阅读 · 0 评论