- 博客(17)
- 资源 (17)
- 收藏
- 关注
原创 Spark基础transformation操作实例(Scala版)
1.map算子def map() { val conf = new SparkConf() .setAppName("map") .setMaster("local") val sc = new SparkContext(conf) val numbers = Array(1,2,3,4,5) val n
2017-04-23 19:08:38 408
原创 Spark基础transformation操作实例(Java版)
1.map算子任何类型的RDD都可以调用map算子;在java中,map算子接收的参数是Function对象,在Function中,需要设置第二个泛型类型为返回的新元素的类型;同时,call()方法的返回类型也需要与第二个泛型的返回类型一致。在call()方法中,对原始RDD中的每一个元素进行各种处理和计算,并返回一个新的元素,所有新的元素组成一个新的RDD。private static
2017-04-23 17:21:35 1272
原创 《Java高并发程序设计》学习 --7.11 软件事务内存
在一些函数式编程语言中,支持一种叫做软件事务内存(STM)的技术。这里的事务和数据库中所说的事务非常类似,具有隔离性、原子性和一致性。与数据库事务不同的是,内存事务不具备持久性。在很多场合,某一项功能可能要由多个Actor协作完成。在这种协作事务中,如果一个Actor处理失败,那么根据事务的原子性,其他Actor所进行的操作必须要回滚。下面,看一个简单的案例。假设有一个公司要给它的员工发福
2017-04-10 22:55:03 983
原创 《Java高并发程序设计》学习 --7.10 多个Actor同时修改数据:Agent
在Actor的编程模型中,Actor之间主要通过消息进行信息传递。因此,很少发生多个Actor需要访问一个共享变量的情况。但在实际开发中,这种情况很难完全避免。如果多个Actor需要对同一个共享变量进行读写时,如何保证线程安全呢?在Akka中,使用一种叫做Agent的组件来实现这个功能。一个Agent提供了对一个变量的异步更新。当一个Actor希望改变Agent的值时,它会向这个Agent下发
2017-04-10 22:51:41 896
原创 《Java高并发程序设计》学习 --7.9 询问模式:Actor中的Future
由于Actor之间都是通过异步消息通信的。当发送一条消息给一个Actor后,通常只能等待Actor的返回。与同步方法不同,在发送异步消息后,接受消息的Actor可能还根本来不及处理你的消息,而调用方就已经返回了。这种模式与之前提到的Future模式非常相像。不同之处只是在传统的异步调用中,进行的是函数调用,但在这里,发送了一条消息。public class AskMain { publi
2017-04-09 11:34:15 631
原创 《Java高并发程序设计》学习 --7.8 Actor的内置转换状态
一个Actor内部消息处理函数可以拥有多个不同的状态,在特点的状态下,可以对同一消息进行不同的处理,状态之间也可以任意切换。现在模拟一个婴儿Baby,假设婴儿会拥有两种不同的状态,开心或者生气。当带他玩的时候,他总是表现出开心状态,当让他睡觉时,他就会非常生气。在这个简单的场景模拟中,会给这个婴儿Actor发送睡觉和玩两种指令。如果婴儿正在生气,还让他睡觉,他就会说“我已经生气了”,如果你
2017-04-09 11:31:13 305
原创 Scala学习--函数式编程
将函数赋值给变量//scala中的函数是一等公民,可以独立定义,独立存在,而且可以直接将函数作为值赋值给变量//scala的语法规定,将函数赋值给变量时,必须在函数后面加上空格和下划线def sayHello(name:String) { println("Hello," + name)}val sayHelloFunc = sayHello _sayHelloFunc("le
2017-04-09 08:23:28 622
转载 Scala学习--Trait
将trait作为接口使用//scala中的Trait是一种特殊的概念//在Trait中可以定义抽象方法,就与抽象类中的抽象方法一样,只要不给出方法的具体实现即可//类可以使用extends关键字继承Trait,注意,这里不是implement,而是extends,在scala中没有implement的概念,无论继承类还是Trait,统一都是extends//类继承Trait后,必须
2017-04-08 20:28:56 502
原创 《Java高并发程序设计》学习 --7.7 消息路由
Akka提供了非常灵活的消息发送机制。有时候,会使用一组Actor而不是一个Actor来提供一项服务。这一组Actor中所有的Actor都是对等的,也就是说可以找任何一个Actor来服务。这种情况下,如何才能快速有效地找到合适的Actor?或者说如何调度这些消息,才可以使负载更为均衡地分配在这一组Actor中。为了解决这个问题,Akka使用一个路由器组件(Router)来封装消息的调度。系统提
2017-04-08 17:22:40 1139
原创 《Java高并发程序设计》学习 --7.6 消息收件箱(Inbox)
Akka框架准备了一个叫做“收件箱”的组件,使用收件箱,可以很方便地对Actor进行消息发送和接收,大大方便了应用程序与Actor之间的交互。下面定义了当前示例中唯一一个Actor:public class MyWorker extends UntypedActor { private final LoggingAdapter log = Logging.getLogger(getCon
2017-04-08 17:18:08 813
原创 《Java高并发程序设计》学习 --7.5 Akka之选择Actor
Akka提供了一个ActorSelection类,用来批量进行消息发送,示意代码如下:for(int i=0; i<WORDER_COUNT; i++) {workers.add(system.actorOf(Props.create(MyWorker.class,i), "worker_" + i));}ActorSelection selection = getContext().
2017-04-08 17:15:02 1766
原创 《Java高并发程序设计》学习 --7.4 Akka之监督策略
Akka框架赋予了足够的控制权。在Akka框架内,父Actor可以对子Actor进行监督,监控Actor的行为是否有异常。大体上,监督策略可以分为两种:一种是OneForOneStrategy的监督,另一种是AllForOneStrategy。对于OneForOneStrategy的策略,父Actor只会对出问题的子Actor进行处理,比如重启或者停止,而对于AllForOneStrategy
2017-04-07 14:17:24 962
原创 《Java高并发程序设计》学习 --7.3 Akka之Actor的生命周期
一个Actor在actorOf()函数被调用后开始建立,Actor实例创建后,会回调preStart()方法。在这个方法里,我们可以进行一些资源的初始化工作。在Actor的工作过程中,可能会出现一些异常,这种情况下,Actor会需要重启。当Actor被重启时,会回调preRestart()方法(在老的实例上),接着系统会创建一个新的Actor对象实例(但它们都表示同一个Actor)。当新的Acto
2017-04-07 08:41:10 640
原创 《Java高并发程序设计》学习 --7.2 Akka之有关消息投递的一些说明
整个Akka应用是由消息驱动的。消息是除了Actor之外最重要的核心组件。作为在并发程序中的核心组件,在Actor之间传递的消息应该满足不可变性,也就是不变模式。因为可变的消息无法高效的在并发环境中使用。理论上Akka中的消息可以使用任何对象实例,但实际使用中,强烈推荐使用不可变对象。一个典型的不可变对象的实现如下:public final class ImmutableMessage {
2017-04-07 08:34:33 1046
原创 《Java高并发程序设计》学习 --7.1 Akka之Hello World
首先看一下,第一个Actor的实现:public class Greeter extends UntypedActor { public static enum Msg { GREET,DONE; } @Override public void onReceive(Object msg) throws Exception { if(msg ==Msg.GREET) { S
2017-04-06 21:33:50 2438
原创 《Java高并发程序设计》学习 --6.7. 原子类的增强
无锁的原子类操作使用系统的CAS指令,有着远远超越锁的性能。在Java 8中引入了LongAddr类,这个类也在java.util.concurrent.atomic包下,因此,它也是使用了CAS指令。1)更快的原子类:LongAddrAtomicInteger的基本实现机制,它们都是在一个死循环内,不断尝试修改目标值,知道修改成功。如果竞争不激烈,那么修改成功的概率就很高,否则,修改失败
2017-04-04 19:49:58 450
数据挖掘:概念与技术(中文第三版)
2016-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人