Spark
文章平均质量分 76
贾诩是也
走过很多弯路,一直坚强、执着的眺望着远方、、、一个听着小米布斯故事成长起来的老码农。不忘初心,方得始终、、、给自己鼓劲加油,为这个时代华丽的时代喝彩!
展开
-
用Apache Spark进行大数据处理之Spark流(3)
介绍在“用Apache Spark进行大数据处理”系列的前两篇文章中,我们看到了Apache Spark框架是什么(第一部分)还有如何使用Spark SQL库访问数据的SQL接口(第二部分)。这些方案是基于批处理模式下静态信息处理的,比如作为一个按小时或天运行的任务。但若是在数据驱动的业务决策场景下,当需要飞快地分析实时数据流以执行分析并创建决策支持时,又该如何呢?使用流式数据处理转载 2017-07-30 09:53:41 · 336 阅读 · 0 评论 -
用Apache Spark进行大数据处理之Machine Learning(4)
本文是《Spark大数据处理》系列的第四篇,其他三篇:Spark介绍、Saprk SQL和Spark Streaming。最近几年,机器学习、预测分析和数据科学主题得到了广泛的关注。Spark的机器学习库(Spark MLlib),包括各种机器学习算法:协同过滤算法、聚类算法、分类算法和其他算法。在前面的《Spark大数据处理》系列文章,介绍Apache Spark框架,介绍如何使用S转载 2017-07-30 09:54:08 · 760 阅读 · 0 评论 -
用Apache Spark做大数据处理之Spark机器学习(5)
关键点:了解机器学习数据流水线有关内容。 怎么用Apache Spark机器学习包来实现机器学习数据流水线。数据价值链处理的步骤。 Spark机器学习流水线模块和API。 文字分类和广告检测用例。 在之前的“用Apache Spark做大数据处理”系列文章中,我们学习了Apache Spark框架,介绍了Spark和它用作大数据处理的不同库(第一部分),Spark SQL库转载 2017-07-30 09:54:34 · 673 阅读 · 0 评论 -
用Apache Spark进行大数据处理之用Spark GraphX图数据分析(6)
本文要点学习图数据处理和分析用Apache Spark GraphX库进行图数据分析图类算法,如PageRank、Connected Components和Triangle CountingSpark GraphX组件和APISpark GraphX应用举例这是“用Apache Spark进行大数据处理”系列文章的第六篇。其他文章请参考:第一部分:介绍,第二部分:Spark S转载 2017-07-30 09:54:47 · 1425 阅读 · 0 评论 -
使用Spark Streaming + Kudu + Impala构建一个预测引擎
随着用户使用天数的增加,不管你的业务是扩大还是缩减了,为什么你的大数据中心架构保持线性增长的趋势?很明显需要一个稳定的基本架构来保障你的业务线。当你的客户处在休眠期,或者你的业务处在淡季,你增加的计算资源就处在浪费阶段;相对应地,当你的业务在旺季期,或者每周一每个人对上周的数据进行查询分析,有多少次你忒想拥有额外的计算资源。根据需求水平动态分配资源 VS 固定的资源分配方式,似乎不太好实现。幸翻译 2017-07-30 09:59:30 · 5768 阅读 · 1 评论 -
京东基于Spark的风控系统架构实践和技术细节
1.背景互联网的迅速发展,为电子商务兴起提供了肥沃的土壤。2014年,中国电子商务市场交易规模达到13.4万亿元,同比增长31.4%。其中,B2B电子商务市场交易额达到10万亿元,同比增长21.9%。这一连串高速增长的数字背后,不法分子对互联网资产的觊觎,针对电商行业的恶意行为也愈演愈烈,这其中,最典型的就是黄牛抢单囤货和商家恶意刷单。黄牛囤货让广大正常用户失去了商家给予的优惠让利;而商家的刷转载 2017-07-31 00:07:26 · 1138 阅读 · 0 评论 -
MLlib算法简介
之前Mahout或者自己写的MR来解决复杂的机器学习,导致效率低,Spark特别适合迭代式的计算,这正是机器学习算法训练所需要的,MLlib是基于spark之上算法组件,基于spark平台来实现。主要的机器学习的算法目前在MLlib中都已经提供了,分类回归、聚类、关联规则、推荐、降维、优化、特征抽取筛选、用于特征预处理的数理统计方法、以及算法的评测。转载 2017-07-23 12:03:17 · 2051 阅读 · 0 评论 -
Spark缘起
Hadoop社区依然发展迅速,2014年推出了2.3,2.4, 2.5 的社区版本,比如增强 Resource Manager HA, YARN Rest API, ACL on HDFS, 改进 HDFS 的 Web UI…Hadoop Roadmap 根据我的观察,主要更新在Yarn,HDFS,而Mapreduce几乎停滞了,还有一些feature 属于安全,稳定可靠性一方面是比较稳定了,原创 2017-07-23 19:53:25 · 335 阅读 · 0 评论 -
spark快速入门
Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 正如其名,最大的特点就是快(Lightning-fast),可比 Hadoop MapReduce 的处理速度快 100 倍。此外,Spark 提供了简单易用的 API,几行代码就能实现 WordCount。本教程主要参考官网快速入门教程,介绍了 Spark 的安装,Spark shell 、转载 2017-07-23 19:59:15 · 2396 阅读 · 1 评论 -
Spark学习札记
1 引言1.1 Hadoop 和 Spark 的关系 Google 在 2003 年和 2004 年先后发表了 Google 文件系统 GFS 和 MapReduce 编程模型两篇文章,. 基于这两篇开源文档,06 年 Nutch 项目子项目之一的Hadoop 实现了两个强有力的开源产品:HDFS 和 MapReduce. hadoop 成为了典型的大数据批量处理架构,由转载 2017-07-23 20:01:44 · 454 阅读 · 0 评论 -
Spark-Scala-IntelliJ开发环境搭建和编译Jar包流程
使用Scala编写Spark脚本的话,可以直接在spark-shell中运行,如果要提交整个脚本的话,就必须将scala脚本编译成Jar包,然后通过spark-submit 提交Jar包给spark集群,当需要重复利用脚本的话一般是需要编译成Jar包的,所以后面会介绍下怎么将scala编译成Jar包,前面则会介绍下怎么搭建spark-scala的开发环境,同时使用IntelliJ Idea编写转载 2017-07-23 20:25:22 · 1162 阅读 · 0 评论 -
spark架构解析
Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架,最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一,与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势:Spark提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数转载 2017-07-23 20:28:11 · 655 阅读 · 0 评论 -
spark零基础学习路线指导
spark学习一般都具有hadoop基础,所以学习起来更容易多了。如果没有基础,可以参考零基础学习hadoop到上手工作线路指导(初级篇)。具有基础之后,一般都是按照官网或则视频、或则文档,比如搭建spark,运行spark例子。后面就不知道做什么了。这里整体梳理一下。希望对大家有所帮助。1.spark场景在入门spark之前,首先对spark有些基本的了解。比如spark场景,spark转载 2017-07-23 20:56:58 · 6427 阅读 · 0 评论 -
从Hadoop到Spark的架构实践
摘要:本文则主要介绍TalkingData在大数据平台建设过程中,逐渐引入Spark,并且以Hadoop YARN和Spark为基础来构建移动大数据平台的过程。当下,Spark已经在国内得到了广泛的认可和支持:2014年,Spark Summit China在北京召开,场面火爆;同年,Spark Meetup在北京、上海、深圳和杭州四个城市举办,其中仅北京就成功举办了5次,内容更涵盖S转载 2017-07-24 07:53:19 · 1564 阅读 · 0 评论 -
Storm与Spark:谁才是我们的实时处理利器
实时商务智能这一构想早已算不得什么新生事物(早在2006年维基百科中就出现了关于这一概念的页面)。然而尽管人们多年来一直在对此类方案进行探讨,我却发现很多企业实际上尚未就此规划出明确发展思路、甚至没能真正意识到其中蕴含的巨大效益。为什么会这样?一大原因在于目前市场上的实时商务智能与分析工具仍然非常有限。传统数据仓库环境针对的主要是批量处理流程,这类方案要么延迟极高、要么成本惊人——当然,也可能转载 2017-08-02 00:50:06 · 240 阅读 · 0 评论 -
用Apache Spark进行大数据处理之入门介绍(1)
什么是SparkApache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势。首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据翻译 2017-07-28 21:57:37 · 452 阅读 · 0 评论 -
用Apache Spark进行大数据处理之Spark SQL(2)
在Apache Spark文章系列的前一篇文章中,我们学习了什么是Apache Spark框架,以及如何用该框架帮助组织处理大数据处理分析的需求。Spark SQL,作为Apache Spark大数据框架的一部分,主要用于结构化数据处理和对Spark数据执行类SQL的查询。通过Spark SQL,可以针对不同格式的数据执行ETL操作(如JSON,Parquet,数据库)然后完成特定的查询操作。翻译 2017-07-28 22:31:37 · 951 阅读 · 0 评论 -
Spark源码系列(一)spark-submit提交作业过程
前言折腾了很久,终于开始学习Spark的源码了,第一篇我打算讲一下Spark作业的提交过程。 这个是Spark的App运行图,它通过一个Driver来和集群通信,集群负责作业的分配。今天我要讲的是如何创建这个Driver Program的过程。作业提交方法以及参数我们先看一下用Spark Submit提交的方法吧,下面是从官方上面摘抄的内容。# Run on转载 2017-09-13 18:13:48 · 881 阅读 · 0 评论 -
Spark源码系列(三)作业运行过程
作业执行上一章讲了RDD的转换,但是没讲作业的运行,它和Driver Program的关系是啥,和RDD的关系是啥?官方给的例子里面,一执行collect方法就能出结果,那我们就从collect开始看吧,进入RDD,找到collect方法。 def collect(): Array[T] = { val results = sc.runJob(this, (iter: I转载 2017-09-13 18:15:29 · 190 阅读 · 0 评论 -
Spark源码系列(四)图解作业生命周期
跟着我走吧,let you know!我们先回顾一下这个图,Driver Program是我们写的那个程序,它的核心是SparkContext,回想一下,从api的使用角度,RDD都必须通过它来获得。下面讲一讲它所不为认知的一面,它和其它组件是如何交互的。Driver向Master注册Application过程SparkContext实例化之后,在内部实例化两个很重要的类,DA转载 2017-09-13 18:15:43 · 222 阅读 · 0 评论 -
Spark源码系列(五)分布式缓存
讲一下Spark的缓存是如何实现的。这个persist方法是在RDD里面的,所以我们直接打开RDD这个类。 def persist(newLevel: StorageLevel): this.type = { // StorageLevel不能随意更改 if (storageLevel != StorageLevel.NONE && newLevel != stora转载 2017-09-13 18:15:59 · 250 阅读 · 0 评论 -
Spark源码系列(六)Shuffle的过程解析
Spark大会上,所有的演讲嘉宾都认为shuffle是最影响性能的地方,但是又无可奈何。之前去百度面试hadoop的时候,也被问到了这个问题,直接回答了不知道。这篇文章主要是沿着下面几个问题来开展:1、shuffle过程的划分?2、shuffle的中间结果如何存储?3、shuffle的数据如何拉取过来?Shuffle过程的划分Spark的操作模型是基于RDD的,当调用RDD转载 2017-09-13 18:16:40 · 408 阅读 · 0 评论 -
Spark源码系列(七)Spark on yarn具体实现
讲一下Spark on yarn的实现,1.0.0里面已经是一个stable的版本了,可是1.0.1也出来了,离1.0.0发布才一个月的时间,更新太快了,节奏跟不上啊,这里仍旧是讲1.0.0的代码,所以各位朋友也不要再问我讲的是哪个版本,目前为止发布的文章都是基于1.0.0的代码。在第一章《spark-submit提交作业过程》的时候,我们讲过Spark on yarn的在cluster模式下转载 2017-09-13 18:17:00 · 376 阅读 · 0 评论 -
Spark源码系列(八)Spark Streaming实例分析
要讲Spark Streaming,讲之前首先回顾下它的用法,具体用法请参照《Spark Streaming编程指南》。Example代码分析val ssc = new StreamingContext(sparkConf, Seconds(1));// 获得一个DStream负责连接 监听端口:地址val lines = ssc.socketTextStream(server转载 2017-09-13 18:17:22 · 219 阅读 · 0 评论 -
Spark源码系列(九)Spark SQL初体验之解析过程详解
首先声明一下这个版本的代码是1.1的,之前讲的都是1.0的。Spark支持两种模式,一种是在spark里面直接写sql,可以通过sql来查询对象,类似.net的LINQ一样,另外一种支持hive的HQL。不管是哪种方式,下面提到的步骤都会有,不同的是具体的执行过程。下面就说一下这个过程。Sql解析成LogicPlan使用Idea的快捷键Ctrl + Shift + N打开SQLQuer转载 2017-09-13 18:17:47 · 538 阅读 · 0 评论 -
Spark学习笔记(2)解密Spark Streaming运行机制和架构
本段内容:1 解密Spark Streaming运行机制2 解密Spark Streaming架构1 解密Spark Streaming运行机制 我们看看上节课仍没有停下来的Spark Streaming程序运行留下的信息。 这个程序仍然在不断地循环运行。即使没有接收到新数据,日志中也不断循环显示着JobScheduler、Bloc转载 2017-08-29 23:33:09 · 341 阅读 · 0 评论 -
Spark学习笔记(3)SparkStreaming架构进阶之Job和容错
本文内容1 Spark Streaming Job 架构和运行机制2 Spark Streaming Job 容错架构和运行机制1 Spark Streaming Job 架构和运行机制 理解Spark Streaming的Job的整个架构和运行机制对于精通Spark Streaming是至关重要的。 一 首先我们运行以下的程序,然后通过原创 2017-08-29 23:37:04 · 386 阅读 · 0 评论 -
Spark学习笔记(4)Spark Streaming的Exactly-One的事务处理
本文内容1 Exactly Once2 输出不重复1 Exactly Once 事务: 银行转帐为例,A用户转笔账给B用户,如果B用户没收到账,或者收到多笔账,都是破坏事务的一致性。事务处理就是,能够处理且只会处理一次,即A只转一次,B只收一次。 从事务视角解密SparkStreaming架构: SparkStreaming应转载 2017-08-29 23:39:50 · 317 阅读 · 0 评论 -
Spark学习笔记(5)Spark Streaming流计算框架的运行源码
本段内容:1 在线动态计算分类最热门商品案例回顾与演示2 基于案例贯通Spark Streaming的运行源码1 在线动态计算分类最热门商品案例回顾与演示 我们用Spark Streaming+Spark SQL来实现分类最热门商品的在线动态计算。代码如下:package com.dt.spark.streamingimport org.a转载 2017-08-29 23:46:10 · 301 阅读 · 0 评论 -
Spark学习笔记(6)源码解读之Job动态生成和深度思考
本期内容:1 Spark Streaming Job生成深度思考2 Spark Streaming Job生成源码解析1 Spark Streaming Job生成深度思考 前面的课程中已经讲了,Spark Streaming的Job是通过JobGenerator生成。这里说的Job和Spark Core中的Job不是一回事。Spark Streaming中的Job相转载 2017-08-29 23:54:58 · 529 阅读 · 0 评论 -
Spark学习笔记(8)源码解读之RDD生成全生命周期
本段内容:1 DStream与RDD关系的彻底的研究2 StreamingRDD的生成彻底研究 我们有必要来思考三个重要有价值的问题: 1 DStream生成RDD的过程,DStream到底是怎么生成RDD的? 2 DStream和RDD到底什么关系? 3 RDD生成后是怎么管理的? 有些Spark Streaming应用程序中的最后部分,会有print输原创 2017-08-30 00:00:56 · 426 阅读 · 0 评论 -
Spark学习笔记(7)源码解读之JobScheduler内幕实现
解读Spark Streaming源码时,不要把代码看成高深的东西,只要把它看成是JVM上的普通应用程序。要有信心搞定它。本文内容1. JobScheduler内幕实现2. JobScheduler深度思考1. JobScheduler内幕实现 我们在进行Spark Streaming开发的时候,会对DStream进行各种transform和act翻译 2017-08-29 23:58:07 · 269 阅读 · 0 评论 -
Spark学习笔记(9)源码解读之Receiver在Driver的精妙实现
本期内容:1. Receiver启动的方式设想2. Receiver启动源码彻底分析1. Receiver启动的方式设想 Spark Streaming是个运行在Spark Core上的应用程序。这个应用程序既要接收数据,还要处理数据,这些都是在分布式的集群中进行的,应该启动多个Job,让它们分工并能协调。Receiver的工作是接收数据,应该是用Spark Co转载 2017-08-30 00:02:12 · 484 阅读 · 0 评论 -
Spark学习笔记(11)源码解读之Driver中的ReceiverTracker架构
本期内容:1. ReceiverTracker的架构设计2. 消息循环系统3. ReceiverTracker具体实现 ReceiverTacker类如下,从源码注释可以看出该类的作用。 管理ReceiverInputDStreams的执行,记录Receiver发来的元数据信息。ReceiverTacker类构造时必须传入StreamingContext翻译 2017-08-30 00:08:08 · 256 阅读 · 0 评论 -
Spark学习笔记(12)源码解读之Executor容错安全性
本期内容:1. Executor的WAL2. 消息重放最天然的数据容错就是利用数据副本,另外一种是数据源支持重放。基于BlockManager来做数据备份,StorageLevel /** * Create a input stream from TCP source hostname:port. Data is received usin转载 2017-08-30 00:09:53 · 332 阅读 · 0 评论 -
Spark学习笔记(13)源码解读之Driver容错安全性
内容:1. ReceivedBlockTracker容错安全性2. DStreamGraph和JobGenerator容错安全性 从数据层面,ReceivedBlockTracker为整个Spark Streaming应用程序记录元数据信息。 从调度层面,DStreamGraph和JobGenerator是Spark Streaming调度的核心,记转载 2017-08-30 00:12:14 · 341 阅读 · 0 评论 -
Spark学习笔记(15)Spark Streaming源码解读之No Receivers
前面的课程中主要是使用ReceiverInputDStream,是针对Receiver方式开展的剖析。 企业级Spark Streaming应用程序开发中在越来越多的采用No Receivers的方式。No Receiver方式有自己的优势,比如更大的控制的自由度、语义一致性等等。所以对No Receivers方式和Receiver方式都需要进一步研究、思考。 其实No Receive转载 2017-08-30 00:15:59 · 303 阅读 · 0 评论 -
Spark学习笔记(16)Spark Streaming源码解读之数据清理内幕
这一课讲数据清理的内容。Spark Streaming应用是持续不断地运行着的。如果不对内存资源进行有效管理,内存就有可能很快就耗尽。Spark Streaming应用一定有自己的对象、数据、元数据的清理机制。如果把Spark Streaming研究透彻了,那也就能驾驭Spark的各种应用程序。本课主要内容:1 Spark Streaming数据清理原因和现象转载 2017-08-30 00:16:43 · 288 阅读 · 0 评论 -
Spark学习笔记(17)Spark Streaming资源动态申请剖析
Spark是粗粒度的,即在默认情况下会预先分配好资源,再进行计算。好处是资源提前分配好,有计算任务时就直接使用计算资源,不用再考虑资源分配。不好的地方是,高峰值和低峰值时需要的资源是不一样的。资源如果是针对高峰值情况下考虑的,那势必在低峰值情况下会有大量的资源浪费。Twitter最近推出了会秒杀Storm的Heron,非常值得关注。因为Heron能有更好的资源分配、 更低的延迟。Her转载 2017-08-30 00:17:45 · 459 阅读 · 0 评论 -
Spark学习笔记(14)State管理之updateStateByKey解密
从这节课开始,简介Spark Streaming的状态管理。 Spark Streaming 是按Batch Duration来划分Job的,但我们有时需要根据业务要求按照另外的时间周期(比如说,对过去24小时、或者过去一周的数据,等等这些大于Batch Duration的周期),对数据进行处理(比如计算最近24小时的销售额排名、今年的最新销售量等)。这需要根据之前的计算结果和新时间周期的数转载 2017-08-30 00:14:50 · 3137 阅读 · 0 评论