FourInOne(中文名字 “四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的 hadoop当作一门学科学习时,似乎忘记了我们想解决问题的初衷:我们仅仅是想写个程序把几台甚至更多的机器一起用起来计算,把更多的cpu和内存利用上,来解决我们数量大和计算复杂的问题,当然这个过程中要考虑到分布式的协同和故障处理。如果仅仅是为了实现这个简单的初衷,为什么一切会那么复杂,我觉的自己可以写一个更简单的东西,它不需要过度设计,只需要看上去更酷一点,更小巧一点,功能更强一点。于是我将自己对分布式的理解融入到这个框架中,考虑到底层实现技术的相似性,我将Hadoop,Zookeeper,MQ,分布式缓存四大主要的分布式计算功能合为一个框架内,对复杂的分布式计算应用进行了大量简化和归纳。
|
fourinone-1.11.09 |
hadoop-0.21.0 |
体积 |
82K |
71M |
依赖关系 |
就一个jar,没有依赖 |
约12项jar包依赖 |
配置 |
就一个配置文件 |
较多配置文件和复杂属性 |
集群搭建 |
简单,每台机器放一个jar和配置文件 |
复杂,需要linux操作基础和ssh等复杂配置,还需要较多配置文件配置 |
计算模式 |
提供两种计算模式:包工头和工人直接交互方式,包工头和工人通过消息中枢方式交互,后者不需要工人节点可直接访问 |
计算更多倾向于文件数据的并行读取,而非计算过程的设计。JobTracke 跟TaskTracker直接交互, 查询NameNode后,TaskTracker直接从Datanode获取数据。 |
并行模式 |
N*N,支持单机并行,也支持多机并行,多机多实例并行 |
1*N,不支持单机并行,只支持多机单实例并行 |
内存方式 |
支持内存方式设计和开发应用,并内置完整的分布式缓存功能 |
以hdfs文件方式进行数据处理,内存方式计算支持很弱 |
文件方式 |
自带文件适配器处理io |
Hdfs处理文件io |
计算数据要求 |
任意数据格式和任意数据来源,包括来自数据库,分布式文件,分布式缓存等 |
Hdfs内的文件数据,多倾向于带换行符的数据 |
调度角色 |
包工头,可以有多个,支持链式处理,也支持大包工头对小包工头的调度 |
JobTracke,通常与NameNode一起 |
任务执行角色 |
农民工,框架支持设计多种类型的工人用于拆分或者合并任务 |
TaskTracker,通常与Datanode一起 |
中间结果数据保存 |
手工仓库,或者其他任意数据库存储设备 |
Hdfs中间结果文件 |
拆分策略 |
自由设计,框架提供链式处理对于大的业务场景进行环节拆分数据的存储和计算拆分根据业务场景自定义 |
以64m为拆分进行存储,以行为拆分进行计算
实现map接口,按行处理数据进行计算
|
合并策略 |
自由设计,框架提供农民工节点之间的合并接口,可以互相交互设计合并策略,也可以通过包工头进行合并 |
TaskTracker不透明,较少提供程序控制,合并策略设计复杂
实现reduce接口进行中间数据合并逻辑实现
|
内存耗用 |
无需要制定JVM内存,按默认即可,根据计算要求考虑是否增加JVM内存 |
需要制定JVM内存,每个进程默认1G,常常namenode,jobtracker等启动3个进程,耗用3G内存 |
监控 |
框架提供多环节链式处理设计支持监控过程,通过可编程的监控方式,给于业务开发方最大灵活的监控需求实现,为追求高性能不输出大量系统监控log |
输出较多的系统监控log,如map和reduce百分比等,但是会牺牲性能,业务监控需要自己实现 |
打包部署 |
脚本工具 |
上传jar包到jobtracker机器 |
平台支撑 |
支持跨平台,windows支持良好 |
多倾向于支持linux,Windows支持不佳,需要模拟linux环境,并且建议只用于开发学习 |
其他 |
协同一致性、分布式缓存、通讯队列等跟分布式计算关系密切的功能支持 |
不支持 |
总结: |
Hadoop并不是为了追求一个并行计算的框架而设计,提供快捷和灵活的计算方式去服务各种计算场景, 它更多的是一个分布式文件系统,提供文件数据的存储和查询,它的map/reduce更倾向于提供并行计算方式进行文件数据查询。而fourinone相反。 |
Fourinone和hadoop运行wordcount的对比测试(平均4核4g配置,输入数据为文件):
|
fourinone-1.11.09(n*4) |
fourinone-1.11.09(n*1) |
hadoop-0.21.0(n*1) |
3台机器*256M |
4s |
12s |
72s |
3台机器*512M |
7s |
30s |
140s |
3台机器*1G |
14s |
50s |
279s |
19台机器*1G |
21s |
60s |
289s |
10台机器*2G |
29s |
|
|
5台机器*4G |
60s |
|
|
说明:Fourinone可以充分利用单机并行能力,4核计算机可以4个并行实例计算,hadoop目前只能N*1;另外,可以由上图看出,如果要完成20g的数据,实际上fourinone只需要使用5台机器用60秒完成,比使用19台机器完成19g的hadoop节省了14台机器,并提前了 200多秒
相关分布式框架(jar格式)及demo代码下载:
http://download.csdn.net/detail/fourinone/3557912
http://www.skycn.com/soft/68321.html
分享到:
相关推荐
- 在不同规模的数据集(260M*3, 520M*3, 1.02G*3)下,Fourinone相较于Hadoop表现出更优的性能。 - **Fourinone:** - 单机3实例:13s/31s/67s - 3计算节点:12s/30s/50s - 19计算节点:21s/39s/80s - **...
Fourinone框架是将分布式协同的技术性和故障处理的可行性,把Hadoop、Zookeeper、MQ和分布式缓存的功能合并成一个框架。Fourinone采用的是domain/node两层结构,不仅保持了Zookeeper最本质的稳定性,而且还简化Watch...
fourinone号称了集成了hadoop,zk,memcache,mq于一身的四不像超级神器,致力于分布式应用。别的我不懂,今儿聊一下fourinone中的分布式缓存以及分布式文件系统,说到分布式,不得不用到网络通讯,不得不提及RPC,...
Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想解决问题...
本篇文章主要探讨了在Windows Azure平台上构建云应用时所使用的分布式框架——Fourinone 2.0,及其与Hadoop的比较分析。文章由一位资深Java技术专家撰写,他拥有超过十年的Java技术领域经验,曾担任淘宝网高级技术...
对比Hadoop,Fourinone在体积、依赖关系、配置复杂性、集群搭建难度、计算模式和数据处理方式等方面都有其独特优势。例如,Fourinone的配置更为简洁,支持更多样化的并行模式,更注重内存计算和分布式缓存,而Hadoop...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
| 特性 | Fourinone | Hadoop | |------------|------------------------------------|--------------------------------------| | 体积 | 82K | 71M | | 依赖关系 | 单一jar,无依赖 | 多个jar依赖 | | 配置 | 单个...
Hadoop是目前广泛使用的另一个分布式计算框架,但与Fourinone相比,Hadoop的结构更加复杂,它不仅包含了多个jar包依赖,而且配置过程也相对繁琐。而Fourinone的设计理念是简洁和高效,它的实现方式倾向于内存计算和...
Fourinone是淘宝自主研发的一个分布式并行计算框架,它巧妙地整合了Hadoop、ZooKeeper、MQ(消息队列)和分布式缓存这四大关键组件,为开发者提供了全面的分布式计算解决方案。 **Fourinone的功能特性:** 1. **...
与Hadoop相比,Fourinone在处理上亿级别的排序任务和WordCount等基础大数据运算时表现出更优的性能。这表明Fourinone在算法优化和资源调度上可能有独特的设计,能够更好地应对大规模并行计算的需求。 其次,报告中...
也就是说,fourinone在一个简单的jar中集成了Hadoop、Zookeeper、Memcache、MQ四大功能! 它只有150k大小,没有任何依赖性,非常方便嵌入您的系统使用。 Fourinone 项目 Fourinone 1.0 版本:淘宝Fourinone(中文...
### Fourinone 架构原理详解 #### 一、背景与需求分析 随着信息技术的快速发展,数据处理的需求日益增加,特别是在科学研究、商业分析等领域,往往需要处理极为庞大的数据集。传统的方法,如使用单一高性能计算机...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
在描述中提到的“博文链接:https://fourinone.iteye.com/blog/1694074”,虽然具体内容未给出,但我们可以推测这篇文章可能讨论了大数据技术的发展、实际应用案例以及在实施过程中遇到的困难。由于标签包含“源码”...