51CTO博客开发
前言: 无论什么样的并行计算方式,其终极目的都是为了有效利用多机多核的计算能力,并能灵活满足各种需求。相对于传统基于单机编写的运行程序,如果使用该方式改写为多机并行程序,能够充分利用多机多核cpu的资源,使得运行效率得到大幅度提升,那么这是一个好的靠谱的并行计算方式,反之,又难使用又难直接看出并行计算优势,还要耗费大量学习成本,那就不是一个好的方式。 由于并行计算在互联网应用的业务场景都比
分布式协同是分布式应用中不可缺少的,通常担任协调者的角色,或者说是将多机协同的职责从分布式应用中独立出来,以减少系统的耦合性和增强扩充性。Apache的Zookeeper, google的Chubby都是分布式协同的实现者。fourinone实际上可以单独当做Zookeeper用,它使用最少的代码实现了Zookeeper的所有功能,并且力图做到功能更强但是使用更简洁。 一、实现原理 fou
本ppt完整介绍了大数据的背景、机遇和挑战,并且相关的落地技术和业界状况,为大数据的研究提供全面的参考 http://down.51cto.com/data/531772
在分布式计算上手demo,分布式计算sayhello,分布式计算完整demo中, 对于工人(worker)、工头(ctor),parkserver在多台计算机上的部署和配置: 每台计算机放置实现类,fourinone.jar,config.xml文件即可,parkserver的ip配置要保持一致(也可以用域名) 假设有192.0.0.1,192.0.0.2,192.0.0.3三台计算机:
假设你已经看过分布式计算上手demo指南,对fourinone基本的分布式并行计算方式有了初步了解。 本demo演示了工头和几个工人之间互相sayhello的简单例子,从而了解到集群计算节点之间互相交互,以及工头批量处理和工人互相传递数据(多用于合并)的功能。 HelloCtor:是一个工头实现,它实现giveTask接口,它首先通过getWaitingWorkers获取到一个线上工人的集合,
对于一个分布式计算的应用,如果不需要自动部署,将工头工人程序文件分别部署到相应机器运行即可,不需要过多配置。 fourinone2.0可以支持自动化class和jar包部署,class和jar包只需放在工头机器上, 各工人机器会自动获取并执行,兼容操作系统,不需要进行安全密钥复杂配置. 假设有一个分布式计算job,包括三个程序文件: JobCtor:包工头实现 JobWorker:农民工实
淘宝Fourinone2.0提供了一个4合1分布式框架和简单易用的编程api,实现对多台计算机cpu,内存,硬盘的统一利用,从而获取到强大计算能力去解决复杂问题。Fourinone框架提供了一系列并行计算模式(农民工/包工头/职介绍/手工仓库)用于利用多机多核cpu的计算能力;提供完整的分布式缓存和小型缓存用于利用多机内存能力;提供像操作本地文件一样操作远程文件(访问,并行读写,拆分,排它,复制,
Fourinone2.0里通过FttpAdapter和FileAdapter实现文件io的支持。其中,FttpAdapter提供对远程文件的操作,FileAdapter提供对本地文件的操作,两者api和使用相似,这里主要说明FttpAdapter: FttpAdapter提供了对分布式文件的便利操作, 将集群中所有机器的硬盘资源利用起来,通过统一的fttp文件路径访问,如: windows:f
FileBatch类提供了一系列对批量并行读写操作支持(包括对FttpAdapter和FileAdapter),它跟并行读写的区别是不需要检查结果,会等到所有并行读写任务全部完成才返回,并在发生异常时提供事务补偿支持。 1、批量并行读: public Result<byte[]>[] readAllBatch(TryByteReadAdapter[] fras) 实现对多个Ftt
FttpAdapter是通过FttpReadAdapter的tryReadAll方法进行并行读 FttpAdapter fa = new FttpAdapter("fttp://10.232.20.151/home/log/1.log"); Result<byte[]> rs = fa.getFttpReader().tryReadAll(); 调用tryRe
假设通过FttpAdapter已经读取到远程文件中一部分数据,如下: FttpAdapter fa = new FttpAdapter("fttp://10.232.20.151/home/log/1.log"); FttpReadAdapter reader = fa.getFttpReader(); byte[] bts = reader.readAll(); 上面
FttpAdapter是通过FttpReadAdapter来直接读取远程文件内容 FttpAdapter fa = new FttpAdapter("fttp://10.232.20.151/home/log/1.log"); FttpReadAdapter reader = fa.getFttpReader(); byte[] bts = reader.readAll(
集群文件复制是经常面临的需求,比如备份容灾,文件迁移,同步数据等等 FttpAdapter提供了简单高效的文件复制方法,支持远程文件的集群内复制 FttpAdapter fromfile = new FttpAdapter("fttp://10.232.20.151/home/log/a.log"); FttpAdapter tofile = fromfile.copyT
FttpAdapter fa = new FttpAdapter("fttp://10.232.20.151/home/qianfeng.py/fttp/tmp/1.log"); 上面实例化一个FttpAdapter类,并输入一个fttp路径,可以是一个目录路径,也可以是个文件路径 FttpAdapter类提供了一系列访问远程文件的方法: createDirectory和
启动FttpAdapter后,可以使用它的api进行相关操作: FttpAdapter.fttpRoots()是一个静态方法,可以得到集群文件系统根目录,它返回一个String数组,通常是ip字符对应每台计算机。 listRoots()方法可以得到每台计算机上的硬盘目录,比如: FttpAdapter fa = new FttpAdapter("fttp://"+fttp
FttpAdapter的使用很简单,在每台计算机上启动一个FttpServer即可,另外需要启动一个ParkServer负责协同。ParkServer也可以和其中一个FttpServer放在相同计算机上 1、启动ParkServerDemo(它的IP端口已经在配置文件的PARK部分的SERVERS指定) 2、每台计算机启动FttpServer,需要指定该计算机的ip为输入参数 启动好后,然后
Fourinone在去年11月在淘宝内部通过了压测,上亿排序和wordcount等经典指标均优于hadoop,这是一份长达10多页的详细测试报告: http://down.51cto.com/data/337250 (下载无须积分)
fourinone-1.11.09 hadoop-0.21.0
很多人是通过wordcount入门分布式并行计算, 该demo演示了Hadoop的经典实例wordcount的实现 输入数据:n个数据文件,每个1g大小,为了方面统计,每个文件的数据由“aaa bbb ... ccc”(由空格分割的1k单词组)不断复制组成。 输出数据:输出这n*1g个数据文件中的每个单词总数 fourinone简单实现思路,假设有n台计算机,将这n个
FourInOne也可以当成简单的mq来使用,该demo演示了队列和主题订阅两种模式的实现 一、队列 将domain视为mq队列,每个node为一个队列消息,检查domain的变化来获取队列消息。 Sender:是一个队列发送者,他发送消息的实现是在queue上创建一个匿名节点来存放消息 pl.create(queue, (Serializable)obj); Receiver:是一个队
利用fourinone可以轻松实现分布式缓存功能: 1、中小应用的缓存实现:直接启动一个parkserver,分别在两个java进程中使用ParkLocal的create和get方法即可实现缓存的读写操作。 2、如果是大型网站的缓存,单台parkserver的压力不能承受,需要建立多台CacheServer,并且使用CacheFacade进行负载均衡,CacheFacade会根据key自动寻找
LockDemo是利用fourinone进行分布式锁的实现: 可以启动多个LockDemo实例,每个实例在fourinone上建立一个自己的node, node的domain为lock, node的值为node 然后再轮循判断domain lock的第一个元素是否是自己的node,如果是,就执行,这里模拟线程执行8秒,执行完将自己的node删除,代表释放锁;如果不是,就继续等待。 运行步
对于像淘宝这样上万台服务器集群环境的大型互联网应用, 通常我们面临这样一种需求: 我们需要一个集群管理者管理集群里的服务器,同一个集群中任何一台服务器宕机,其他服务器都能感知. 如果是集群管理者宕机,集群中所有的服务器不能受任何影响,能实时切换到备份管理者上被提供服务。 这个demo演示了如何利用fourinone在简单几行代码下去实现上述功能 GroupManager:是一个集
FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要考虑到分布式的协
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号