`
文章列表
启动成功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 ...
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 ...
Global site tag (gtag.js) - Google Analytics