原创 Spark SQL CLI 實現分析

背景本文主要介紹了Spark SQL裏目前的CLI實現,代碼之後肯定會有不少變動,所以我關注的是比較核心的邏輯。主要是對比了Hive CLI的實現方式,比較Spark SQL在哪塊地方做了修改,哪些地方與Hive CLI是保持一致的。可以

原创 論文摘抄 - Infobright

背景論文 Brighthouse: AnAnalytic Data Warehouse for Ad-hoc Queries,VLDB 2008 brighthouse是一個面向列的數據倉庫,在列存儲和壓縮數據方面,數據壓縮比達到10:1

原创 常見計算框架算子層對比

背景前段時間在爲內部自研的計算框架設計算子層,參考對比了一些開源的計算框架的算子層,本文做一個粗粒度的梳理。下面這張圖是我對計算框架抽象層次的一個拆分,具體可以參考上週日杭州Spark meetup上我做的Spark SQL分享 slid

原创 Scala Learning(1): 使用Pattern Matching表達JSON

這是一個挺能展現Scala編程方式的例子,對正在熟悉Scala這門語言的開發者很有幫助。 Representing JSON 用Scala來表達JSON(Java Script Object Notation)結構, { "f

原创 Spark Core Runtime分析: DAGScheduler, TaskScheduler, SchedulerBackend

Spark Runtime裏的主要層次分析,梳理Runtime組件和執行流程, DAGScheduler Job=多個stage,Stage=多個同種task, Task分爲ShuffleMapTask和ResultTask,D

原创 Vertica: 基於DBMS架構的列存儲數據倉庫

介紹Vertica(屬於HP公司),是一個基於DBMS架構的數據庫系統,適合讀密集的分析型數據庫應用,比如數據倉庫,白皮書中全名稱爲VerticaAnalytic Database。從命名中也可以看到,Vertica代表它數據存儲是列式的

原创 Grpc-java MacOS編譯

系統版本: Mac OS X 10 本文簡述grpc-java的編譯過程,在官方文檔的步驟裏,增加兩個包的安裝依賴。 Build # download source code git clone https://github.c

原创 Apache Crunch設計:基礎數據處理

背景Apache Crunch是FlumeJava的實現,爲不太方便直接開發和使用的MapReduce程序,開發一套MR流水線,具備數據表示模型,提供基礎原語和高級原語,根據底層執行引擎對MR Job的執行進行優化。從分佈式計算角度看,C

原创 關於DIMMQ: Discardable In-Memory Materialized Query

背景最近在看CBO在不同系統裏的實現方式,比如flink裏在編譯時對plan的CBO優化,以及運行時的CBO:Hive、Apache Calcite(即Optiq)的一些內容。今天第一次看到DIMMQ的概念,聊聊我的幾點看法。參考文章:D

原创 Spark Streaming原理簡析

執行流程 數據的接收 StreamingContext實例化的時候,需要傳入一個SparkContext,然後指定要連接的spark matser url,即連接一個spark engine,用於獲得executor。 實例化之後

原创 Spark on Mesos: 粗粒度與細粒度實現分析

背景順着昨天spark standalone實現那篇文章繼續扯淡,看看Mesos Scheduler的兩種實現的異同。對我來說,回過頭再仔細看Spark在這一層的實現,思路又清晰了許多。Mesos粗粒度CoarseMesosSchedul

原创 Scala Learning(4): Currying柯里化的推演

本文展示加法和乘法的兩個例子,最後使用MapReduce的思想把兩者統一成一個帶Currying的表達形式。 從high-order functions推演到Currying 原始方法 def sum(f: Int => Int,

原创 回顧15個月的工作經歷

我又來回顧我的經歷了。我把我至今的工作經歷分爲如下兩個階段,分別對應在百度和現在在阿里這兩個時間段。第一個階段,學習工具自打畢業給自己定下往分佈式這塊

原创 Spark on Yarn: Cluster模式Scheduler實現

背景 主體邏輯 具體實現 AM YarnAllocator Executor 背景 Spark on Yarn分yarn-cluster和yarn-client兩種模式。 本文通過Cluster模式的TaskSch

原创 梳理對Spark Standalone的理解

背景本文不打算從源碼分析的角度看standalone如何實現,甚至有的模塊和類在分析中都是忽略掉的。本文目的是透過spark的standalone模式,看類似spark這種執行模式的系統,在設計和考慮與下次資源管理系統對接的時候,有什麼值