自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (3)
  • 收藏
  • 关注

原创 56:Spark中的Tungsten内存和CPU的优化使用

本期内容:1. Tungsten内存分配优化使用2. Tungsten的CPU的优化使用今天聚焦于内存和CPU的优化使用,这是Spark2.0提供的关于执行时的非常大的优化部分。对过去的代码研究,我们会发现,抽象的提高,转过来会变成对CPU和内存的使用。也就是说,抽象提升,会对内存对CPU会有很多不必要的使用,执行很多无谓的没有实际作用的操作。比如面向接口调用,就是使用

2016-08-07 18:45:10 927

原创 55:Spark中的Tungsten内存分配和管理内幕

本期内容1. Tungsten内存分配内幕2. Tungsten内存管理内幕内存分配和管理内幕恭喜Spark2.0发布,今天会看一下2.0的源码。今天会讲下Tungsten内存分配和管理的内幕。Tungsten想要工作,要有数据源和数据结构,这时候会涉及到内存管理,而内存管理也是后续做很多分析和逻辑控制的基础。内存分配我们从内存分配的入口Memory

2016-08-07 18:44:39 1184

原创 54:Spark中的Tungsten-sort Based Shuffle内幕

本期内容:1. Tungsten-sort Based Shuffle原理2. Tungsten-sort Based Shuffle源码ShortShuffleManagerMemoryManagerShuffleExternalSorterTungsten-sort Based Shuffle今天在对钨丝计划思考的基础上,讲解下基于Tungste

2016-08-07 18:44:15 914

原创 53:Spark中Tungsten深度思考

本期内容:1. 关于OS、JVM与大数据2. JVM下的性能优化jvm对分布式天生支持整个Spark分布式系统是建立在分布式jvm基础上的,jvm非常伟大的一点在于把不同机器的计算能力联合起来了,jvm也把不同机器的存储能力连接起来了。jvm是怎么做到这一点的,jvm本身就是一个软件,有自己的通讯方式以及自己的一套协议,在进行java或者scala开发的时候,就

2016-08-07 18:43:30 675

原创 52:Spark中的新解析引擎Catalyst源码中的外部数据源、缓存及其它

本期内容:1. Catalyst中的外部数据源2. Catalyst中的缓存3. 其它外部数据源处理什么叫外部数据源,是SparkSql自己支持的一些文件格式,以及一些自己自定义格式的文件开发。让我们从文件的读取api开始,可以看到最终会创建一个DataFrame,当中比较关键的是relation方法。首先,会以反射方式获取provider。

2016-08-07 18:42:59 742

原创 51:Spark中的新解析引擎Catalyst源码SQL最终转化为RDD具体实现

本期内容:1.  框架与RDD2. Physical Plan与RDD从技术角度,越底层和硬件偶尔越高,可动弹的空间越小,而越高层,可动用的智慧是更多。Catalyst就是个高层的智慧。Catalyst已经逐渐变成了所有Spark框架的解析优化引擎,RDD是通用抽象的数据结果,RDD+Catalyst就构成了Spark的新底层。Catalyst是在RDD

2016-08-07 18:42:15 561

原创 50:Spark中的新解析引擎Catalyst源码Physical Plan彻底详解

本期内容:1. SparkPlanner的基本工作机制2. Physical Plan源码彻底详解物理计划是Spark和Sparksql相对比而言的,因为SparkSql是在Spark core上的一个抽象,物理化就是变成RDD,是SparkSql和Spark core之间的衔接点。Physical Plan也是Catalyst变成Spark作业的最

2016-08-07 18:41:50 958

原创 49:Spark中的新解析引擎Catalyst源码Optimizer彻底详解

本期内容:1. Optimizer的基本工作机制2. Optimizer源码彻底详解Optimizer是目前为止中catalyst中最重要的部分。主要作用是把analyzed logicalPlan变成optimized LogicalPlan。optimizer和analyzer都继承自RuleExecutor。所以表现形式上都差不多。在analyzer基

2016-08-07 18:41:21 887

原创 48:Spark中的新解析引擎Catalyst源码Analyzer彻底详解

本期内容:1. Analyzer的基本工作机制2. Analyzer源码彻底详解在sql语句的处理流程中,analyzer是在sqlparse的基础上,把unresolved logical plan生成logcal plan。Analyzer定义在analyzer构造的时候,会传入catalog和functionRegistry,其中catelog用来存放用户

2016-08-07 18:40:29 774

原创 47:Spark中的新解析引擎Catalyst源码SqlParser彻底详解

