WeNas Blog

我干了什么 究竟拿了时间换了什么

Spark MLlib算法调用展示平台及其实现过程

介绍及代码实现

1. 软件版本: IDE:Intellij IDEA 14, Java:1.7, Scala:2.10.6; Tomcat:7, CDH:5.8.0;  Spark:1.6.0-cdh5.8.0-hadoop2.6.0-cdh5.8.0 ;  Hadoop:hadoop2.6.0-cdh5.8.0;(使用的是CDH提供的虚拟机) 2. 工程下载及部署: Scala封装Spark...

Spark Internal - Broadcast 篇

Broadcast

Broadcast 顾名思义,broadcast 就是将数据从一个节点发送到其他各个节点上去。这样的场景很多,比如 driver 上有一张表,其他节点上运行的 task 需要 lookup 这张表,那么 driver 可以先把这张表 copy 到这些节点,这样 task 就可以在本地查表了。如何实现一个可靠高效的 broadcast 机制是一个有挑战性的问题。先看看 Spark 官网上的一段...

Spark Internal - Cache 和 Checkpoint 篇

Cache 和 Checkpoint

Cache 和 Checkpoint 作为区别于 Hadoop 的一个重要 feature,cache 机制保证了需要访问重复数据的应用(如迭代型算法和交互式应用)可以运行的更快。与 Hadoop MapReduce job 不同的是 Spark 的逻辑/物理执行图可能很庞大,task 中 computing chain 可能会很长,计算某些 RDD 也可能会很耗时。这时,如果 task ...

Spark Internal - Architecture 篇

架构

架构 前三章从 job 的角度介绍了用户写的 program 如何一步步地被分解和执行。这一章主要从架构的角度来讨论 master,worker,driver 和 executor 之间怎么协调来完成整个 job 的运行。 实在不想在文档中贴过多的代码,这章贴这么多,只是为了方面自己回头 debug 的时候可以迅速定位,不想看代码的话,直接看图和描述即可。 部署图 重新贴一下 O...

Spark Internal - ShuffleDetails 篇

Shuffle 过程

Shuffle 过程 上一章里讨论了 job 的物理执行图,也讨论了流入 RDD 中的 records 是怎么被 compute() 后流到后续 RDD 的,同时也分析了 task 是怎么产生 result,以及 result 怎么被收集后计算出最终结果的。然而,我们还没有讨论数据是怎么通过 ShuffleDependency 流向下一个 stage 的? 对比 Hadoop MapRe...

Spark Internal - JobPhysicalPlan 篇

Job 物理执行图

Job 物理执行图 在 Overview 里我们初步介绍了 DAG 型的物理执行图,里面包含 stages 和 tasks。这一章主要解决的问题是: 给定 job 的逻辑执行图,如何生成物理执行图(也就是 stages 和 tasks)? 一个复杂 job 的逻辑执行图 代码贴在本章最后。给定这样一个复杂数据依赖图,如何合理划分 stage,并确定 task 的类型和个数? 一...

Spark Internal - JobLogicPlan 篇

Job 逻辑执行图

Job 逻辑执行图 General logical plan 典型的 Job 逻辑执行图如上所示,经过下面四个步骤可以得到最终执行结果: 从数据源(可以是本地 file,内存数据结构, HDFS,HBase 等)读取数据创建最初的 RDD。上一章例子中的 parallelize() 相当于 createRDD()。 对 RDD 进行一系列的 transformation() ...

Spark Internal - Overview 篇

概览

概览 拿到系统后,部署系统是第一件事,那么系统部署成功以后,各个节点都启动了哪些服务? 部署图 从部署图中可以看到 整个集群分为 Master 节点和 Worker 节点,相当于 Hadoop 的 Master 和 Slave 节点。 Master 节点上常驻 Master 守护进程,负责管理全部的 Worker 节点。 Worker 节点上常驻 Worker 守护进程,...

Spark Internal —— Introduction 篇

介绍

Spark Internals Spark Version: 1.0.2 Doc Version: 1.0.2.0 Authors | Weibo Id | Name | |:———–|:————-| |@JerryLead | Lijie Xu | Introduction 本文主要讨论 Apache Spark 的设计与实现,重点关注其设计思想、运行原理、实现架构及性能调优,附...

Vim 与中文输入法

Using Vim with non-english input method

Update: 我最后还是放弃在 Vim 模式下输入中文了,mental model 的 cost 太重了( 我相信很多中文世界的 Vimer 都遇到过这个烦恼,在 vim 的 insert 模式时可能突然想输个中文,输完之后会本能的直接 esc 接 normal 模式操作,结果发现跳出来的是中文输入法……对于 vscode,我一般会在几次错误之后被逼到退出 vscode vim...