暂无个人介绍
Apache Spark、Apache Kafka等基于Scala语言实现的框架在大数据生态圈内占有举足轻重的地位,它们一定程度上引领着大数据最前沿技术方向,另外Akka、Apache Gearpump等基于Scala语言实现的框架在大数据生态圈内也备受关注,工业实践已经证明了Scala语言的强大,这使Scala语言近一两年名声大噪,进而引起众多编程语言爱好者及各大公司的
本节主要内容 停止运行Typed Actor 当Typed Actor不再需要时要将其停止,有3种方法停止Typed Actor的运行: (1)通过system.shutdown()停止ActorSystem中所有的Typed Actor; (2)调用TypedActor(system).stop(mySquarer)停止指定的Typed Actor;
主要内容: 1. Typed Actor定义 2. Typed Actor创建 3. 消息发送 1. Typed Actor定义 Akka中的Typed Actor是Active Objects设计模式的实现,Active Objects模式将方法的执行和方法的调用进行解耦合,从而为程序引入并发性。Typed Actor由公用的接口和对应实现两部分构成,其后面深层次
本将主要内容: 1. !消息发送,Fire-and-Forget消息模型 2. ?消息发送,Send-And-Receive-Future消息模型 Akka提供了两种消息模型:fire-and-forget和Send-And-Receive-Future。fire-and-forget是一种单向消息发送模型,指的是异步发送消息,通过异步发送消息且消息发送后可以立即返回,
本节主要内容: 1. 停止Actor 1. 停止Actor (1)通过ActorSystem.shutdown方法停止所有 Actor的运行 /* *停止Actor:ActorSystem.shutdown方法 */ object Example_10 extends App{ import akka.actor.Actor import akka.act
本将主要内容: 1. Actor引用、Actor路径 1. Actor引用、Actor路径 下图是Akka官方文档中给出的一张图 该图清晰地说明了ActorPath,ActorRef,Actor及ActorSystem之间的关系,并说明了Actor整体的层次结构。前面我们提到,Akka应用程序会持有一个名称为user的Actor,该Actor被称为guardian
本节主要内容: Actor API解析 1. Actor API解析 Actor中的主要成员变量和方法定义如下: package akka.actor trait Actor extends scala.AnyRef { type Receive = akka.actor.Actor.Receive //context变量暴露当前Actor的上下文信息
本节主要内容 定义Actor 创建Actor 1. 定义Actor 通过扩展akka.actor.Actor 特质并实现receive方法来定义Actor,代码示例如下 //通过扩展Actor并实现receive方法来定义Actor class MyActor extends Actor { //获取LoggingAdapter,用于日志输出 v
本节主要内容: 1. 重要概念 2. Actor模型 3. Akka架构简介 多核处理器的出现使并发编程(Concurrent Programming)成为开发人员必备的一项技能,许多现代编程语言都致力于解决并发编程问题。并发编程虽然能够提高程序的性能,但传统并发编程的共享内存通信机制对开发人员的编程技能要求很高,需要开发人员通过自身的专业编程技能去避免死锁、互斥等待
作者:周志湖 放假了,终于能抽出时间更新博客了……. 1. 获取数据 本文通过将github上的Spark项目git日志作为数据,对SparkSQL的内容进行详细介绍 数据获取命令如下: [root@master spark]# git log --pretty=format:'{"commit":"%H","author":"%an","author_e
1.整体运行流程 使用下列代码对SparkSQL流程进行分析,让大家明白LogicalPlan的几种状态,理解SparkSQL整体执行流程 // sc is an existing SparkContext. val sqlContext = new org.apache.spark.sql.SQLContext(sc) // this is used to implic
作者:周志湖 1. SQLContext的创建 SQLContext是Spark SQL进行结构化数据处理的入口,可以通过它进行DataFrame的创建及SQL的执行,其创建方式如下: //sc为SparkContext val sqlContext = new org.apache.spark.sql.SQLContext(sc) 其对应的源码为: def
作者:周志湖 下面的代码演示了通过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 Da
在阅读本文之前,请先阅读Spark Sort Based Shuffle内存分析 Spark Shuffle Read调用栈如下: 1. org.apache.spark.rdd.ShuffledRDD#compute() 2. org.apache.spark.shuffle.ShuffleManager#getReader() 3. org.apache.spar
作者:周志湖 主要内容 Spark Streaming与Kafka版的WordCount示例(一) Spark Streaming与Kafka版的WordCount示例(二) 1. Spark Streaming与Kafka版本的WordCount示例 (一) 启动kafka集群 root@sparkslave02:/hadoopLearning/kafka_2
作者:周志湖 微信号:zhouzhihubeyond 本节为下一节Kafka与Spark Streaming做铺垫 主要内容 1.kafka 集群搭建 1. kafka 集群搭建 kafka 安装与配置 到下面的地址下载:Scala 2.10 - kafka_2.10-0.8.2.1.tgz http://kafka.apache.org/downloa
作者:周志湖 微信号:zhouzhihubeyond 主要内容 本节内容基于官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html Spark Stream 缓存 Checkpoint 案例 1. Spark Stream 缓存 通过前面一系列的课程介绍,我们知道DS
主要内容 Spark SQL、DataFrame与Spark Streaming 1. Spark SQL、DataFrame与Spark Streaming 源码直接参照:https://github.com/apache/spark/blob/master/examples/src/main/scala/org/apache/spark/examples/stre
作者:周志湖 微信号:zhouzhihubeyond 本节主要内容 Window Operation 入门案例 1. Window Operation Spark Streaming提供窗口操作(Window Operation),如下图所示: 上图中,红色实线表示窗口当前的滑动位置,虚线表示前一次窗口位置,窗口每滑动一次,落在该窗口中的RDD被一起同时处理,生
本节主要内容 本节部分内容来自官方文档:http://spark.apache.org/docs/latest/streaming-programming-guide.html DStream Transformation操作 1. Transformation操作 Transformation Meaning map(func) 对DStrea
Spark Standalone采用的是Master/Slave架构,主要涉及到的类包括: 类:org.apache.spark.deploy.master.Master 说明:负责整个集群的资源调度及Application的管理。 消息类型: 接收Worker发送的消息 1. RegisterWorker 2. ExecutorStateChanged 3. Work
话不多说,推荐下面几本书: 1. Akka Essentials, By Munish K. Gupta, Publisher: Packt Publishing,Release Date: October 2012。非常适合入门级,图文并茂,看完能够明白AKKA的大部分精髓 2. Effective Akka,By Jamie Allen,Publisher: O’Re
主要内容 Intellij IDEA开发环境简介 Intellij IDEA Scala开发环境搭建 Intellij IDEA常见问题及解决方案 Intellij IDEA常用快捷键 1. Intellij IDEA开发环境简介 具体介绍请参见:http://baike.baidu.com/link?url=SBY93H3SPkmcmIOmZ8H60O1k4iVLg
Task执行成功时的结果处理 在上一节中,给出了Task在Executor上的运行代码演示,我们知道代码的最终运行通过的是TaskRunner方法 class TaskRunner( execBackend: ExecutorBackend, val taskId: Long, val attemptNumber: Int,
Task执行 在上一节中,我们提到在Driver端CoarseGrainedSchedulerBackend中的launchTasks方法向Worker节点中的Executor发送启动任务命令,该命令的接收者是CoarseGrainedExecutorBackend(Standalone模式),类定义源码如下: private[spark] class CoarseG
在上一节中,我们提到Task提交通过makeOffers提交到Executor上 // Make fake resource offers on just one executor private def makeOffers(executorId: String) { // Filter out executors under killin
Task提交 在上一节中的 Stage提交中我们提到,最终stage被封装成TaskSet,使用taskScheduler.submitTasks提交,具体代码如下: taskScheduler.submitTasks(new TaskSet( tasks.toArray, stage.id, stage.latestInfo.attemptId, s
Stage提交 调用流程: 1.org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted 2. org.apache.spark.scheduler.DAGScheduler.handleJobSubmitted.submitStage 3. org.apache.spark.scheduler.DAGSch
博文推荐:http://blog.csdn.net/anzhsoft/article/details/39268963,由大神张安站写的Spark架构原理,使用Spark版本为1.2,本文以Spark 1.5.0为蓝本,介绍Spark应用程序的执行流程。 本文及后面的源码分析都以下列代码为样板 import org.apache.spark.{SparkConf, S
Stage划分 在上一节中我们讲了 Spark Job的提交,在该讲中我们提到,当rdd触发action操作之后,会调用SparkContext的runJob方法,最后调用的DAGScheduler.handleJobSubmitted方法完成整个job的提交。然后DAGScheduler根据RDD的lineage进行Stage划分,再生成TaskSet,由TaskSche
前一我们分析了SparkContext的创建,这一节,我们介绍在RDD执行的时候,如何提交job进行分析,同样是下面的源码: import org.apache.spark.{SparkConf, SparkContext} object SparkWordCount{ def main(args: Array[String]) { if (args.leng
作者:摇摆少年梦 微信号: zhouzhihubeyond spark-submit 脚本应用程序提交流程 在运行Spar应用程序时,会将spark应用程序打包后使用spark-submit脚本提交到Spark中运行,执行提交命令如下: root@sparkmaster:/hadoopLearning/spark-1.5.0-bin-hadoop2.4/bin# .
Spark 1.5.0 远程调试 作者:摇摆少年梦 微信号:zhouzhihubeyond 先决条件 已安装好Spark集群,本例子中使用的是spark-1.5.0. 安装方法参见:http://blog.csdn.net/lovehuangjiaju/article/details/48494737 已经安装好Intellij IDEA,本例中使用的是Intel
参考书目:鸟哥的LINUX私房菜基础学习篇(第三版) Linux Shell Scripting Cookbook 本节主要内容 基础正则表达式 1. 基础正则表达式 (1)^行开始符 ^匹配一行的开始,例如’^Spark’ 匹配所有Spark开始的行 //grep -n表示查找到的结果显示行号 root@sparkslav
本文主要内容 case控制结构 read命令 管道 1. case控制结构 参考:http://blog.csdn.net/dreamtdp/article/details/8048720 case控制结构语法格式: case expression in pattern1 ) statements ;; pattern2
本节主要内容 while循环控制结构 if条件判断 until循环控制结构 1. while循环控制结构 本节例子来源:http://blog.chinaunix.net/uid-25880122-id-2901409.html 语法格式: while expression do command command done (1)计数器格式 适用于循环次
本节主要内容 shell脚本调试 shell函数 shell控制结构初步 1. shell脚本调试 当脚本出错时,需要对脚本进行调试,学会脚本调试是每个linux系统使用者必备技能。shell脚本调试无需任何额外的工具,只需要要在脚本文件前加-x选项即可,创建debug.sh文件,内容如下: #!/bin/bash #Filename: debug.sh ech
本节主要内容 shell数组 shell命令别名 时间操作 1. Shell数组 同C、C++等语言一样,shell脚本也提供了数组这样一个重要的数据结构,shell中的数组有两种,一种为普通数组,另外的一种称为关联数组。普通数据的存取通过整数进行,关联数组的存取通过字符串进行。具体如下: //用()定义一个数组,注意数组元素间不能用,否则达不到预期目的 roo
参考书目:linux shell scripting cookbook 本节主要内容 shell命令行中的基本运算 文件描述符与文件重定向 1. shell命令行中的基本运算 通过上一节我们知道,Linux Bash shell 命令行的变量都被解析成字符串,如 //变量被解析为字符串 root@sparkmaster:~/ShellLearning/cha
本节主要内容 shell编程简介 变量定义 常用特殊变量 1. shell编程简介 学习linux操作系统最让人着迷的事情莫过于shell脚本编程,这是因为如果要完成某些复杂的功能,单纯地通过GUI操作不可能达到,shell脚本可以直接与操作系统内核打交道,从而完成任意复杂的任务。shell有很多种,最常用的是Bash (Bourne Again Shell),它是L
本节主要内容 spark-shell spark-submit spark-sql spark-class 总结 1. spark-shell spark-shell脚本文件内容如下: #!/usr/bin/env bash # # Licensed to the Apache Software Foundation (ASF) under one or mo
译者:摇摆少年梦 原文地址:https://databricks.com/blog/2015/09/24/spark-survey-results-2015-are-now-available.html SAN FRANCISCO, CA–(Marketwired - Sep 24, 2015) - 由Apache Spark创建者所成立的公司——Databricks公司
本节主要内宾 Spark SQL简介 DataFrame 1. Spark SQL简介 Spark SQL是Spark的五大核心模块之一,用于在Spark平台之上处理结构化数据,利用Spark SQL可以构建大数据平台上的数据仓库,它具有如下特点: (1)能够无缝地将SQL语句集成到Spark应用程序当中 (2)统一的数据访问方式 DataFrames and
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 Spark运行方式 Spark运行原理解析 本节内容及部分图片来自: http://blog.csdn.net/book_mmicky/article/details/25714419 http://blog.csdn.net/yirenboy/article/detai
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 RDD transformation(续) RDD actions 1. RDD transformation(续) (1)repartitionAndSortWithinPartitions(partitioner) repartitionAndSortWithinPa
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本文主要内容 RDD 常用Transformation函数 1. RDD 常用Transformation函数 (1)union union将两个RDD数据集元素合并,类似两个集合的并集 union函数参数: /** * Return the union of this RDD
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 Spark重要概念 弹性分布式数据集(RDD)基础 1. Spark重要概念 本节部分内容源自官方文档:http://spark.apache.org/docs/latest/cluster-overview.html (1)Spark运行模式 目前最为常用的S
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 Intellij IDEA 14.1.4开发环境配置 Spark应用程序开发 1. Intellij IDEA 14.1.4开发环境配置 Intellij IDEA 功能十分强大,能够开发JAVA、Scala等相关应用程序,在依赖管理 智能提示等方面做到了极致,大家可
作者:周志湖 网名:摇摆少年梦 微信号:zhouzhihubeyond 本节主要内容 Hadoop生态圈 Spark生态圈 1. Hadoop生态圈 原文地址:http://os.51cto.com/art/201508/487936_all.htm#rd?sukey=a805c0b270074a064cd1c1c9a73c1dcc953928bfe4a5
作者:周志湖 微信号:zhouzhihubeyond 本节主要内容 Correlation 相关性分析 分层采样(Stratified sampling) 随机数据生成(Random data generation) 1. Correlation 相关性分析 相关性分析用于研究两个随机变量之间的依赖关系,它是统计学当中的一种十分重要的方法,在Spark中只实现