Spark修炼之道
文章平均质量分 76
介绍当前最流行的Spark内存计算框架:
(基础篇)——Linux基础(12讲)
(进阶篇)——Spark入门到精通(30讲)
(实战篇)——Spark应用开发实战篇(20讲)
(高级篇)——Spark源码解析(50讲)
zhouzhihubeyond
大数据技术爱好者,主要关注Spark、Hadoop、Storm、Hive、HBase等开源大数据技术,专注于大数据机器学习算法研究
展开
-
Spark修炼之道(进阶篇)——Spark入门到精通:第九节 Spark SQL运行流程解析
1.整体运行流程使用下列代码对SparkSQL流程进行分析,让大家明白LogicalPlan的几种状态,理解SparkSQL整体执行流程// sc is an existing SparkContext.val sqlContext = new org.apache.spark.sql.SQLContext(sc)// this is used to implicitly convert an原创 2015-12-31 10:58:21 · 16074 阅读 · 3 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第十三节 Spark SQL之SQLContext(一)
1. SQLContext的创建SQLContext是Spark SQL进行结构化数据处理的入口,可以通过它进行DataFrame的创建及SQL的执行,其创建方式如下://sc为SparkContextval sqlContext = new org.apache.spark.sql.SQLContext(sc)其对应的源码为:def this(sparkContext: S原创 2015-12-30 07:29:38 · 16635 阅读 · 4 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第十二节 Spark SQL 处理流程分析
作者:周志湖下面的代码演示了通过Case Class进行表Schema定义的例子:// sc is an existing SparkContext.val sqlContext = new org.apache.spark.sql.SQLContext(sc)// this is used to implicitly convert an RDD to a DataFrame.import原创 2015-12-28 23:38:51 · 18380 阅读 · 5 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十六节 Spark Streaming与Kafka
作者:周志湖主要内容Spark Streaming与Kafka版的WordCount示例(一)Spark Streaming与Kafka版的WordCount示例(二)1. Spark Streaming与Kafka版本的WordCount示例 (一)启动kafka集群root@sparkslave02:/hadoopLearning/kafka_2.10-0.8.2.1# bin/kaf原创 2015-12-03 23:32:41 · 10156 阅读 · 3 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十五节 Kafka 0.8.2.1 集群搭建
作者:周志湖 微信号:zhouzhihubeyond本节为下一节Kafka与Spark Streaming做铺垫主要内容1.kafka 集群搭建1. kafka 集群搭建kafka 安装与配置到下面的地址下载:Scala 2.10 - kafka_2.10-0.8.2.1.tgz http://kafka.apache.org/downloads.html 下载完成后,使用命令tar原创 2015-12-02 22:43:57 · 9116 阅读 · 0 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十四节 Spark Streaming 缓存、Checkpoint机制
作者:周志湖 微信号:zhouzhihubeyond主要内容本节内容基于官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.htmlSpark Stream 缓存Checkpoint案例1. Spark Stream 缓存通过前面一系列的课程介绍,我们知道DStream是由一系列的RDD构成的,它同一般的原创 2015-11-30 23:42:36 · 31917 阅读 · 2 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十三节 Spark Streaming—— Spark SQL、DataFrame与Spark Streaming
主要内容Spark SQL、DataFrame与Spark Streaming1. Spark SQL、DataFrame与Spark Streaming源码直接参照:https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/streaming/SqlNetworkW原创 2015-11-29 16:17:02 · 14123 阅读 · 3 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十二节 Spark Streaming—— DStream Window操作
作者:周志湖 微信号:zhouzhihubeyond本节主要内容Window Operation入门案例1. Window OperationSpark Streaming提供窗口操作(Window Operation),如下图所示: 上图中,红色实线表示窗口当前的滑动位置,虚线表示前一次窗口位置,窗口每滑动一次,落在该窗口中的RDD被一起同时处理,生成一个窗口DStream(wind原创 2015-11-29 15:38:20 · 19522 阅读 · 5 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十一节 Spark Streaming—— DStream Transformation操作
本节主要内容本节部分内容来自官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.htmlDStream Transformation操作1. Transformation操作 Transformation Meaning map(func) 对DStream中的各个元素进行func函数操作,然后原创 2015-11-25 23:54:57 · 13755 阅读 · 1 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第十节 Spark Streaming(一)
本节主要内容本节部分内容来自官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html#mllib-operationsSpark流式计算简介Spark Streaming相关核心类入门案例1. Spark流式计算简介Hadoop的MapReduce及Spark SQL等只能进行离线计算,无法满足实时性要原创 2015-11-21 22:34:46 · 17851 阅读 · 6 评论 -
Akka书箱推荐
话不多说,推荐下面几本书: 1. Akka Essentials, By Munish K. Gupta, Publisher: Packt Publishing,Release Date: October 2012。非常适合入门级,图文并茂,看完能够明白AKKA的大部分精髓 2. Effective Akka,By Jamie Allen,Publisher: O’Reilly Media,R原创 2015-11-09 23:24:22 · 10225 阅读 · 4 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第九节 Task执行成功时的结果处理
Task执行成功时的结果处理在上一节中,给出了Task在Executor上的运行代码演示,我们知道代码的最终运行通过的是TaskRunner方法class TaskRunner( execBackend: ExecutorBackend, val taskId: Long, val attemptNumber: Int, taskName: Strin原创 2015-10-29 19:34:56 · 6018 阅读 · 3 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第八节 Task执行
Task执行在上一节中,我们提到在Driver端CoarseGrainedSchedulerBackend中的launchTasks方法向Worker节点中的Executor发送启动任务命令,该命令的接收者是CoarseGrainedExecutorBackend(Standalone模式),类定义源码如下:private[spark] class CoarseGrainedExecutorBack原创 2015-10-29 12:00:24 · 6099 阅读 · 1 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第七节 resourceOffers方法与launchTasks方法解析
在上一节中,我们提到Task提交通过makeOffers提交到Executor上 // Make fake resource offers on just one executor private def makeOffers(executorId: String) { // Filter out executors under killing if (!exe原创 2015-10-28 21:38:42 · 5305 阅读 · 5 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第六节 Task提交
Task提交在上一节中的 Stage提交中我们提到,最终stage被封装成TaskSet,使用taskScheduler.submitTasks提交,具体代码如下:taskScheduler.submitTasks(new TaskSet( tasks.toArray, stage.id, stage.latestInfo.attemptId, stage.firstJobId, p原创 2015-10-27 23:49:05 · 5136 阅读 · 0 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第五节 Stage提交
Stage提交调用流程: 1.org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted 2. org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted.submitStage 3. org.apache.spark.scheduler.DAGScheduler.handleJ原创 2015-10-26 17:45:45 · 5208 阅读 · 1 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第三节 Spark Job的提交
前一我们分析了SparkContext的创建,这一节,我们介绍在RDD执行的时候,如何提交job进行分析,同样是下面的源码:import org.apache.spark.{SparkConf, SparkContext}object SparkWordCount{ def main(args: Array[String]) { if (args.length == 0) {原创 2015-10-19 23:48:16 · 9340 阅读 · 5 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第四节 Stage划分
Stage划分在上一节中我们讲了 Spark Job的提交,在该讲中我们提到,当rdd触发action操作之后,会调用SparkContext的runJob方法,最后调用的DAGScheduler.handleJobSubmitted方法完成整个job的提交。然后DAGScheduler根据RDD的lineage进行Stage划分,再生成TaskSet,由TaskScheduler向集群申请资源,最原创 2015-10-24 23:48:04 · 7043 阅读 · 4 评论 -
Spark修炼之道(高级篇)——Spark源码阅读:第一节 Spark应用程序提交流程
spark-submit 脚本应用程序提交流程执行提交命令如下:root@sparkmaster:/hadoopLearning/spark-1.5.0-bin-hadoop2.4/bin# ./spark-submit --master spark://sparkmaster:7077 --class SparkWordCount --executor-memory 1g /root/IdeaPr原创 2015-10-19 12:47:04 · 17945 阅读 · 3 评论 -
Spark 1.5.0 远程调试
Spark 1.5.0 远程调试作者:摇摆少年梦 微信号:zhouzhihubeyond先决条件已安装好Spark集群,本例子中使用的是spark-1.5.0. 安装方法参见:http://blog.csdn.net/lovehuangjiaju/article/details/48494737已经安装好Intellij IDEA,本例中使用的是Intellij IDEA 14.1.4,具体安原创 2015-10-18 17:50:09 · 13458 阅读 · 4 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第十五节:基础正则表达式(一)
参考书目:鸟哥的LINUX私房菜基础学习篇(第三版) Linux Shell Scripting Cookbook本节主要内容基础正则表达式1. 基础正则表达式(1)^行开始符^匹配一行的开始,例如’^Spark’ 匹配所有Spark开始的行//grep -n表示查找到的结果显示行号root@sparkslave02:~/ShellLearning# grep原创 2015-10-07 22:29:08 · 5602 阅读 · 0 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第十四节:Shell编程入门(六)
本文主要内容case控制结构read命令管道1. case控制结构参考:http://blog.csdn.net/dreamtdp/article/details/8048720 case控制结构语法格式:case expression in pattern1 ) statements ;; pattern2 ) statement原创 2015-10-06 16:13:18 · 3250 阅读 · 0 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第十三节:Shell编程入门(五)
本节主要内容while循环控制结构if条件判断until循环控制结构1. while循环控制结构本节例子来源:http://blog.chinaunix.net/uid-25880122-id-2901409.html 语法格式:while expressiondocommandcommanddone(1)计数器格式适用于循环次数已知或固定时root@sparkslave02:~/原创 2015-10-05 21:14:54 · 4943 阅读 · 2 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第十二节:Shell编程入门(四)
本节主要内容shell脚本调试shell函数shell控制结构初步1. shell脚本调试当脚本出错时,需要对脚本进行调试,学会脚本调试是每个linux系统使用者必备技能。shell脚本调试无需任何额外的工具,只需要要在脚本文件前加-x选项即可,创建debug.sh文件,内容如下:#!/bin/bash#Filename: debug.shecho "scripting"echo "d原创 2015-10-05 17:44:49 · 3892 阅读 · 1 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第十一节:Shell编程入门(三)
本节主要内容shell数组shell命令别名时间操作1. Shell数组同C、C++等语言一样,shell脚本也提供了数组这样一个重要的数据结构,shell中的数组有两种,一种为普通数组,另外的一种称为关联数组。普通数据的存取通过整数进行,关联数组的存取通过字符串进行。具体如下://用()定义一个数组,注意数组元素间不能用,否则达不到预期目的root@sparkmaster:~/Shell原创 2015-10-05 15:34:22 · 4153 阅读 · 0 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第十节:Shell编程入门(二)
本节主要内容 1. shell命令行中的基本运算 2. 文件描述符与文件重定向原创 2015-10-04 21:47:42 · 4158 阅读 · 3 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第九节:Shell编程入门(一)
本节主要内容shell编程简介变量定义常用特殊变量1. shell编程简介学习linux操作系统最让人着迷的事情莫过于shell脚本编程,这是因为如果要完成某些复杂的功能,单纯地通过GUI操作不可能达到,shell脚本可以直接与操作系统内核打交道,从而完成任意复杂的任务。shell有很多种,最常用的是Bash (Bourne Again Shell),它是Linux操作系统默认的shell环原创 2015-09-30 22:42:19 · 11038 阅读 · 5 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第八节 Spark SQL与DataFrame(一)
本节主要内宾Spark SQL简介DataFrame1. Spark SQL简介Spark SQL是Spark的五大核心模块之一,用于在Spark平台之上处理结构化数据,利用Spark SQL可以构建大数据平台上的数据仓库,它具有如下特点: (1)能够无缝地将SQL语句集成到Spark应用程序当中 (2)统一的数据访问方式 DataFrames and SQL provide a c原创 2015-09-26 16:30:23 · 15304 阅读 · 4 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第七节 Spark运行原理
本节主要内容Spark运行方式Spark运行原理解析本节内容及部分图片来自: http://blog.csdn.net/book_mmicky/article/details/25714419 http://blog.csdn.net/yirenboy/article/details/47441465 这两篇文件对Spark的运行架构原理进行了比较深入的讲解,写得非常好,建议大家认真看一原创 2015-09-22 19:54:01 · 22669 阅读 · 2 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第六节 Spark编程模型(三)
本节主要内容RDD transformation(续)RDD actions1. RDD transformation(续)(1)repartitionAndSortWithinPartitions(partitioner) repartitionAndSortWithinPartitions函数是repartition函数的变种,与repartition函数不同的是,repartition原创 2015-09-21 22:13:12 · 14070 阅读 · 2 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond本文主要内容RDD 常用Transformation函数1. RDD 常用Transformation函数(1)union union将两个RDD数据集元素合并,类似两个集合的并集 union函数参数: /** * Return the union of this RDD and another one. Any原创 2015-09-20 23:18:55 · 12925 阅读 · 0 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第四节 Spark编程模型(一)
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond本节主要内容Spark重要概念弹性分布式数据集(RDD)1. Spark重要概念本节部分内容源自官方文档:http://spark.apache.org/docs/latest/cluster-overview.html(1)Spark运行模式目前最为常用的Spark运行模式有: - l原创 2015-09-20 19:43:13 · 37987 阅读 · 2 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第三节 Spark Intellij IDEA开发环境搭建
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond本节主要内容Intellij IDEA 14.1.4开发环境配置Spark应用程序开发1. Intellij IDEA 14.1.4开发环境配置Intellij IDEA 功能十分强大,能够开发JAVA、Scala等相关应用程序,在依赖管理 智能提示等方面做到了极致,大家可以到:http://ww原创 2015-09-19 21:21:32 · 21132 阅读 · 5 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第二节 Hadoop、Spark生成圈简介
本节主要内容Hadoop生态圈Spark生态圈1. Hadoop生态圈原文地址:http://os.51cto.com/art/201508/487936_all.htm#rd?sukey=a805c0b270074a064cd1c1c9a73c1dcc953928bfe4a56cc94d6f67793fa02b3b983df6df92dc418df5a1083411b53325 下图给出原创 2015-09-19 19:27:53 · 15002 阅读 · 1 评论 -
Spark修炼之道(进阶篇)——Spark入门到精通:第一节 Spark 1.5.0集群搭建
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond本节主要内容操作系统环境准备Hadoop 2.4.1集群搭建Spark 1.5.0 集群部署注:在利用CentOS 6.5操作系统安装spark 1.5集群过程中,本人发现Hadoop 2.4.1集群可以顺利搭建,但在Spark 1.5.0集群启动时出现了问题(可能原因是64位操作系统原因,源码需要重新编译,但本人没经原创 2015-12-28 21:36:41 · 35949 阅读 · 26 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第八节:网络管理
## 本节主要内容 ## 1. ifconfig命令 2. 网络配置 3. 其它常用网络管理命令##1. ifconfig命令##ifconfig命令主要用于配置网络接口,如果不加任何参数,则ifconfig命令用于查看当前所有活动网络接口的状态信息,例如:![这里写图片描述](http://img.blog.csdn.net/20150902203702705)图中的eth0表示活动的以太网接口,原创 2015-09-02 21:59:09 · 7746 阅读 · 3 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第七节:进程管理
## 本节主要内容 ## 1. 进程管理简介 2. 进程管理常用命令 3. 计划任务 ## 1. 进程管理简介 ##### (1)进程概念进程是操作系统中非常重要的一个概念,进程是程序的执行过程,相对于程序,进程是动态的,在linux系统中,它与用户权限相关,程序与进程并没有一一对应,一个程序可能对应多个进程,例如:原创 2015-09-02 09:25:54 · 7445 阅读 · 3 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第六节:vi、vim编辑器(二)
本节主要内容缓冲区的使用文件的存盘与读盘文本查找文本替换1. 缓冲区的使用在利用vim进行文本编辑时,编辑修改后的文本不会立即保存到硬盘上,而是保存在缓冲区中,如果没有把缓冲区里的文件存盘,原始文件不会被更改。vim在打开文件时将文本内容读到缓冲区中,在进行文本编辑时,修改的文本保存在缓冲区,此时硬盘上的原文件不变。下面让我们来演示一下缓冲区的使用。 假设采用vim 同时打开两个文本文件原创 2015-08-25 21:23:15 · 6339 阅读 · 1 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第五节:vi、vim编辑器(一)
本节主要内容vim编辑器的三种模式移动光标输入模式修改文本作者:周志湖 微信号:zhouzhihubeyond 网名:摇摆少年梦1. vi编辑器的三种模式学会使用vi编辑器是学习linux系统的必备技术之一,因为一般的linux服务器是没有GUI界面的,linux运维及开发人员基本上都是通过命令行的方式进行文本编辑或程序编写的。vi编辑器是linux内置的文本编辑器,几乎所有的类uni原创 2015-08-25 15:48:14 · 5161 阅读 · 0 评论 -
Spark修炼之道(基础篇)——Linux大数据开发基础:第四节:Linux文件系统(二)
本节主要内容访问控制列表ACL链接压缩和归档文件其他日常管理实用程序1. 访问控制列表ACL在实际使用使用过程中,可能linux系统自身权限控制不能满足要求,还需要进一步细化,此时可以用ACL( Access Control List )进行,它主要提供 owner,group,others 的 read,write,execute 权限之外的细部权限配置。它可以针对单一使用者,单一文件或原创 2015-08-23 22:48:11 · 5220 阅读 · 0 评论