本期内容:1. SqlParser的基本工作机制2. SqlParser源码彻底详解把DataFrame、DataSet变成树。Spark中哟很多结构是树结构。树形结构从前面的介绍,我们可以看到sqlParser会返回一个logicalPlan,它是TreeNode的子类。TreeNode,作为一个树形抽象类,SQL语法的解析的时候,所有的元素都是T

2016-08-07 18:39:57 2544

原创 46:Spark中的新解析引擎Catalyst源码初探

本期内容:1. SQLContext2. Catalyst核心组件源码SQLContext基于SparkContext。Spark应用程序中可以有多个SparkContext。allowMultipleContextsCatalog类SqlParserAnalyzer:最原始的语法的解析Optimizer:优化器

2016-08-07 18:39:29 829

原创 45:神速理解Spark中的新解析引擎Catalyst

本期内容:1. Catelyst本地解析2. Catalyst流程精彩解析Catalyst是Spark SQL中的一套函数式关系查询优化框架。在Catalyst的帮助下,Spark SQL的开发者们只需编写极为精简直观的申明式代码,即可实现各种复杂的查询优化策略,从而大大降低了Spark SQL查询优化器的开发复杂度,也加快了项目整体的迭代速度。 Spark 2.X是以

2016-08-07 18:39:03 1088

原创 44:Spark Streaming之Spark内核回顾思考

本期内容:1. Spark Streaming与Spark Core2. Spark Core思考Spark上的子框架,都是后来加上去的。都是在Spark core上完成的,所有框架一切的实现最终还是由Spark core来做的。抛开任何具体的东西,现在考虑下Spark core是个什么东西。解析rdd程序就是数据+代码。所以首先,我们需要考虑s

2016-08-07 18:38:44 802

原创 43:Spark Streaming中UI内幕实现彻底解密

本期内容:1. Spark Streaming中UI的监听模式2. Spark Streaming中UI具体源码解析解析UI监听模式今天分享下SparkStreaming中的UI部分,和所有的UI系统一样,SparkStreaming中的UI系统使用的是监听器模式。监听器模式是指,首先注册事件源,当事件或者数据发生改变时,监听器就会接收到这个改变,并对这种改变做出响应,监听器模

2016-08-07 18:37:54 1277 6

原创 42:Spark Streaming中checkpoint内幕实现彻底解密

本期内容:1. Spark Streaming中Checkpoint的使用2. Spark Streaming张应用程序的重新启动今天谈下sparkstreaming中,另外一个至关重要的内容Checkpoint。首先,我们会看下checkpoint的使用。另外,会看下在应用程序重新启动时,是如何处理checkpoint的。Checkpoint保存什么

2016-08-07 18:13:51 2041 9

原创 41:Spark Streaming中WAL内幕实现彻底解密

本期内容:1. WAL框架和实现2. Spark Streaming中WAL的使用从本质点说,WAL框架是一个存储系统,可以简单的认为是一个文件系统,其作用类似于BlockManager。我们首先看一下官方的说明:这里有三个要点:总体上,SparkStreaming是用WAL去保存接收到的数据,并且在写入数据后,要把元数据汇报给Drive

2016-08-07 18:03:21 1611 4

原创 40:Spark Streaming中KafkaReceiver内幕实现彻底解密

