- 博客(52)
- 资源 (4)
- 收藏
- 关注
转载 Akka学习笔记07--TypedActor(有类型的Actor)
Akka 中的有类型 Actor 是 Active Objects 模式的一种实现,将异步的调用执行逻辑封装在一个方法内,在代码层面保证了的顺序执行思维。Active Objects 设计模式来自维基百科 Active Objects 。该设计模式包含了六种元素:代理:提供了面向客户端的带有公开方法的接口。接口:定义了到 active object 的请求方法(业务代码
2015-03-27 17:10:33 596
转载 Akka学习笔记06--Actor的消息
向Actor发送消息,分为两种方式:1.*****tell,或者使用符号“!”:没有返回值。写法如下:*******actor ! msg //or actor.tell(msg) //or actor tell msg 如果需要指定发送消息的actor,可以写成:actor.tell
2015-03-27 17:10:14 443
转载 Akka学习笔记05--Actor的创建
显而易见,是通过actorOf()方法创建一个actor,但有两种途径:•运用actor system。如:val system = ActorSystem("MyActorSystem") val myActor = system.actorOf(Props(new MyActor(10)), name = "myActor")
2015-03-27 17:08:57 444
转载 Akka学习笔记04--Actor生命周期
actor的生命周期大致上可分为下面三种阶段:•初始化和启动•通过执行特定的行为来接收和处理消息。•当接收到终止命令时,停止。此外,当actor的生命周期改变时,我们可以运用一些额外的可选方法(hooks)控制这些状态:•重写preStart()和postStop()方法:可以初始化/清空任何actor资源。•重写preRestart
2015-03-27 17:08:51 630
转载 Akka学习笔记03--计算多个句子中每个单词出现的次数
***********(暂时粗略写下,用空扩充。。)用到的主要方法(可参考:Akka学习笔记06--Actor的消息):1.tell,!。2.ask,?。3.sender。4.RoundRobinRouter,如代码段: val reduceActor=context.actorOf(Props[ReduceActor].withR
2015-03-27 17:08:20 592
转载 Akka学习笔记02--PI值计算,采用多核处理器并行计算
我们所使用的算法叫“embarrassingly parallel” 意思是每个子任务是独立完成的,与其它子任务无关。这个算法可以高度并行化,所以非常适合使用actor模型。以下是我们所使用的算法的公式:在这个特定的算法中,有一个主actor将序列分割成段并发送给工作actor来进行计算。当工作actor完成自己的序列段的计算后将结果传给主actor,由主actor进行汇总。
2015-03-27 17:07:27 628
转载 Akka学习笔记01--简介和HelloWorld程序
Akka 是一个用 Scala 编写的库,用于简化编写容错的、高可伸缩性的 Java 和 Scala 的 Actor 模型应用。Actor模型并非什么新鲜事物,它由Carl Hewitt于上世纪70年代早期提出,目的是为了解决分布式编程中一系列的编程问题。其特点如下:系统中的所有事物都可以扮演一个ActorActor之间完全独立在收到消息时Actor所采取的所有动作都是并行的,在一
2015-03-27 17:05:54 429
转载 Scala学习笔记09--隐式转化implicit
scala 使用 implicit 隐式转化时 , scala 编辑器发现对象的类型不匹配时,不会直接报错,而会在代码中尝试匹配implicit声明的object, 当然,相同方法签名的类必须唯一。----------------------------------------------------------------------------------------
2015-03-27 17:04:49 349
转载 scala学习笔记08--Option和case
Option是个数据类型,Map的get()方法返回的就是Option类型。做个标记,内容以后补充。object optionTest { def main(args: Array[String]): Unit = { println(captials("France")) //下个语句出错。
2015-03-27 17:03:13 484
转载 scala学习笔记07--样本类(case class)和模式匹配
样本类:添加了case的类便是样本类。这种修饰符可以让Scala编译器自动为这个类添加一些语法上的便捷设定。如下: 1.添加与类名一致的工厂方法。也就是说,可以写成Var("x")来构造Var对象。 2.样本类参数列表中的所有参数隐式获得了val前缀,因此它被当作字段维护。 3.编译器为这个类添加了方法toString,hashCode和equals等方法。
2015-03-27 17:03:05 776
转载 scala学习笔记06--主从构造器
在Scala中,有两种构造器,主构造器(primary constructor)和从构造器(auxiliary constructor)。主要点都夹杂在代码注释中,留存。/* 构造器 */ object constractTest { def main(args: Array[String]): Unit = { v
2015-03-27 17:01:54 486
转载 Scala学习笔记05--特质
在 Java 或者 Scala 的类中,super.method() 这样的方法调用是静态绑定的,也就是说当你在代码中写下 super.method() 的时候就能明确是调用它的父类的 method() 方法。然而,如果是在特质中写下了 super.method() 时,它的调用是动态绑定的。调用的实现奖在每一次特质被混入到具体类的时候才被决定。直截的讲就是超靠近后面的特质越优先起
2015-03-27 17:01:51 416
转载 Scala学习笔记05--控制抽象
控制抽象1. 本章作用:减少重复的代码。2. 高阶函数:将一个函数作为其他函数的参数传递。为了减少重复代码。2.1 书上的代码示例太墨迹,自己写个例子。第一步,先看两个函数:def sum(a: Int,b: Int, c: Int) = a + b + c; //将三个整数相加 def dec(a: Int, b:I
2015-03-27 17:00:15 345
转载 Scala学习笔记04
try...catch...finally处理异常的语句注意这里的返回值,处于try字句里面。finally里如果显示地加入return,则返回值处于finally字句里。代码示例:def tryTest()={ try{ "try"; }catch { case e: Exception => println
2015-03-27 16:58:48 350
转载 Scala学习笔记03
for循环里的过滤器:有些时候你不想枚举一个集合类的全部元素。而是想过滤出一个子集。你可以通过把过滤器:filter:一个if子句加到for的括号里做到。val filesHere = (new java.io.File(".")).listFiles; for (file 等价于:for (fi
2015-03-27 16:58:33 293
转载 Scala学习笔记02
Scala的容器:List:def listTest()={ val list1 = List(1,2,3); list1.foreach((li: Int) => print(li + " ") ); println(); val list2 = List(4,5,6); //:::,合并两个列表
2015-03-27 16:57:55 325
转载 scala学习笔记01
编辑器:IntelliJ IDEA新建项目:project->Non-SBT项目。新建Scala Class->Kind选择Object。HelloWorld代码:object HelloWorld { def main(args: Array[String]) { var msg: String = "Hello
2015-03-27 16:56:28 525
转载 clojure-基本语法-集合(二)
三、映射Map Map存储一个键-值对的集合。键和值都可以是任何数据类型的对象,无论是基本数据类型还是其它映射。然而,使用关键字来作为映射的键非常合适,因此它们经常在应用映射的场合被使用。clojure的Map有三种实现方式:数组映射、哈希映射和有序映射。它们分别使用数组、哈希表和二叉树来作为底层实现。数组映射适用于较小的映射,而对哈希映射和有序映射的比较则要基于特定应用场合的情况。Map形式
2015-03-27 16:40:30 1246
转载 clojure-基本语法-集合(三)
操作集合的通用语句 1、count: count函数返回集合中元素的个数,如果count参数为nil,则返回0 Java代码 user=> (count nil) 0 user=> (count []) 0 user=> (count [1 2 3]) 3 user=> (count '(1 "a")) 2 us
2015-03-27 16:40:26 547
转载 clojure-基本语法-集合(一)
Clojure提供以下集合类型: list, vector, set, map。并且可以使用Java里面提供的集合类型。所有的clojure集合是不可修改的、异源的以及持久的。不可修改表示集合产生之后,不能从集合里面增加或删除元素。异源表示集合里面可以装任意类型的数据。持久的表示集合有更新时,更新之前的数据还在。CLojure以一种高效的,共享内存的方式来实现集合。 因为clojure里面的集
2015-03-27 16:39:58 1046
转载 clojure-基本语法-流程控制(二)
二、异常处理 Clojure代码里面抛出来的异常都是运行时异常。当然从Clojure代码里面调用的java代码还是可能抛出那种需要检查的异常的。try,catch,finally 以及throw 提供了和java里面类似的功能: try、catch、throw、finally: Java代码 user=> (try (throw (Exception. "er
2015-03-27 16:38:58 451
转载 clojure-基本语法-符号及关键字
一、创建: Keyword: 关键字是一个内部字符串; 两个同样的关键字指向同一个对象; 通常被用来作为map的key。 Java代码 user=> (keyword 'foo) :foo user=> (keyword "foo") :foo user=> (keyword "user" "foo") :user/foo
2015-03-27 16:38:49 1117
转载 clojure-基本语法-流程控制(一)
一、标准的流程控制 if: 将一个判断表达式作为它的第一个参数进行求值。如果求值为true,那么就返回它的第二个参数(相当于“then”子句)的求值结果。如果结果为false(包括nil)就返回第三个参数的求值结果(相当于“else”子句),前提是有提供第三个参数并且不为空。 Java代码 user=> (defn is-small [number] (if
2015-03-27 16:38:26 477
转载 clojure-基本语法-函数定义
一、创建函数: fn: fn是一个宏(后面进行详细描述),用于定义一个简单的函数,如下: Java代码 user=> (fn [] "hello") #@eabd2f> user=> ((fn [] "hello")) "hello" user=> ((fn [x] x) "hello") ; 带参数 "hello"
2015-03-27 16:37:58 566
转载 clojure-基本语法-字符串类型
一、创建 函数str: 函数 (str) 接受任意数量的参数。如果参数不是字符串则将其转换为字符串,返回创建的新字符串。如果没有参数或为nil,则返回空字符串,""。 Java代码 user=> (str 1) "1" user=> (str -2.5) "-2.5" user=> (str "a") "a" user=>
2015-03-27 16:37:31 884
转载 clojure-基本语法-数字类型
一、算术运算 加法+: 加法函数(+)接受任意数值类型的参数,返回它们的和;没有参数时返回0。 Java代码 user=> (+) 0 user=> (+ 1) 1 user=> (+ 1 2 3 4) 10 减法-: 减法函数(-)接受任意数值类型的参数。如果只有一个参数,则返回它相反的数。当有多个参数时,
2015-03-27 16:36:42 553
转载 clojure-学习资料汇总
官方文档: http://clojure.org/documentation 中文资料(强烈推荐): 1.clojure入门教程 http://xumingming.sinaapp.com/302/clojure-functional-programming-for-the-jvm-clojure-tutorial/ 2.clojure文档翻译 http://code.
2015-03-27 16:36:00 736 1
转载 clojure-运行环境安装
一、clojure下载及安装 官方的入门指南: http://clojure.org/getting_started 下载clojure: (注:由于clojure运行在jvm之上,并且需要jdk1.5以上的版本) 稳定版下载地址(1.5): http://repo1.maven.org/maven2/org/clojure/clojure/1.5.0/clojure-
2015-03-27 16:34:41 1205
原创 kafka api 开发常忽略的事
在windows下开发连接linux 中的kafka集群的,java api中容易忽略,导致出现如下错误kafka Failed to send messages after 3 tries.解决办法修改 C:\Windows\System32\drivers\etc\hosts# 127.0.0.1 localhost# ::1
2015-03-25 15:26:29 504
转载 海量数据处理 算法总结
1. Bloom Filter【Bloom Filter】Bloom Filter(BF)是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。它是一个判断元素是否存在集合的快速的概率算法。Bloom Filter有可能会出现错误判断,但不会漏掉判断。也就是Bloom Filter判断元素不再集合,那肯定不在。如果判断元素存在集合中,
2015-03-23 15:29:01 708
转载 阿里巴巴实时数据公共层助力双11媒体直播
作者: 来源:CNET科技资讯网 时间:2014-11-21 15:45:25关键字:阿里巴巴 实时数据 今年的双11,相信大家对上面央视新闻图片中的数字大屏不会陌生了,除了媒体之外,在阿里巴巴西溪园区的媒体报告厅、指挥部等“要地”都有它的身影。当天,这一大屏在全球400多家媒体前面惊艳出场,并完美谢幕。阿里巴巴数据技术与产品部的实时数据公共层团队承担了
2015-03-23 15:23:48 657
转载 使用Storm实现实时大数据分析
摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。Shruthi Kumar和Siddharth Patankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析。CSDN在此编译、整理。简单和明了,Storm让大数据分析变得轻松加愉快。当今世界,公司的日常运营经常会生成TB级别的数据。数据来源囊括了互联网装置可以捕获
2015-03-23 14:27:09 599
转载 美国最大婚恋交友网站eHarmony的机器学习实践(转载的)
http://www.csdn.net/article/2015-03-19/2824267本文介绍机器学习美国在婚恋交友网站平台eHarmony的应用,eHarmony通过相容性 (compatibility)分级、相似性(affinity)计算和潜在相似性匹配的“三级跳”实现在线婚恋速配。文章也涉及具体特征和算法及相关文献。上周,我去洛杉矶参加了一个机器学习的meetup,一位主讲是e
2015-03-20 11:56:25 2813
转载 taokeeper——ZooKeeper监控
在公司内部,有不少应用已经强依赖zookeeper,zookeeper的工作状态直接影响它们的正常工作。目前开源世界中暂没有一个比较成熟的zookeeper-monitor, 于是开始zookeeper监控这块工作。目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响:用于zookeeper写日志的目录要有足够
2015-03-18 09:28:56 2015
转载 zookeeper web界面查看工具node-zk-browser安装
网上关于zookeeper的web界面查看工具有好几个,Node-ZK-Browser的界面相对好点,是用nodejs写的,尝试搭建了下。1. 安装nodejs到 https://github.com/joyent/node/tags 下载了源码包node-0.8.14.zip。执行如下命令编译nodejs。1./configure --
2015-03-13 17:04:46 4965
转载 Presto实现原理和美团的使用实践(转载)
Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前,Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Faceb
2015-03-13 10:42:21 779
转载 五种常用基数估计算法效果实验及实践建议
之前我曾写过一系列关于基数估计(cardinality estimation)算法的文章,文中介绍了一些常用基数估计算法的原理。最近对常用的基数估计算法做了一些实验,这篇文章描述了实验结果,包括这些算法的估计效果及误差状况,主要通过图表展示。通过观察实验数据和可视化图表可以加强对各种基数估计算法理论分析的直观理解。文章首先会对实验做一些说明,然后通过图表详细展示实验数据,最后会根据实验结果
2015-03-13 10:17:34 1168 1
转载 宽表和窄表的建设该如何选择?
这个问题相信纠结了很多从是数据库开发、数据仓库开发和后台开发人员;单单考虑这个问题,难给出一个绝对的答案;本人从事数据仓库开发工作到现在已经有一年半时间了,对于这个问题,我也曾经纠结过,但是是否有绝对的答案呢?事实上任何东西都没有绝对的说法。考虑这样的一个问题,一个公司有这样的一个需求:设计销售领域的订单事实表,该事实表应该包含哪些维度和度量?事实表和维表该分别如何去设计?
2015-03-12 11:38:44 3527
原创 01电商业务-订单业务
订单主要信息HIVE表CREATE EXTERNAL TABLE orders{order_id bigint,-- 订单id}后台完善
2015-03-12 11:36:26 465
转载 性能测试:SequoiaDB vs. MongoDB vs. Cassandra vs. HBase
在本篇测试报告中,我们使用Yahoo!发布的标准YCSB测试规则,对MongoDB、SequoiaDB、Cassandra、HBase进行对比,并尝试给出每种不同产品所适用的应用场景。在测试配置中,我们尽可能对全部产品做到高可用配置,而在一致性级别上则使用最终一致性。在测试中我们会对两种类型的NoSQL数据库做横向对比,包括Document-Oriented文档类数据库、以及Big-Tab
2015-03-11 17:32:38 1692
zkoss开发培训资料
2014-07-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人