- 博客(30)
- 资源 (29)
- 收藏
- 关注
转载 Spark源码系列(二)RDD详解 - 岑玉海
1、什么是RDD?上一章讲了Spark提交作业的过程,这一章我们要讲RDD。简单的讲,RDD就是Spark的input,知道input是啥吧,就是输入的数据。RDD的全名是Resilient Distributed Dataset,意思是容错的分布式数据集,每一个RDD都会有5个特征:1、有一个分片列表。就是能被切分,和hadoop一样的,能够切分的数据才能并行计算。
2016-05-31 15:41:31 1117
转载 学习Scala:孤立对象的实现原理
在关于Scala的第一篇文章 学习Scala:从HelloWorld开始 中, 我们讲述了Scala的HelloWorld程序的执行原理。在Scala中,程序的入口使用孤立对象来实现, 在这篇博客中, 我们讲述了孤立对象是如何实现程序入口的, 不管Scala和Java的语法差别多大, 只要能以一定的方式实现标准的class文件入口类和入口函数, 就能被JVM执行。感兴趣的读者可以移步这篇博客。
2016-05-31 14:50:29 488
转载 Spark自定义分区(Partitioner)
我们都知道Spark内部提供了HashPartitioner和RangePartitioner两种分区策略(这两种分区的代码解析可以参见:《Spark分区器HashPartitioner和RangePartitioner代码详解》),这两种分区策略在很多情况下都适合我们的场景。但是有些情况下,Spark内部不能符合咱们的需求,这时候我们就可以自定义分区策略。为此,Spark提供了相应的接口,我们只
2016-05-31 14:26:06 1213
转载 Spark函数讲解:coalesce
函数原型1defcoalesce(numPartitions:Int, shuffle:Boolean =false)2 (implicitord:Ordering[T] =null):RDD[T] 返回一个
2016-05-31 11:49:53 4712
转载 在CentOS 7上安装Kafka
简介Kafka 是一种高吞吐的分布式发布订阅消息系统,能够替代传统的消息队列用于解耦合数据处理,缓存未处理消息等,同时具有更高的吞吐率,支持分区、多副本、冗余,因此被广泛用于大规模消息数据处理应用。Kafka 支持Java 及多种其它语言客户端,可与Hadoop、Storm、Spark等其它大数据工具结合使用。本教程主要介绍Kafka 在Centos 7上的安装和使用,包括功能验证
2016-05-25 11:59:33 16339 1
转载 apache kafka技术分享系列(目录索引)
目录索引:Kafka使用场景1.为何使用消息系统2.我们为何需要搭建Apache Kafka分布式系统3.消息队列中点对点与发布订阅区别kafka开发与管理:1)apache kafka消息服务2)kafak安装与使用3)apache kafka中server.properties配置文件参数说明4)Apa
2016-05-24 13:57:44 1072
转载 java.lang.OutOfMemoryError: unable to create new native thread
工作中碰到Java程序报错,无法创建本地线程。在这里总结一下。思路1, 通过ulimit指令限制 shell 多线程程序堆栈的大小,达到增加可用线程数量的目的个例子取自于一个真实的案例。我们所遇到的问题是系统对我们的多线程程序有如下的限制:ulimit -v 200000根据本文前面的介绍,这意味着我们的程序最多只能使用不到 200MB 的虚拟内存。由于我们的程序是
2016-05-23 14:30:04 8030
转载 GC学习笔记
这是我公司同事的GC学习笔记,写得蛮详细的,由浅入深,循序渐进,让人一看就懂,特转到这里。一、GC特性以及各种GC的选择1、垃圾回收器的特性2、对垃圾回收器的选择2.1 连续 VS. 并行2.2 并发 VS. stop-the-world2.3 压缩 VS. 不压缩 VS. 复制二、GC性能指标三、分代回收四、J2SE 5.0
2016-05-22 22:29:56 541
转载 线上某应用的FULLGC分析
这2天,排除线上某应用启动内存变化频繁的问题时,额外发现了一个fullgc的问题,分享给大家。过程如下:抽了台线上机器,想看下这段时间机器的gc情况,发现里面有好几个FullGc的日志:T23:23:02.009+0800: 21860.015: [Full GC 21860.015: [CMS: 2361237K->1111804K(4718592K), 4
2016-05-22 22:28:23 3713
转载 Spark SQL中的broadcast join分析
转自:https://blog.csdn.net/dabokele/article/details/65963401 在Spark-1.6.2中,执行相同join查询语句,broadcast join模式下,DAG和执行时间如下图所示: 1、broadcast join (1)DAG (2)执行时间122 rows selected (22.709 seconds)1 2、非...
2016-05-20 11:11:58 2936
转载 Spark Scheduler内部原理剖析
通过文章“Spark核心概念RDD”我们知道,Spark的核心是根据RDD来实现的,Spark Scheduler则为Spark核心实现的重要一环,其作用就是任务调度。Spark的任务调度就是如何组织任务去处理RDD中每个分区的数据,根据RDD的依赖关系构建DAG,基于DAG划分Stage,将每个Stage中的任务发到指定节点运行。基于Spark的任务调度原理,我们可以合理规划资源利用,做到尽可能...
2016-05-20 11:07:44 1314
转载 Scala 专题教程-Case Class和模式匹配(1):简单的示例
本专题侧重介绍Scala的case class和pattern matching(模式匹配),这俩个两个程序结构对于处理树结构的数据非常有帮助。Scala的case class使得对对象进行模式匹配变得非常方便,简单的来说,Scala的case class就是在普通的类定义前加case这个关键字,然后你可以对这些类来模式匹配。 在我们详细介绍Scala的Case class和模式匹配之前,我们
2016-05-18 17:07:06 1094
原创 Scala 课堂!
其他语言版本: English Русский关于Scala课堂是Twitter启动的一系列讲座,用来帮助有经验的工程师成为高效的Scala 程序员。Scala是一种相对较新的语言,但借鉴了许多熟悉的概念。因此,课程中的讲座假设听众知道这些概念,并展示了如何在Scala中使用它们。我们发现这是一个让新工程师能够快速上手的有效方法。网站里的是伴随这些讲座的书面材料,这些文字材料本身也
2016-05-17 17:47:50 600
转载 Effective Scala
Marius Eriksen, Twitter Inc.marius@twitter.com (@marius)[translated by hongjiang(@hongjiang), tongqing(@tongqing)]Table of Contents序言格式化: 空格, 命名, Imports, 花括号, 模式匹配, 注释类型和泛型: 返回类型注解(anno
2016-05-17 17:47:03 771
转载 Spark On YARN内存分配
本文主要了解Spark On YARN部署模式下的内存分配情况,因为没有深入研究Spark的源代码,所以只能根据日志去看相关的源代码,从而了解“为什么会这样,为什么会那样”。说明按照Spark应用程序中的driver分布方式不同,Spark on YARN有两种模式: yarn-client模式、yarn-cluster模式。当在YARN上运行Spark作业,每个Spark
2016-05-17 15:36:01 6472
转载 弹性分布式数据集RDD概述
弹性分布数据集RDDRDD(Resilient Distributed Dataset)是Spark的最基本抽象,是对分布式内存的抽象使用,实现了以操作本地集合的方式来操作分布式数据集的抽象实现。RDD是Spark最核心的东西,它表示已被分区,不可变的并能够被并行操作的数据集合,不同的数据集格式对应不同的RDD实现。RDD必须是可序列化的。RDD可以cache到内存中,每次对RDD数据集的操作
2016-05-17 15:17:42 892
转载 spark 内存管理
从Spark 1.6版本开始,Spark采用Unified Memory Management这样一种新的内存管理模型。Spark中的内存使用分为两部分:执行(execution)与存储(storage)。执行内存主要用于shuffles、joins、sorts和aggregations,存储内存则用于缓存或者跨节点的内部数据传输。在Spark 1.6之前,这两部分内存的分配是静态的,以配
2016-05-17 15:16:08 8680 1
转载 Spark on yarn的内存分配问题
问题描述在测试spark on yarn时,发现一些内存分配上的问题,具体如下。在$SPARK_HOME/conf/spark-env.sh中配置如下参数:SPARK_EXECUTOR_INSTANCES=4 在yarn集群中启动的executor进程数SPARK_EXECUTOR_MEMORY=2G 为每个execu
2016-05-17 15:02:57 5822
转载 Apache Spark Jobs 性能调优(二)
原文地址:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/Apache Spark Jobs 性能调优(二)调试资源分配调试并发压缩你的数据结构数据格式在这篇文章中,首先完成在 Part I 中提到的一些东西。作者将尽量覆盖
2016-05-17 15:01:21 907
转载 Spark 1.6 内存管理模型( Unified Memory Management)分析
2016年1月4号 Spark 1.6 发布。提出了一个新的内存管理模型: Unified Memory Management。这篇文章会详细分析新的内存管理模型,方便大家做调优。前言新的内存模型是在这个Jira提出的,JIRA-10000,对应的设计文档在这:unified-memory-management。贴出这个文档是为了让大家可以更深入的了解这个新的模型的设计动机,社区想
2016-05-17 15:00:38 925
原创 Spark 内存架构
作者本人经常在StackOverflow上回答一个关系Spark架构的问题,发现整个互联网都没有一篇文章能对Spark总体架构进行很好的描述,作者可怜我们这些菜鸟,写了这篇文章,太感动了。本文读者需要一定的Spark的基础知识,至少了解Spark的RDD和DAG。上图引入了很多术语:"Executor","Task","Cache","Worker Node"等等,当我开始学习
2016-05-17 14:50:22 4804
转载 Spark1.6内存管理模型设计稿-翻译
Spark1.6在2016年1月发布,其中包含内存模型的优化,将之前shuffle、storage、other内存静态配置的方式,修改为动态抢占式。其对应设计稿中,包含了多种折衷和思考,对于理解新老版本内存模型都很有好处,故翻译如下。其中部分专有名词维持英文。英文原文地址:https://issues.apache.org/jira/secure/attachment/12765646/u
2016-05-17 14:49:10 969
转载 深入理解groupByKey、reduceByKey
测试源码下面来看看groupByKey和reduceByKey的区别: val conf = new SparkConf().setAppName("GroupAndReduce").setMaster("local") val sc = new SparkContext(conf) val words = Array("one", "two", "two", "th
2016-05-16 11:21:19 5426
转载 细数Scala下划线“_”的用法
第一:初始化的时候。object Sample { var name:String=_ def main (args: Array[String]){ name="hello world" println(name) }在这里,name也可以声明为null,例:var name:String=null。这里的下划线和null的作用是一样的。
2016-05-16 11:13:16 1386
原创 Spark RDD API详解(一) Map和Reduce
RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本文为第一部分,将介绍S
2016-05-16 11:02:34 1408
转载 Scala 的 "匿名函数"与 "闭包"!
有这样一个函数, 它接受一个函数(或者说闭包)作为参数:object Timer{ def oncePerSecond(callback: () => unit): unit = { while (true){ callback() Thread.sleep(1000) } } def timeFlies(): unit
2016-05-16 10:53:13 1449
转载 Scala 中的 apply 和 update 方法
Scala 是构建在 JVM 上的静态类型的脚本语言,而脚本语言总是会有些约定来增强灵活性。灵活性可以让掌握了它的人如鱼得水,也会让初学者不知所措。比如说 Scala 为配合 DSL 在方法调用时有这么一条约定:在明确了方法调用的接收者的情况下,若方法只有一个参数时,调用的时候就可以省略点及括号。如 “0 to 2”,实际完整调用是 “0.to(2)”。但 “println(2)” 不
2016-05-12 17:34:00 1696 1
rpmbuild-demo工程
2015-01-21
Weka源代码详细分析系列
2012-05-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人