|
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多秒
demo源码和开发包下载:
http://www.skycn.com/soft/68321.html
分享到:
相关推荐
淘宝FourInOne架构原理的深入理解对于开发和运维分布式系统具有重要意义。它以轻量级、高性能和高可用性为核心,解决了电商领域常见的并发控制、数据一致性等问题,为构建大规模分布式系统提供了有力的支持。了解和...
对比Hadoop,Fourinone在体积、依赖关系、配置复杂性、集群搭建难度、计算模式和数据处理方式等方面都有其独特优势。例如,Fourinone的配置更为简洁,支持更多样化的并行模式,更注重内存计算和分布式缓存,而Hadoop...
《淘宝分布式并行计算四合一框架Fourinone》 ...阅读《淘宝分布式并行计算四合一框架Fourinone.pdf》文件,可以深入理解其设计理念、实现原理以及具体应用案例,对于理解和实践分布式系统有着极高的价值。
- **稳定性强:** 在压力测试和容灾测试中,证明了Fourinone具有良好的稳定性和容错能力。 - **灵活性高:** 支持多种节点配置方案,可根据实际需求灵活调整节点数量和配置。 **6.2 FourInOne不足** - **文档完整性...
Fourinone框架是将分布式协同的技术性和故障处理的可行性,把Hadoop、Zookeeper、MQ和分布式缓存的功能合并成一个框架。Fourinone采用的是domain/node两层结构,不仅保持了Zookeeper最本质的稳定性,而且还简化Watch...
总的来说,淘宝分布式框架Fourinone通过其独特的设计和实现,为开发者提供了一种灵活高效、易于控制的分布式计算方案。它的出现,无疑会推动分布式计算技术的发展,也为互联网工程师提供了更多选择,帮助他们更好地...
由于多计算机物理上独立,Fourinone框架也提供完整的分布式协同和锁以及简化MQ功能,用于实现多机的协作和通讯。 一、提供了对分布式文件的便利操作, 将集群中所有机器的硬盘资源利用起来,通过统一的fttp文件...
fourinone是一款分布式协调服务框架,它的设计思路是将任务分配者(工头)和任务执行者(工人)通过一个协调者(职介所)进行连接,实现任务的分布式处理。这个框架的核心概念包括工头进程、工人进程以及职介所服务...
fourinone号称了集成了hadoop,zk,memcache,mq于一身的四不像超级神器,致力于分布式应用。别的我不懂,今儿聊一下fourinone中的分布式缓存以及分布式文件系统,说到分布式,不得不用到网络通讯,不得不提及RPC,...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
#### 四、Fourinone与Hadoop对比分析 - **体积对比**:Fourinone 2.0版本大小为150KB,而Hadoop 0.21.0版本的大小约为71MB。 - **依赖关系**:Fourinone仅需一个JAR文件,没有其他依赖;而Hadoop需要大约12项JAR包...
学习资料:淘宝分布式并行计算四合一框架Fourinone 内容:淘宝分布式并行计算四合一框架Fourinone详细介绍;源码分析及使用说明;Fourinone分布式计算框架性能、压力、容灾测试报告;框架压缩包 本示例把分配任务的...
"四不像"(FourInOne)是淘宝开发的一款轻量级分布式系统框架,它以其小巧精悍的特性深受开发者喜爱,成为学习分布式系统的重要参考资料。本篇文章将围绕"fourinone-master.zip"这个压缩包,深入剖析四不像的核心...
也就是说,fourinone在一个简单的jar中集成了Hadoop、Zookeeper、Memcache、MQ四大功能! 它只有150k大小,没有任何依赖性,非常方便嵌入您的系统使用。 Fourinone 项目 Fourinone 1.0 版本:淘宝Fourinone(中文...
这份报告是在2021年11月于阿里巴巴集团旗下的淘宝内部完成的,其中包含了对Fourinone在云计算环境下的性能、压力和容灾能力的全面测试。 首先,Fourinone作为一款强大的分布式计算框架,其主要特点在于提供高效的...
Fourinone是淘宝自主研发的一个分布式并行计算框架,它巧妙地整合了Hadoop、ZooKeeper、MQ(消息队列)和分布式缓存这四大关键组件,为开发者提供了全面的分布式计算解决方案。 **Fourinone的功能特性:** 1. **...
淘宝Fourinone2.0提供了一个4合1分布式框架和简单易用的编程API,实现对多台计算机CPU,内存,硬盘的统一利用,从而获取到强大计算能力去解决复杂问题。Fourinone框架提供了一系列并行计算模式(农民工/包工头/职...
淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...