- 浏览: 133340 次
博客专栏
-
基于Fourinone实现...
浏览量:58367
最新评论
-
tx6731:
同问2楼问题,一直没有输出result,除非加sleep
<一>基于Fourinone实现分布式计算上手指南和demo -
妞给爷小个:
<一>基于Fourinone实现分布式计算上手指南和demo -
Mac_J:
楼主和我的想法几乎一模一样
Fourinone架构原理ppt -
chinshishoo:
开始学习分布式,找到这个4in1,立马放弃hadoop,had ...
CoolHash数据库引擎压测对比报告 -
fourinone:
lovingshu 写道 ,看了相关的,觉得coolhash确 ...
CoolHash数据库的产品宣言(Fourinone4.0版)
文章列表
启动成功FttpServer后,可以使用FttpAdapter的api进行相关操作:
FttpAdapter.fttpRoots()是一个静态方法,可以得到集群文件系统根目录,它返回一个String数组,通常是ip字符对应每台计算机。 listRoots()方法可以得到每台计算机上的硬盘目录,比如: FttpAdapter fa = new FttpAdapter("fttp://"+fttproots[i]); String[] roots = fa.listRoots();
FttpRootDemo显示了获取集群文件的根目录和它们各自下面的硬盘目录 邮箱:Fo ...
FttpAdapter的使用很简单,在每台计算机上启动一个FttpServer即可,另外需要启动一个ParkServer负责协同。ParkServer也可以和其中一个FttpServer放在相同计算机上
1、启动ParkServerDemo(它的IP端口已经在配置文件的PARK部分的SERVERS指定)
2、每台计算机启动FttpServer,需要指定该计算机的ip为输入参数
启动好后,然后打开浏览器访问http://localhost:9080/admin/fttp.jsp,可以看到整个集群的文件系统(如下图),说明启动成功。这里的localhost是默认值,通常为ParkServer的i ...
Fourinone提供了一个4合1分布式框架和简单易用的编程api,实现对多台计算机cpu,内存,硬盘的统一利用,从而获取到强大计算能力去解决复杂问题。Fourinone框架提供了一系列并行计算模式(农民工/包工头/职介绍/手工仓库)用于利用多机多核cpu的计算能力;提供完整的分布式缓存和小型缓存用于利用多机内存能力;提供像操作本地文件一样操作远程文件(访问,并行读写,拆分,排它,复制,解析,事务等)用于利用多机硬盘存储能力;由于多计算机物理上独立,Fourinone框架也提供完整的分布式协同和锁以及简化MQ功能,用于实现多机的协作和通讯。
附件ppt包括了fourinon背景,架构,原 ...
Fourinone在去年11月在淘宝内部通过了压测,上亿排序和wordcount等经典指标均优于hadoop,这是一份长达10多页的详细测试报告(附件)
fourinone-1.11.09
hadoop-0.21.0
体积
82K
71M
依赖关系
就一个jar,没有依赖
约12项jar包依赖
配置
就一个配置文件
较多配置文件和复杂属性
集群搭建
简单,每台机器放一个jar和配置文件
复杂,需要linux操作基础和ssh等复杂配置,还需要较多配置文件配置
计算模式
提供两种计算模式:包工头和工人直接交互方式,包工头和工人通过消息中枢方式交互,后者不需要工人 ...
很多人是通过wordcount入门分布式并行计算, 该demo演示了Hadoop的经典实例wordcount的实现
输入数据:n个数据文件,每个1g大小,为了方面统计,每个文件的数据由“aaa bbb ... ccc”(由空格分割的1k单词组)不断复制组成。
输出数据:输出这n*1g个数据文件中的每个单词总数
fourinone简单实现思路,假设有n台计算机,将这n个1g数据文件放置在每台计算机上,每台计算机各自统计1g数据,然后合并得到结果
WordcountCT:为一个工头实现,它把需要处理的数据文件名称发给各个工人,然后用一个HashMap<string> ...
FourInOne也可以当成简单的mq来使用,该demo演示了队列和主题订阅两种模式的实现
一、队列
将domain视为mq队列,每个node为一个队列消息,检查domain的变化来获取队列消息。
Sender:是一个队列发送者,他发送消息的实现是在queue上创建一个匿名节点来存放消息
pl.create(queue, (Serializable)obj);
Receiver:是一个队列接收者,他轮循queue上有没有最新消息,有就取出,并删除该节点,注意他是每次获取第一个消息,这样保证消息读取的顺序。
运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件 ...
利用fourinone可以轻松实现分布式缓存功能:
1、中小应用的缓存实现:直接启动一个parkserver,分别在两个java进程中使用ParkLocal的create和get方法即可实现缓存的读写操作。
2、如果是大型网站的缓存,单台parkserver的压力不能承受,需要建立多台CacheServer,并且使用CacheFacade进行负载均衡,CacheFacade会根据key自动寻找存储它的CacheServer,数据在多台CacheServer上是均匀分布的,虽然每台CacheServer的数据都不一样,但是每台CacheServer都可以自己的备份服务器,CacheServer ...
- 2011-12-07 11:34
- 浏览 2474
- 评论(0)
LockDemo是利用fourinone进行分布式锁的实现:
可以启动多个LockDemo实例,每个实例在fourinone上建立一个自己的node, node的domain为lock, node的值为node
然后再轮循判断domain lock的第一个元素是否是自己的node,如果是,就执行,这里模拟线程执行8秒,执行完将自己的node删除,代表释放锁;如果不是,就继续等待。
运行步骤:
1、启动ParkServerDemo(它的IP端口已经在配置文件指定)
2、运行LockDemo,node名称动态传入参数
先后启动了多个LockDemo实例,观察他们按照预期的顺序先后获取到 ...
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要考虑到分布式的协同和故障处理。如果仅仅是为了实现这个简单的初衷,为什么一切会那么复杂,我觉的自己可以写一个更简单的东西,它不需要过度设计,只需要看上去更酷一点,更小巧一点,功能更强一点。于是我将自己对分布式的理解融入到这个框架中,考虑到底层实 ...
对于像淘宝这样上万台服务器集群环境的大型互联网应用, 通常我们面临这样一种需求:
我们需要一个集群管理者管理集群里的服务器,同一个集群中任何一台服务器宕机,其他服务器都能感知. 如果是集群管理者宕机,集群中所 ...
在分布式多台机器环境下,维持统一的配置信息是最常见的需求, 当配置信息改变时,所有的机器能实时获取并更新。
fourinone通过park进行配置信息管理,park提供创建和修改信息的方法,并支持轮循和事件响应两种方式获取变化的 ...
我们现实中的分布式计算存在多个环节,比如有的任务拆分,有的计算结果合并,或者是多个拆分和合并,他们之间是串行关系,也就是合并必须等待拆分和计算完成才能进行,同时每个拆分或者合并的任务又都是并行的过程。
CtorDemo:是包含了3个工头实例,对应3个环节,链式处理,实现过程获取到线上工人节点,进行调用,所有的分配任务和中间结果存储都由自己实现处理。
这里简单的将20条数据分配给多个工人处理,数据用data变量表示,j用来记录计算结果,如果j==20,标志结束,任务初始为一个id的字符传给工头实例1,工头加上自己名称的描述和数据data后传给工人处理,工人再加上自己的名称和处理信息返回给工 ...
本demo用最简洁的代码示范fourinone如何进行分布式计算,fourinone采用一种工头链式结合工人并行的计算结构简化分布式计算,能够通俗易懂并能深入控制整个计算过程
SimpleCtor:是一个工头实现,它实现giveTask接口,并通过getWait ...