spark下测试akka的分布式通讯功能
采用的spark版本为1.1.0
scala版本为2.10.4
- 编写scala类文件myactors.scala:
package bluejoe import akka.actor._
import com.typesafe.config.ConfigFactory
import akka.remote.RemoteScope class LocalActor extends akka.actor.Actor { //Get a reference to the remote actor
val remoteActor = context.actorFor("akka://RemoteNodeApp@10.0.224.170:2552/user/remoteActor")
def receive: Receive = {
case message: String =>
println("<<<<<<<<<<<<<"+message)
}
} class RemoteActor extends akka.actor.Actor {
def receive: Receive = {
case message: String =>
// Get reference to the message sender and reply back
println(">>>>>>>>>>>>"+message)
}
} - 编译生成class文件:
scalac -classpath /usr/local/spark/lib/spark-assembly-1.1.0-hadoop2.3.0.jar myactors.scala
- 启动spark-shell,注意指定classpath:
spark-shell --driver-class-path /root
- 准备2个配置文件,remote.conf内容如下:
RemoteSys {
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
remote {
transport = "akka.remote.netty.NettyRemoteTransport"
netty {
hostname = "10.0.224.170"
port = 2552
}
}
}
} - client.conf的内容如下:
LocalSys {
akka {
actor {
provider = "akka.remote.RemoteActorRefProvider"
}
}
} - 在spark-shell中输入server端代码:
import bluejoe._
import akka.actor._
import com.typesafe.config.ConfigFactory val system = ActorSystem("RemoteNodeApp", ConfigFactory.parseFile(new java.io.File("/root/remote.conf")).getConfig("RemoteSys"))
val remoteActor = system.actorOf(Props[RemoteActor], name = "remoteActor") - 启动另外一个spark-shell,输入client端代码:
import bluejoe._
import akka.actor._
import com.typesafe.config.ConfigFactory // load the configuration
val config = ConfigFactory.parseFile(new java.io.File("/root/client.conf")).getConfig("LocalSys")
val system = ActorSystem("LocalNodeApp", config)
val clientActor = system.actorOf(Props[LocalActor])
clientActor ! "Hello"
Thread.sleep(4000)
system.shutdown()
spark下测试akka的分布式通讯功能的更多相关文章
- Spark集群 + Akka + Kafka + Scala 开发(3) : 开发一个Akka + Spark的应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...
- Spark集群 + Akka + Kafka + Scala 开发(2) : 开发一个Spark应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境,我们已经部署好了一个Spark的开发环境. 本文的目标是写一个Spark应用,并可以在集群中测试. ...
- Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境
目标 配置一个spark standalone集群 + akka + kafka + scala的开发环境. 创建一个基于spark的scala工程,并在spark standalone的集群环境中运 ...
- Spark如何使用Akka实现进程、节点通信的简明介绍
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...
- Spark集群 + Akka + Kafka + Scala 开发(4) : 开发一个Kafka + Spark的应用
前言 在Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境中,我们已经部署好了一个Spark的开发环境. 在Spark集群 + Akka + Kafka + S ...
- SPARK如何使用AKKA实现进程、节点通信
SPARK如何使用AKKA实现进程.节点通信 <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 < ...
- Net Core集成Exceptionless分布式日志功能以及全局异常过滤
Net Core集成Exceptionless分布式日志功能以及全局异常过滤 相信很多朋友都看过我的上篇关于Exceptionless的简单入门教程[asp.Net Core免费开源分布式异常日志收集 ...
- 苏宁基于Spark Streaming的实时日志分析系统实践 Spark Streaming 在数据平台日志解析功能的应用
https://mp.weixin.qq.com/s/KPTM02-ICt72_7ZdRZIHBA 苏宁基于Spark Streaming的实时日志分析系统实践 原创: AI+落地实践 AI前线 20 ...
- Android WebSocket实现即时通讯功能
最近做这个功能,分享一下.即时通讯(Instant Messaging)最重要的毫无疑问就是即时,不能有明显的延迟,要实现IM的功能其实并不难,目前有很多第三方,比如极光的JMessage,都比较容易 ...
随机推荐
- POJ 2749--Building roads(2-SAT)
题意:John有n个牛棚,每个牛棚都住着一些牛,这些牛喜欢串门(drop around, 学到了...),所以John想要建几条路把他们连接起来.他选择的方法是建两个相连中转站,然后每个牛棚连接其中一 ...
- Apache Hadoop 源码阅读
总之一句话,这些都是hadoop-2.2.0的源代码里有的.也就是不光只是懂理论,编程最重要,还是基本功要扎实啊.... 在hadoop-2.2.0的源码里,按Ctrl + Shift + T . 跳 ...
- 【现代程序设计】【Homework-01】
1维的最大子数组之和 对于1维的最大子数组之和 假设f[i]表示:对于1..i这个序列中,包含i这个元素的最大序列的值 则对于f[i],0<i<=n; 应该有 f[i]=max(a[i], ...
- Java网络编程(TCP协议-练习-上传文本文件)
客户端: package WebProgramingDemo; import java.io.BufferedReader; public class UploadTextClient { /** * ...
- ASP.NET基础系列
一.HttpContext概述 1).如何获取对象: 在WebForm或类库(包括MVC)项目中,通过Current静态属性,就能够获得HttpContext的对象: HttpContext cont ...
- 【STL源码学习】STL算法学习之二
第一章:前言 学习笔记,记录学习STL算法的一些个人所得,在以后想用的时候可以快速拾起. 第二章:明细 copy 函数原型: template <class InputIterator, cla ...
- AFNetworking2.x 使用过程中遇到的问题
1.//以下写一下关于AFNetworking2.0的GET数据请求问题,刚開始的时候没有写以下标红的代码,所以导致有一个问题.错误显演示样例如以下: Error: Error Domain=AFNe ...
- RefernceError : jQuery is not define
使用ligerUI 的时候,代码没有什么错误,可是不能正常显示组件 ,火狐debug显演示样例如以下错误: 最后发现是引入文件的顺序错了,最好依照ligerui demo中的顺序引入js文件,这样就不 ...
- ALERT日志中常见监听相关报错之中的一个:ORA-609错误的排查
參考MOS文档有: Troubleshooting Guide ORA-609 : Opiodr aborting process unknown ospid (文档 ID 1121357.1) Al ...
- 【25】考虑写出一个不抛异常的swap函数
1.swap交换对象值,std提供了实现方法模版的实现,它的实现是交换对象值. namespace std { template<typename T> void swap(T& ...