自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 spark源码分析- shuffle read

Spark会将job划分为多个Stage,每个job会由多个ShuffleMapStage和一个ResultStage组成,然后每个Stage会由多个Task组成,Task数量和每个Stage的Partition的数量相同。每个Task任务由单独的线程执行,不同Stage的Task之间需要进行数据流动,并且下游Stage的Task会依赖上游Stage的多个Task,所以该过程需要将数据写入磁盘,并...

2018-12-09 19:41:03 657

原创 spark源码分析-shuffle write

Spark会将job划分为多个Stage,每个job会由多个ShuffleMapStage和一个ResultStage组成,然后每个Stage会由多个Task组成,Task数量和每个Stage的Partition的数量相同。每个Task任务由单独的线程执行,不同Stage的Task之间需要进行数据流动,并且下游Stage的Task会依赖上游Stage的多个Task,所以该过程需要将数据写入磁盘,并...

2018-12-08 18:32:19 318

翻译 spark sql窗口函数

窗口函数是spark sql模块从1.4之后开始支持的,主要用于解决对一组数据进行操作,同时为每条数据返回单个结果,比如计算指定访问数据的均值、计算累进和或访问当前行之前行数据等,这些场景使用普通函数实现是比较困难的。窗口函数计算的一组行,被称为Frame。每一个被处理的行都有一个唯一的frame相关联。Spark SQL支持三类窗口函数:排名函数、分析函数和聚合函数。以下汇总了Spark S...

2018-09-28 22:18:42 6640 3

原创 java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy

在linux平台,spark读取hdfs上的parquet文件时,抛出的Snappy类不能初始化:java.util.concurrent.ExecutionException: java.lang.NoClassDefFoundError: Could not initialize class org.xerial.snappy.Snappy...Caused by: jav...

2018-09-10 20:07:58 6718 2

原创 javascript—原型

JavaScript的对象有一个特殊的[[Prototype]]内置属性,它是对其他对象的引用。几乎所有对象在创建时Prototype属性都会被赋予一个非空的值。有些对象的[[Prototype]]属性可能为空,但是很少见。 Prototype属性有什么用呢?比如当试图访问对应的属性时,会触发[[Get]]操作获取对应的属性值,例如myObject.a。对于默认的[[Get]]操作来说,第一步是...

2018-08-05 11:09:32 219

原创 javascript--对象属性描述符

从ES5开始,JavaScript开始支持所有属性都具备属性描述符。var myObject = { a: 2};Object.getOwnPropertyDescriptor(myObject, "a");//{// value: 2// writable: true,// enumerable: true,// configurable: true//}...

2018-08-04 17:35:17 225

翻译 Drizzle:一种在大型集群快速、自适应的流式处理

Drizzle:一种在大型集群快速、自适应的流式处理大规模流媒体系统旨在提供高吞吐量和低延迟。它们经常被用来运行任务关键型应用程序,必须全天候可用。因此,这些系统需要适应工作量的变化和故障,这样做可以对延迟影响最小。不幸的是,已有的解决方案要求操作在实现低延迟在正常操作期间和引起最小影响在适应期间进行权衡。record-at-a-time流式传输系统,如Naiad和Flink,提供在正常执行期...

2018-07-29 11:17:17 1116

原创 spark源码分析-ContextCleaner缓存清理

ContextCleaner是用于清理spark执行过程中内存,主要用于清理任务执行过程中生成的缓存RDD、Broadcast、Accumulator、Shuffle数据,防止造成内存压力。 ContextCleaner会在SparkContext创建过程中,被实例化:_cleaner = if (_conf.getBoolean("spark.cleaner.referen...

2018-07-15 11:03:00 1900

原创 通过sbt参数实现scala代码编译控制

因为我们基于spark的数据平台需要针对不同的spark版本进行代码的兼容,和项目构建的方便。需要通过使用sbt构建项目时通过指定spark版本来构建依赖不同spark版本的代码。 首先,我们将不兼容的项目代码分别放到不同的目录下,目录结构如下: 然后,通过不同指定不同的spark版本编译不同的兼容代码即可,具体sbt配置如下:val sparkV = "2.3.0"lazy ...

2018-06-11 20:46:00 820

原创 JVM 垃圾收集器

GC是jvm自动内存管理机制的具体实现。在HotSpot中,GC的工作主要划分为两大块,分别是内存的动态分配和垃圾回收。jvm中存活对象的生命周期具有两极化,因此该采取不同的垃圾收集策略,分代收集由此诞生。java堆内存划分为新生代(YoungGen)和老年代(OldGen),其中新生代又划分为Eden区、From Survivor区和To Survivor区。1、标记算法垃圾标记算法...

2018-05-21 10:23:35 181

原创 spark history server部署

spark history server是spark提供的spark应用历史数据查询服务,可以通过history server页面查看已经运行结束的spark应用的所有job执行情况,用于分析,因为spark集群保存的spark应用数量和每个应用的job数量有一定的限制,对于时间比较久远的应用或者应用的job数据无法在spark的web ui查看到并进行分析。所以spark提供了history s...

2018-05-13 17:50:42 1319

原创 spark源码分析—spark core(一):集群启动

spark集群通过spark的start-all.sh脚本进行启动,所以首先我们看一下该脚本的内容,该脚本内容很简单,它会通过调用相同目录下的start-master.sh脚本启动spark Master服务,调用start-slaves.sh脚本启动spark Worker服务。大家注意start-master.sh脚本只会在调用该脚本的机器启动Mater服务,如果Master是HA的话,需要到...

2018-05-13 17:41:46 403

原创 JavaScript中的this关键字

this是js的一个关键字,也是js种最复杂的机制之一,它被自动定义在所有函数的作用域中。this的优势在哪里,为什么要用this?先看一个实例:```function identify() {    return this.name.toUpperCase();}function speak() {    var greeting = "Hello, I'm " + identify.call(...

2018-05-13 17:33:12 381

原创 spark源码分析— spark广播变量

spark广播变量是spark中一种只读的数据,广播的数据被集群不同节点共享,且默认存储在内存中,读取速度比较快。spark内部有很多地方都使用的广播变量功能,比如spark sql的join有一种broadcast join,就是使用广播变量实现的小表join的优化;spark提交job时,将task的依赖关系广播到集群等。接下来,分析一下,spark广播变量的实现细节:```val broad...

2018-05-06 14:02:18 1105 1

原创 你不知道的js(一)--作用域与闭包

我们知道编程语言都有变量,变量用来存储值,并能对变量的值进行修改。但是这些值存在哪里?程序如何找到它们?这需要一套设计良好的规则来存储变量,并方便的找到这些变量,这套规则被称为作用域。比如代码 var a = 2;js会如何解释这段代码?编译器会将这段代码分成两个操作进行处理。首先处理var a,编译器会询问作用域是否有一个该名称的变量存在于同一个作用域的集合中,如果有,编译器会忽略该声明继续编译;

2018-04-02 23:33:08 162

翻译 Java解惑--一、表达式之谜

1、奇数性下面的方法是否能确定其参数是否为奇数:public static boolean isOdd(int i) { return i % 2 == 1;}奇数可定义为被2整除余数为1的整数,因此上面的方法看起来可行。但是很遗憾,在四分之一的时间里它返回的都是错误答案。 为什么是四分之一呢?因为在所有int数值中,有一半是负数,而isOdd方法对所有的付奇数的判断都会失败。 其实,

2017-07-29 21:50:49 480

空空如也

空空如也

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

TA关注的人

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