本期内容:1. KafkaInputDStream源码解密2. KafkaReceiver源码解密Direct方式,是No Receiver方式,和普通Receiver方式,最大的区别,是元数据的管理方式。Direct方式是没有通过zookeeper,由应用自身来管理。KafkaUtils.createDirectStream:  /**

2016-08-07 17:52:18 1715 4

原创 39:Spark Streaming中Direct Kafka内幕实现彻底解密

本期内容:1 Spark Streaming下Direct Kafka的实例2 Spark Streaming中Direct Kafka内幕Streaming5minWindow.java:KafkaUtils.createDirectStream:有多个。TopicAndPartitionKafkaCluster:connect、send、sendRequ

2016-07-11 10:51:18 537

原创 38:Kafka源码解读Producer工作机制内幕

本期内容:1 Producer代码示例2 Producer源码解密Partition分leader、followers。MokeAdClickedStats.java:ProducerConfig: topicMetadatsRefreshIntervalMsProducer: run、onCompletionKafkaProducer;pars

2016-07-11 10:50:45 455

原创 37:Kafka源码解读Consumer内幕解密

本期内容:1 Consumr代码示例2 Consumer源码解密文档中有Old High Level Consumer API。KafkaPropertiesConsumerConsumerConfigKafkaConsumerKafkaUtilsConsumerConnectorZookeeperConsumerConnector:createMe

2016-07-11 10:50:08 426

原创 36:Kafka源码解读SocketServer下的Acceptor、Processor、Handler

本期内容:1 SocketServer下的NIO2 Acceptor、Processor、Handler解析SocketServer:startup、n 本期内容:1 SocketServer下的NIO2 Acceptor、Processor、Handler解析SocketServer:startup、newProcessor、shutdow

2016-07-11 10:49:35 646

原创 35:Kafka源码解读中分区数、Consumer并行度等

本期内容:1 Kafka中分区深度解析2 Consumer并行度深度解析Partition.scala:Kafka完成稿吞吐性,是由于:1. 对顺序读写采用OS的page级别的缓存,而不是使用内存。2. Topic partition进行分布式KafkaServer:是一个NIO socket server。KafkaControllerpartitio

2016-07-11 10:48:47 655

原创 Spark定制班第34课:Kafka源码解读概述和入口类经典解读

本期内容:1 Kafka源吗概述2 Kafka入口类经典解读下载Kafka源码Kafka-0.10.0.0-src。ClientUtils...fetchTopicMetadata...cluster下的类:Cluster、Broker、...Comsumer下的类:SimpleConsumer、...producer下的类:Producer、...co

2016-07-11 10:48:10 536

原创 Spark定制班第33课:Kafka内核再解密

本期内容:1. Kafka:最快的消息系统2. Kafka内核内幕Kafka第一设计原则是消息的传送速度。3台普通的server可以达到百万条消息/秒。Kafka的消息存储能力是无限的。使用了的数据是保存在consumer上。分布式的实时消息来源。由于是在前面取出数据,在后面追加数据,无需加锁,磁盘顺序查询,寻道时间很快,比随机查询快很多,据说快一万倍。 可以有任意规模的pro

2016-06-28 18:38:51 457

原创 Spark定制班第32课:Kafka原理内幕和集群构建与测试实战

本期内容:1. Kafka原理内幕2. Kafka集群实战Spark Streaming是处理层面的,Kafka相当于流程控制和数据控制的层面。Kafka就是消息中间件。分布式的,可以扩展规模。可以对消息持久化。默认是7天,意思是,不管是否已消费,消息7天之后会被删除。有队列方式,也有发布者和订阅者方式。事务方面,kafka不行。是个粘合器,打破信息孤岛。Kafka观点

2016-06-24 10:12:58 652

原创 Spark定制班第31课:集群运行模式下的Spark Streaming调试和难点解决实战经验分享

本期内容:1. 集群模式下的Spark Streaming调试2. 集群模式下的Spark Streaming难点解决案例分享怎么找出前课想象的原因?每个batch duration内的处理中,saveAsTextFiles只有一个job。reduceByKey的并行度改为8,shuffle时也确实有8个task。虽然设置job并行度是1,但日志中显示每个batch d

2016-06-24 10:12:13 920

原创 Spark定制班第30课:集群运行模式下的Spark Streaming日志和Web监控台实战演示彻底解密

本期内容:1. 集群模式下的Spark Streaming日志2. 集群模式下的Spark Streaming Web监控台NetworkWordCount程序 batch duration设置300秒。job并行度为1。4个worker的集群。看web控制台知道,如果不输入数据,Receiver就没有计算任务。数据处理的任务中socket text strearm

2016-06-24 10:11:30 556

原创 Spark定制班第29课:深入理解Spark 2.x中的Structured Streaming内幕

本期内容:1. 新型的Spark Streaming思维2. Structured Streaming内幕Spark 2.0 仍有bug,不适合于生成环境。只用于测试。Spark 2.X提出了continuous application(连续的应用程序)的概念,非常重大。如图例所示,数据通过Kafka流进来,经过ETL,SS把数据看成一张表。一张没有边际的表、

2016-06-24 10:10:35 3473

原创 Spark定制班第28课:在集成开发环境中详解Spark Streaming的运行日志内幕

本期内容:1. Spark Streaming日志2. Spark Streaming在IDE中的日志分析 WordCountLine15秒钟的时间间隔日志中ForeachDStream先打印。SocketInputDStream storage level false,false,false,false,1但StorageLevel:remembe

2016-06-24 10:02:35 692

原创 Spark定制班第27课:Spark Streaming的为什么在DStream的Action操作之外也可能产生Job操作

本期内容:1. Spark Streaming产生Job的机制2. Spark Streaming的其它产生Job的方式 1. Spark Streaming产生Job的机制Scala程序中,函数可以作为参数传递,因为函数也是对象。有函数对象不意味着函数马上就运行。Spark Streaming中,常利用线程的run来调用函数,从而导致函数的最终运行。S

2016-06-24 10:01:23 1245

原创 Spark定制班第26课:Spark Streaming的JobGenerator源码图解

本期内容:1. JobGenerator源码2. JobGenerator图解第6课曾经对JobGenarator生成Job的主要流程进行过一些剖析。这次在原有基础上做一些补充。第6课给出了以下生成Job的相关类的主流程图:以下图也给出了JobGenerator的更多的工作流程供参考:JobGenerator用于从DStream产生作

2016-06-23 21:35:18 567

原创 Spark定制班第25课:Spark Streaming的StreamingContext启动及JobScheduler启动源码图解

本期内容:1. StreamingContext启动源码图解2. JobScheduler启动源码图解StreamingContext的start方法对INITIALIZED、ACTIVE、STOPPED等状态分别做不同处理。StreamingContext在INITIALIZED状态时,用validate方法对DStreamGraph、checkpoint等做有效检查,然

2016-06-12 12:38:43 551

原创 Spark定制班第24课:Spark Streaming的Transformation、Action、Input和Output源码图解

本期内容:1. Spark Streaming的Transformation、Action源码图解2. Spark Streaming的Input、Output源码图解StreamingContext成员:socketStream  /**   * Create a input stream from TCP source hostname:port

2016-06-12 12:37:25 825

原创 Spark定制班第23课:Spark Streaming初始化和关闭源码图解

本期内容:1. Spark Streaming初始化源码图解2. Spark Streaming关闭源码图解Spark Streaming的StreamingContext是采用装饰器模式,对SparkContext的封装。是在Spark Core的基础上加了一些功能,所有的实际上还是用Spark Core去实现。batchDuration是在Spark Core的基础上新

2016-06-12 12:36:02 1039

原创 Spark定制班第22课:Spark Streaming架构源码图解

本期内容:1. Spark Streaming再思考2. Spark Streaming架构源码图解Spark Streaming的基本架构可以类比食物的消化,来理解流数据的处理。Spark Streaming有多种数据源,流进Spark集群。Spark集群的Receiver收到通讯后,通过RPC通讯机制给Driver,Driver的DStream按照时间进

2016-06-12 12:34:24 543

原创 Spark定制班第21课:Spark Streaming中动态Batch Size深入及RateController解析

本期内容:1. 动态Batch Size深入2. RateController解析1. 动态Batch Size深入Dynamic Batch Size的方法实际在Spark Streaming中还没实现。论文中的解决方案:Fixex-point Iteration。论文中有个比较重要的图:基本思想:按100ms的批次发数据给Controll

2016-06-07 20:42:49 2333

原创 Spark定制班第20课:Spark Streaming中动态Batch Size实现初探

本期内容:1. Batch Duration与Process Time2. 动态Batch Size  不要低估Batch Duration与Process Time匹配的问题。两者关系不是线性规律。不是数据量大,就简单加大Batch Duration来解决问题。前面推荐的论文很重要。参加定制班,不是简单学编程,要懂得设计思想。  我们看论文是怎么实现动态Batch

2016-06-05 23:35:22 671

原创 Spark定制班第19课:Spark Streaming架构设计和运行机制大总结

本期内容:1. Spark Streaming中的架构设计和运行机制2. Spark Streaming的深度思考1. Spark Streaming中的架构设计和运行机制前面讨论过,Spark Streaming就是RDD加上了时间维度。RDD模板是DStream,DAG的模板是DStreamGraph。但实际上DStream上的操作和RDD上的操作并不是

2016-06-05 23:34:08 514

原创 Spark定制班第18课:Spark Streaming中空RDD处理及流处理程序优雅的停止

本期内容:1 Spark Streaming中的空RDD处理2 Spark Streaming程序的停止1 Spark Streaming中的空RDD处理     在Spark Streaming应用程序中,无论使用什么 DStream,底层实际上就是操作RDD。从一个应用程序片段开始,进行剖析:...    val lines = ss

2016-06-05 23:33:25 1827

原创 Spark定制班第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析

Spark是粗粒度的,即在默认情况下会预先分配好资源,在进行计算。好处是资源提前分配好,有计算任务时就直接使用使用计算资源,不用再考虑资源分配。不好的地方是,有高峰值和低峰值时的资源不一样的。资源如果是针对高峰值情况下考虑的,那势必在低峰值情况下会有大量的资源浪费。Twitter最近推出了会秒杀Storm的Heron,非常值得关注。因为Heron能有更好的资源分配、 更低的延迟。Her

2016-05-29 07:20:09 2463

闭包权威指南

Google在开发Gmail、电子地图等交互应用时使用的javascript库的使用和开发技术。

2012-09-22

高性能JavaScript编程

高性能JavaScript编程 中英对照版

2012-09-20

JavaScript权威指南(第6版)

JavaScript开发的最新权威著作,更有针对HTML5、服务端的开发的内容

2012-09-20

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

TA关注的人

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