07 2016 档案

摘要:Spark Tungsten揭秘 Day1 jvm下的性能优化 今天开始谈下Tungsten,首先我们需要了解下其背后是符合了什么样的规律。 jvm对分布式天生支持 整个Spark分布式系统是建立在分布式jvm基础上的,jvm非常伟大的一点在于把不同机器的计算能力联合起来了,jvm也把不同机器的存储 阅读全文
posted @ 2016-07-31 07:18 哎哟慰 阅读(646) 评论(0) 推荐(0)
摘要:Spark机器学习 Day2 快速理解机器学习 有两个问题: 1. 机器学习到底是什么。 2. 大数据机器学习到底是什么。 机器学习到底是什么 人正常思维的过程是根据历史经验得出一定的规律,然后在当前情况下根据这种规律来预测当前的情况下该怎么做,这种过程就是一个机器学习的过程。 我们可以发现,这个过 阅读全文
posted @ 2016-07-29 21:10 哎哟慰 阅读(260) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day8 Final 外部数据源和缓存系统 今天是Catalyst部分的收官,主要讲一些杂项内容。 外部数据源处理 什么叫外部数据源,是SparkSql自己支持的一些文件格式,以及一些自己自定义格式的文件开发。 让我们从文件的读取api开始,可以看到最终会创建一个DataFra 阅读全文
posted @ 2016-07-29 20:56 哎哟慰 阅读(308) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day7 SQL转为RDD的具体实现 从技术角度,越底层和硬件偶尔越高,可动弹的空间越小,而越高层,可动用的智慧是更多。Catalyst就是个高层的智慧。 Catalyst已经逐渐变成了所有Spark框架的解析优化引擎,RDD是通用抽象的数据结果,RDD+Catalyst就构成 阅读全文
posted @ 2016-07-28 19:31 哎哟慰 阅读(329) 评论(0) 推荐(0)
摘要:Spark机器学习 Day1 机器学习概述 今天主要讨论个问题:Spark机器学习的本质是什么,其内部构成到底是什么。 简单来说,机器学习是数据+算法。 数据 在Spark中做机器学习,肯定有数据来源,在Spark的最底层肯定是RDD封装,这个和Spark具体是什么版本没有任何关系,版本发展只不过是 阅读全文
posted @ 2016-07-28 18:58 哎哟慰 阅读(266) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day6 Physical plan解析 物理计划是Spark和Sparksql相对比而言的,因为SparkSql是在Spark core上的一个抽象,物理化就是变成RDD,是SparkSql和Spark core之间的衔接点。 Physical Plan也是Catalyst变 阅读全文
posted @ 2016-07-25 22:17 哎哟慰 阅读(303) 评论(0) 推荐(0)
摘要:Spark小课堂Week6 启动日志详解 作为分布式系统,Spark程序是非常难以使用传统方法来进行调试的,所以我们主要的武器是日志,今天会对启动日志进行一下详解。 日志详解 今天主要遍历下Streaming的启动日志。 授权等操作 有中心式架构,元数据服务叫Driver,这里是启动了一个akka服 阅读全文
posted @ 2016-07-24 14:52 哎哟慰 阅读(1374) 评论(0) 推荐(0)
摘要:Spark小课堂Week5 Scala初探 Scala是java威力加强版。 对Java的改进 这里会结合StreamingContext.scala这个代码说明下对Java的改进方面。 方便测试方式,增加了可以指定位置的作用域。 成员变量声明,构造方法,get、set方法一体化。 []表示泛型,不 阅读全文
posted @ 2016-07-24 14:49 哎哟慰 阅读(324) 评论(0) 推荐(0)
摘要:Spark小课堂Week4 从控制台看Spark逻辑结构 层级关系: 从监控控制台,我们可以看到如下关系: 一个 Job 包含 n Stage 一个 Stage 包含 n Task Job0解决什么问题? 在控制台,有一个Job0,负责进行数据接收。 其实这个程序并没有分布式的需求,为什么要采用Jo 阅读全文
posted @ 2016-07-24 14:36 哎哟慰 阅读(358) 评论(0) 推荐(0)
摘要:Spark小课堂Week3 FirstSparkApp(代码优化) RDD代码简化 对于昨天练习的代码,我们可以从几个方面来简化: 1. 使用fluent风格写法,可以减少对于中间变量的定义。 2. 使用lambda表示式来替换对象写法,可以使用到类型推断功能,减少对于类型的定义。 优化后代码如下: 阅读全文
posted @ 2016-07-24 14:17 哎哟慰 阅读(274) 评论(0) 推荐(0)
摘要:Spark小课堂Week3 FirstSparkApp 问题:Java有哪些数据结构 大致有如下几种,其中List与Map是最重要的: List Map Set Array Heap Stack Queue Tree 练习:构造一个1 5的List,把他们打印出来 写法1 几点说明: 1. iter 阅读全文
posted @ 2016-07-24 14:14 哎哟慰 阅读(306) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day5 optimizer解析 Optimizer是目前为止中catalyst中最重要的部分。主要作用是把analyzed logicalPlan变成optimized LogicalPlan。optimizer和analyzer都继承自RuleExecutor。所以表现形式 阅读全文
posted @ 2016-07-24 14:13 哎哟慰 阅读(414) 评论(0) 推荐(1)
摘要:Spark小课堂Week2 Hello Streaming 我们是怎么进行数据处理的? 批量方式处理 目前最常采用的是批量方式处理,指非工作时间运行,定时或者事件触发。这种方式的好处是逻辑简单,不影响联机业务,但是性能不行。 理想方式 对于数据处理的问题,我们的最终理想解,应该是满足业务规则正确的情 阅读全文
posted @ 2016-07-24 08:28 哎哟慰 阅读(256) 评论(0) 推荐(0)
摘要:Spark小课堂Week1 Hello Spark 看到Spark这个词,你的第一印象是什么? 这是一朵"火花",官方的定义是Spark是一个高速的、通用的、分布式计算系统!!! 用途:进行大数据计算,这里要注意,大数据是一个相对概念,并没有绝对的量化指标,一般我们认为在业务特定场景要求下,一台机器 阅读全文
posted @ 2016-07-24 07:54 哎哟慰 阅读(281) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day4 analyzer解析 今天继续解析catalyst,主要讲一下analyzer,在sql语句的处理流程中,analyzer是在sqlparse的基础上,把unresolved logical plan生成logcal plan。 Analyzer定义 在analyze 阅读全文
posted @ 2016-07-23 19:59 哎哟慰 阅读(387) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day3 sqlParser解析 今天我们会进入catalyst引擎的第一个模块sqlparser,它是catalyst的前置模块。 树形结构 从昨天的介绍我们可以看到sqlParser会返回一个logicalPlan,它是TreeNode的子类。 TreeNode,作为一个树 阅读全文
posted @ 2016-07-23 13:02 哎哟慰 阅读(920) 评论(0) 推荐(0)
摘要:Catalyst揭秘 Day2 Catalyst源码初探 这节课从源码角度来讲catalyst。 首先有一个观点要澄清,就是技术不是越底层就越是性能和效率更高。因为除了指令执行性能以外,更重要的是架构层次,里面的核心是数据和代码的本地性问题。如果是能在内存中或者多线程运行,很多时候Java会比C语言 阅读全文
posted @ 2016-07-22 19:46 哎哟慰 阅读(383) 评论(0) 推荐(1)
摘要:Catalyst揭秘 Day1 Catalyst本地解析 今天开始讲下Catalyst,这是我们必须精通的内容之一: 1. 在Spark2.x中,主要会以Dataframe和DataSet为api,无论是Dataframe和DataSet,底层都依赖Catalyst和Tungsten。 2. 根据官 阅读全文
posted @ 2016-07-19 23:03 哎哟慰 阅读(468) 评论(0) 推荐(0)
摘要:Spark Streaming揭秘 Day35 Spark core思考 Spark上的子框架,都是后来加上去的。都是在Spark core上完成的,所有框架一切的实现最终还是由Spark core来做的。抛开任何具体的东西,现在考虑下Spark core是个什么东西。 解析rdd 程序就是数据+代 阅读全文
posted @ 2016-07-17 14:41 哎哟慰 阅读(790) 评论(1) 推荐(1)
摘要:Spark Streaming揭秘 Day34 解析UI监听模式 今天分享下SparkStreaming中的UI部分,和所有的UI系统一样,SparkStreaming中的UI系统使用的是监听器模式。监听器模式是指,首先注册事件源,当事件或者数据发生改变时,监听器就会接收到这个改变,并对这种改变做出 阅读全文
posted @ 2016-07-13 22:06 哎哟慰 阅读(1333) 评论(0) 推荐(0)
摘要:Spark Streaming揭秘 Day33 checkpoint的使用 今天谈下sparkstreaming中,另外一个至关重要的内容Checkpoint。 首先,我们会看下checkpoint的使用。另外,会看下在应用程序重新启动时,是如何处理checkpoint的。 Checkpoint保存 阅读全文
posted @ 2016-07-12 19:47 哎哟慰 阅读(6862) 评论(0) 推荐(0)
摘要:Spark Streaming揭秘 Day32 WAL框架及实现 今天会聚焦于SparkStreaming中非常重要的数据安全机制WAL(预写日志)。 设计要点 从本质点说,WAL框架是一个存储系统,可以简单的认为是一个文件系统,其作用类似于BlockManager, 我们首先看一下官方的说明: 这 阅读全文
posted @ 2016-07-10 20:39 哎哟慰 阅读(1666) 评论(0) 推荐(0)
摘要:Kakfa揭秘 Day9 KafkaReceiver源码解析 上一节课中,谈了Direct的方式来访问kafka的Broker,今天主要来谈一下,另一种方式,也就是KafkaReceiver。 初始化 Direct和普通Receiver方式,最大的区别,是元数据的管理方式。 Direct方式是没有通 阅读全文
posted @ 2016-07-10 13:26 哎哟慰 阅读(723) 评论(0) 推荐(0)
摘要:Kakfa揭秘 Day8 DirectKafkaStream代码解析 今天让我们进入SparkStreaming,看一下其中重要的Kafka模块DirectStream的具体实现。 构造Stream 首先,从工厂方法开始,在工厂方法createDirectStream中,有两类关键内容: 1. fr 阅读全文
posted @ 2016-07-09 15:42 哎哟慰 阅读(2004) 评论(0) 推荐(0)
摘要:Kakfa揭秘 Day7 Producer源码解密 今天我们来研究下Producer。Producer的主要作用就是向Kafka的brokers发送数据。从思考角度,为了简化思考过程,可以简化为一个单机版本的消息队列,只是这个消息队列在远程。 Producer.java 让我们从官方的Exampl 阅读全文
posted @ 2016-07-03 20:58 哎哟慰 阅读(410) 评论(0) 推荐(1)
摘要:Kakfa揭秘 Day6 Consumer源码解密 今天主要分析下Consumer是怎么来工作的,今天主要是例子出发,对整个过程进行刨析。 简单例子 Example中Consumer.java是一个简单的例子: 首先,是有一些重要的参数: MAX_POLL_RECORDS_CONFIG 表示一次获取 阅读全文
posted @ 2016-07-02 11:25 哎哟慰 阅读(656) 评论(0) 推荐(1)